[Glass] ConfigurationOf vs. upgradeSeasideImage

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Feb 7 18:18:34 PST 2018


Ken,

I suggest that you take a look at the GsDevKit_home upgradeStone 
script[1] for inspiration. That sounds like a familiar problem and I'm 
pretty sure that I've addressed that issue plus others in the 
upgradeStone script.

Dale

[1] 
https://github.com/GsDevKit/GsDevKit_home/blob/master/bin/upgradeStone#L192

On 02/07/2018 05:08 PM, Ken Treis via Glass wrote:
> I'm working on upgrading a system from 3.2.15 to 3.3.5 and hit a snag. 
> I'm not sure if this is a bug in upgradeSeasideImage or just an odd 
> quirk of our setup.
>
> When upgradeSeasideImage tries to auto-detect ConfigurationOfX classes 
> to remove, it is apparently deciding to include the base 
> `ConfigurationOf` class from Metacello in its list of removals. The 
> script ends up loading it fresh, removing it, and then bombing when 
> one of the packages triggers  `ConfigurationOf class>>ensureMetacello`.
>
> I worked around this by building my 
> #BootstrapExistingConfigurationList that omitted ConfigurationOf, and 
> then the upgradeSeasideImage script completed without errors.
>
> Here are some highlights from the upgradeTo3x.log leading up to the 
> failure:
>
>> Automatically generating list of loaded configuration classes to be 
>> removed:
>>   ConfigurationOfGLASS
>>   ConfigurationOfFileTree
>>   ConfigurationOfGofer
>>   ConfigurationOfGsSqueakCommon
>>   ConfigurationOfGrease
>>   ConfigurationOfGsMisc
>>   ConfigurationOfGsOB
>>   ConfigurationOfGoferProjectLoader
>>   ConfigurationOfGsMonticello
>>   ConfigurationOfGsCore
>> *  ConfigurationOf*
>>   ConfigurationOfZincHTTPComponents
>>   ConfigurationOfSeaside3
>>   ConfigurationOfMetacello
>
> [snipped]
>
>> loading 'Metacello-Base-dkh.103.mcz'
>> class created: 'ConfigurationOf'
>
> [snipped]
>
>> BootstrapExistingConfigurationList do: [:class | class 
>> removeFromSystem ].
>
> […]
>
>> --transcript--'Loaded -> ConfigurationOfGsSqueakCommon-dkh.25 --- 
>> upgrade.weco-write.com 
>> <http://upgrade.weco-write.com>:/opt/gemstone/product/seaside/monticello/repository 
>> --- cache'
>> -----------------------------------------------------
>> GemStone: Error         Nonfatal
>> a ImproperOperation occurred (error 2142), Cannot execute method, 
>> 'method needs recompile, ConfigurationOf class >> ensureMetacello , 
>> oop 36494597889'
>> Error Category: 231169 [GemStone] Number: 2142  Arg Count: 2 Context 
>> : 69194451969 exception : 72186891777
>> Arg 1: [72186892033 sz:82 cls: 74753 String] method needs recompile, 
>> ConfigurationOf class >> ensureMetacello , oop 36494597889
>> Arg 2: [20 sz:0 cls: 76289 UndefinedObject] nil
>> ERROR: UNEXPECTED ERROR
>> topaz> time
>>  02/07/2018 10:47:24.935 PST
>> topaz > exec iferr 1 : stk
>> ==> 1 ImproperOperation (AbstractException) >> _signalFromPrimitive: 
>> @7 line 15   [methId 56587946753]
>> 2 ConfigurationOfGsSqueakCommon >> project      @1 line 1   [methId 
>> 72117275905]
>
> Again, this might be just a quirk of my setup… but it seems (in my 
> limited understanding) that the upgrade wouldn't need to remove 
> ConfigurationOf after having just loaded it.
>
> In case anybody else needs the workaround, I just copied the 
> auto-generation code from the log, hacked it as follows, and used it 
> to set #BootstrapExistingConfigurationList explicitly before running 
> `upgradeSeasideImage`:
>
>> "Patched code from upgradeSeasideImage (to avoid removing base 
>> ConfigurationOf class)"
>> GsFile gciLogServer: 'Automatically generating list of loaded 
>> configuration classes'.
>> UserGlobals at: #BootstrapExistingConfigurationList put: 
>> OrderedCollection new.
>> UserGlobals associationsDo: [:assoc |
>>   assoc value isBehavior
>>     ifTrue: [
>>       ((assoc key asString _findString: 'ConfigurationOf' startingAt: 
>> 1 ignoreCase: false) == 1 and: [assoc key ~= #ConfigurationOf])
>>         ifTrue: [
>>           GsFile gciLogServer: '  ', assoc key asString.
>>           (UserGlobals at: #BootstrapExistingConfigurationList) add: 
>> assoc value ]
>>     ].
>> ].
>
> --
> Ken Treis
> Miriam Technologies, Inc.
> (866) 652-2040 x221
>
>
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20180207/8213bc5c/attachment.html>


More information about the Glass mailing list