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

Script ‘attachRowanDevClones.stone’ fails when using GemStone v3.7.2 #31

Open
Rinzwind opened this issue Jan 12, 2025 · 6 comments
Open

Comments

@Rinzwind
Copy link

The Dockerfile that I gave in JadeiteForPharo issue #148 still builds without error (tested using docker build --no-cache --progress plain .), but after modifying the createStone.solo command to use version 3.7.2 instead of 3.7.1 (while keeping rowanv3_371 as the stone name), the attachRowanDevClones.stone command fails:

#24 [21/21] RUN startStone.solo && ./product/rowan3/bin/attachRowanDevClones.stone --projectsHome=/home/gsuser/rowanV3/projects && stopStone.solo
[…]
#24 7.672 Unhandled Error in script: /home/gsuser/gemstone/GemStone64Bit3.7.2-x86_64.Linux/rowan3/bin/attachRowanDevClones.stone
#24 7.672 ---------------------
#24 7.672 a MessageNotUnderstood occurred (error 2010), a GsNMethod does not understand  #'isFromRowan'
#24 7.672 ---------------------
#24 7.673 1 [] in SuperDoitExecution >> doit @69 line 42  [GsNMethod 32637185]
[…]
#24 7.673 6 GsNMethod (Object) >> _doesNotUnderstand:args:envId:reason: @12 line 17  [GsNMethod 7364609]
#24 7.673 7 RwGsSymbolDictionaryRegistry_ImplementationV2 class >> addExtensionCompiledMethod:for:protocol:toPackageNamed:instance: @14 line 14  [GsNMethod 32636929]
#24 7.673 8 RwGsSymbolDictionaryRegistryV2 >> addExtensionCompiledMethod:for:protocol:toPackageNamed:implementationClass: @2 line 5  [GsNMethod 46797569]
#24 7.673 9 RwGsMethodExtensionSymbolDictPatchV2 >> installMethod @5 line 4  [GsNMethod 32636417]
#24 7.673 10 [] in RwGsPatchSet_V2 >> updateMethodDictionaries @86 line 58  [GsNMethod 32635905]
[…]
#24 7.673 14 RwGsPatchSet_V2 >> updateMethodDictionaries @11 line 54  [GsNMethod 32635393]
#24 7.673 15 RwGsPatchSet_V2 >> apply @30 line 34  [GsNMethod 32634881]
#24 7.673 16 RwGsPatchSet_V2 >> applyForNewClassVersions: @8 line 17  [GsNMethod 32633857]
#24 7.673 17 RwGsImage class >> applyModification_V2:visitorClass:instanceMigrator:symbolList: @21 line 20  [GsNMethod 65533697]
#24 7.673 18 RwGsImage class >> applyModification_V2:instanceMigrator:symbolList: @7 line 5  [GsNMethod 65533953]
#24 7.673 19 RwPrjLoadToolV2 >> _loadProjectSetDefinition:instanceMigrator:symbolList: @17 line 51  [GsNMethod 66932481]
[…]
#24 7.673 26 RwPrjLoadToolV2 >> loadProjectSetDefinition: @4 line 4  [GsNMethod 66931457]
#24 7.673 27 RwProjectSetDefinition >> load @4 line 3  [GsNMethod 66988033]
#24 7.673 28 RwLoadSpecSet >> load @3 line 4  [GsNMethod 66747137]
#24 7.673 29 SuperDoitExecutionClass >> attachRowanProjects: @8 line 34  [GsNMethod 32626689]
#24 7.673 30 Executed Code  @58 line 39  [GsNMethod 32626433]
#24 7.673 31 GsNMethod >> _executeInContext: @1 line 11  [GsNMethod 6722049]
#24 7.673 32 String >> evaluateInContext:symbolList: @3 line 10  [GsNMethod 7138305]
#24 7.673 33 SuperDoitExecutionClass (SuperDoitExecutionMetadataClass) >> theDoit @4 line 41  [GsNMethod 32626177]
[…]
ERROR: failed to solve: process "/bin/sh -c startStone.solo && ./product/rowan3/bin/attachRowanDevClones.stone --projectsHome=$STONES_HOME/rowanV3/projects && stopStone.solo" did not complete successfully: exit code: 1
@dalehenrich
Copy link
Member

@Rinzwind I'm assuming that you are following the instructions in the JadeiteForPharo README? It seems that those instructions are not complete. The particular error you are seeing is a consequence of loading the incorrect version of Rowan 3 ...

You'll have to wait until we publish the correct instructions for 3.7.2 ....

@dalehenrich
Copy link
Member

@Rinzwind The following instructions can be used to load the two projects into a 3.7.2 extent0.rowan3.dbf.
Update your clones for RemoteServiceReplication and RowanClientServices to point to:

RemoteServiceReplication (main-v2:9a3398d)
RowanClientServices  (mainV3.0:85ed5ad)

I'm recording the SHAs that I used for my test as known data points, but you should be able to use the two branches as well.
Run the following installProject.stone expressions to load those twoiprojects into your stone:

$GEMSTONE/rowan3/bin/installProject.stone file:$ROWAN_PROJECTS_HOME/RowanClientServices/rowan/specs/RowanClientServices.ston --projectsHome=$ROWAN_PROJECTS_HOME
$GEMSTONE/rowan3/bin/installProject.stone file:$ROWAN_PROJECTS_HOME/RemoteServiceReplication/rowan/specs/RemoteServiceReplication.ston --projectsHome=$ROWAN_PROJECTS_HOME

I've just tested a login, and I haven't tested anything else ...

These are the JfP SHAs that I'm using :

JadeiteForPharo d534580
PharoGemStoneFFI 78f7581
RemoteServiceReplication 9a3398d

The GsDevKit_stones variants of installProject.stone can be used to do the load as well ...

@dalehenrich
Copy link
Member

Before closing this bug, let's add 3.7.2 to the CI lineup and add some level of JfP testing as well ...

@Rinzwind
Copy link
Author

Thanks! I tested that and posted an updated Dockerfile in JadeiteForPharo issue #181.

@dalehenrich
Copy link
Member

During the issue #32 work, I added a test for Rowan 3 and 3.7.2 ... which fulfills part of the requirements for this issue, however, I removed Announcements from the projectSets and neglected to include a test for attachRowanDevClones.stone ...

attachRowanDevClones.stone is no longer part of the process needed to setup a 3.7.2stone to be used with JfP, but using attachRowanDevClones.stone with 3.7.2 and JfP should be an alternate path ...

@dalehenrich
Copy link
Member

After further review there are two scenarios that need to be supported for managing git repositories:

Pharo and GemStone on same machine

When Pharo and GemStone on the same machine it is a good idea to use the same $ROWAN_PROJECTS_HOME directory for all of the client and server projects. The rowan_V3_common, rowan_V3_pharo, and rowan_v3_gs project sets should be cloned into a single directory.

Pharo and GemStone on separate machines

For Pharo, the rowan_V3_common and rowan_V3_pharo project sets need to be cloned into the same directory and care must be taken to ensure that the RemoteServiceReplication projects on the client and server are kept in sync.

For Gemstone, the rowan_V3_common and rowan_v3_gs project sets should be cloned into a single directory and care must be taken to ensure that the RemoteServiceReplication projects on the client and server are kept in sync.

Updating GemStone

The server can be updated using either an installProject.stone script to install just the projects needed for using JfP and a 3.7.2 stone (as documented in JfP README:

$GEMSTONE/rowan3/bin/installProject.stone file:$ROWAN_PROJECTS_HOME/RemoteServiceReplication/rowan/specs/RemoteServiceReplication.ston --projectsHome=$ROWAN_PROJECTS_HOME
$GEMSTONE/rowan3/bin/installProject.stone file:$ROWAN_PROJECTS_HOME/RowanClientServicesV3/rowan/specs/RowanClientServices.ston --projectsHome=$ROWAN_PROJECTS_HOME

or using the attachRowanDevClones.stone script to install all of the public projects in a 3.7.2 stone for development:

attachRowanDevClones.stone --projectsHome=$ROWAN_PROJECTS_HOME

dalehenrich added a commit that referenced this issue Feb 8, 2025
…an issue with logging into stone from JfP, using latest RemoteServiceReplication commit
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