Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Prospero to update a WildFly installation from the zip #749

Closed
jmesnil opened this issue Aug 30, 2024 · 1 comment
Closed

Use Prospero to update a WildFly installation from the zip #749

jmesnil opened this issue Aug 30, 2024 · 1 comment

Comments

@jmesnil
Copy link
Member

jmesnil commented Aug 30, 2024

I'm working on wildfly/wildfly-proposals#577 to be able to upload WildFly download distributions with Prospero.

I've a branch at wildfly/wildfly#17936 that add the channel metadata to the zip and try to get Prospero working with it.
So I built the local distribution from WildFly main that is at 34.0.0.Beta1-SNAPSHOT version in its distmodule.
I'm working with the file .installation/provisioning_record.xml:

<?xml version="1.0" ?>

<installation xmlns="urn:jboss:galleon:provisioning:3.0">
    <transitive>
        <feature-pack location="wildfly-ee@maven(org.jboss.universe:community-universe):current#34.0.0.Beta1-SNAPSHOT">
            <packages>
                <include name="docs.examples.configs"/>
            </packages>
        </feature-pack>
    </transitive>
    <feature-pack location="wildfly@maven(org.jboss.universe:community-universe):current#34.0.0.Beta1-SNAPSHOT">
        <packages>
            <include name="docs.examples.configs"/>
        </packages>
    </feature-pack>
    <options>
        <option name="jboss-fork-embedded" value="true"/>
        <option name="store-input-provisioning-config" value="false"/>
    </options>
</installation>

First I have to add a name field to .installation/installation-channel.yaml or Prospero will fail to update (right now, I'm editing the file but ultimately the metadata should have that field.

The provisioned WildFly from the zip uses the universe coordinates for the WildFly feature pack (wildfly-ee@maven(org.jboss.universe:community-universe):current#34.0.0.Beta1-SNAPSHOT).
I added the org.jboss.universe:community-universe artifact to the channel org.wildfly.channels:wildfly:34.0.0.Beta1-SNAPSHOT in my branch so that Prospero could resolve the Galleon feature from that coordinates (instead of the raw Maven GAV).

When I run Prospero to update my installation, the logs does not give me a clear idea of what's going on:

~/Developer/prospero/prospero  update perform --debug --dir=.  --use-default-local-cache

Updating server: /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.

16:32:28,071 DEBUG [prospero] Initializing history storage in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
16:32:28,071 DEBUG [prospero] Initializing history storage in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
16:32:28,141 INFO  [prospero] PRSP000012: Checking available updates
16:32:28,141 INFO  [prospero] PRSP000012: Checking available updates
Aug 30, 2024 4:32:28 PM java.lang.System$LoggerFinder lambda$accessProvider$0
WARNING: Failed to instantiate LoggerFinder provider; Using default.
16:32:32,043 INFO  [prospero] PRSP000013: Found 1 updates
16:32:32,043 INFO  [prospero] PRSP000013: Found 1 updates
Updates found:
  org.jboss.galleon:galleon-core                        6.0.2.Final          ==>  []
Continue with update [y/N]: y
Building updates

16:32:37,088 INFO  [prospero] PRSP000012: Checking available updates
16:32:37,088 INFO  [prospero] PRSP000012: Checking available updates
16:32:40,824 INFO  [prospero] PRSP000013: Found 1 updates
16:32:40,824 INFO  [prospero] PRSP000013: Found 1 updates
16:32:40,824 INFO  [prospero] PRSP000010: Building update candidate for /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
16:32:40,824 INFO  [prospero] PRSP000010: Building update candidate for /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
16:32:44,503 INFO  [prospero] PRSP000023: Starting phase: [build layout]
16:32:44,503 INFO  [prospero] PRSP000023: Starting phase: [build layout]
Resolving feature-packwildfly-ee@maven(org.jboss.universe:community-universe):current#34.0.0.Beta1-SNAPSHOT16:32:45,737 INFO  [prospero] PRSP000024: Completed phase: [build layout] 3
16:32:45,737 INFO  [prospero] PRSP000024: Completed phase: [build layout] 3
Feature-packs resolved.
16:32:45,991 INFO  [prospero] PRSP000023: Starting phase: [install packages] 633
16:32:45,991 INFO  [prospero] PRSP000023: Starting phase: [install packages] 633
Installing packages 632/633(100%) 16:32:47,477 INFO  [prospero] PRSP000024: Completed phase: [install packages] 633
16:32:47,477 INFO  [prospero] PRSP000024: Completed phase: [install packages] 633
Packages installed.
Downloading artifacts16:32:47,593 INFO  [prospero] PRSP000023: Starting phase: [download artifacts] 0
16:32:47,593 INFO  [prospero] PRSP000023: Starting phase: [download artifacts] 0
[...]
Error releasing classloader Releasing usage of core 6.0.2.Final although no usage

Build update complete!
16:35:37,184 DEBUG [prospero] System paths [modules/system/layers/base]
16:35:37,184 DEBUG [prospero] System paths [modules/system/layers/base]
Applying updates
16:35:39,723 DEBUG [prospero] Creating backup record in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/./.update.old
16:35:39,723 DEBUG [prospero] Creating backup record in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/./.update.old
16:35:40,765 DEBUG [prospero] Update backup generated in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/./.update.old
16:35:40,765 DEBUG [prospero] Update backup generated in /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/./.update.old
16:35:40,765 INFO  [prospero] PRSP000025: Applying update candidate from /private/var/folders/b6/mydmwkb55mjgz332kf9738580000gn/T/update-candidate14602021895095162894
16:35:40,765 INFO  [prospero] PRSP000025: Applying update candidate from /private/var/folders/b6/mydmwkb55mjgz332kf9738580000gn/T/update-candidate14602021895095162894
16:35:40,834 DEBUG [prospero] Initializing history storage in /private/var/folders/b6/mydmwkb55mjgz332kf9738580000gn/T/update-candidate14602021895095162894
16:35:40,834 DEBUG [prospero] Initializing history storage in /private/var/folders/b6/mydmwkb55mjgz332kf9738580000gn/T/update-candidate14602021895095162894
16:35:40,875 INFO  [prospero] PRSP000026: Changed artifacts [[REMOVED] org.jboss.galleon:galleon-core 6.0.2.Final ==> [] @ Unknown; [ADDED] org.jboss.universe:community-universe [] ==> 1.2.0.Final @ Unknown; [ADDED] org.jboss.universe.producer:wildfly-producers [] ==> 1.3.11.Final @ Unknown]
16:35:40,875 INFO  [prospero] PRSP000026: Changed artifacts [[REMOVED] org.jboss.galleon:galleon-core 6.0.2.Final ==> [] @ Unknown; [ADDED] org.jboss.universe:community-universe [] ==> 1.2.0.Final @ Unknown; [ADDED] org.jboss.universe.producer:wildfly-producers [] ==> 1.3.11.Final @ Unknown]
16:35:42,982 INFO  [prospero] PRSP000027: No conflicts found.
16:35:42,982 INFO  [prospero] PRSP000027: No conflicts found.
16:35:43,360 DEBUG [LicenseManager] No known repositories found
16:35:43,360 DEBUG [LicenseManager] No known repositories found
16:35:43,360 INFO  [prospero] PRSP000029: UPDATE candidate applied to /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
16:35:43,360 INFO  [prospero] PRSP000029: UPDATE candidate applied to /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.
Update complete!
Operation completed in 196.48 seconds.

It seems that Prospero fully updated the installation while there was no change in any artifact.

If I do a 2nd prospero update, nothing happens (as expected):

~/Developer/prospero/prospero  update perform --debug --dir=.  --use-default-local-cache
Updating server: /Users/jmesnil/Developer/wildfly/dist/target/wildfly-34.0.0.Beta1-SNAPSHOT/.

16:40:31,651 INFO  [prospero] PRSP000012: Checking available updates
16:40:31,651 INFO  [prospero] PRSP000012: Checking available updates
Aug 30, 2024 4:40:31 PM java.lang.System$LoggerFinder lambda$accessProvider$0
WARNING: Failed to instantiate LoggerFinder provider; Using default.
16:40:35,784 INFO  [prospero] PRSP000013: Found 0 updates
16:40:35,784 INFO  [prospero] PRSP000013: Found 0 updates
No updates found.
Operation completed in 4.38 seconds.

@spyrkob Any idea about why prospero would perform a full update when using the universe coordinate for the feature pack. At the end of the day, it points to the same feature pack that if I was using the Maven GAV.
And then why would it do nothing on the 2nd update?

@jmesnil jmesnil mentioned this issue Aug 30, 2024
@spyrkob
Copy link
Collaborator

spyrkob commented Sep 4, 2024

@jmesnil the first update seems to be because the generated .installation/manifest.yaml contains galleon-core stream and the published manifest does not. Prospero sees that as a change, but because that artifact is not actually used in the server, there's no actual change in the updated server.
The 2nd update does nothing because after the 1st update the .installation/manifest.yaml does not contain the galleon-core stream any more

@jmesnil jmesnil closed this as completed Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants