[Glass] Migrating from 3.2.9 to 3.3.3 block compilation issue

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Thu Jan 26 13:11:21 PST 2017


Mariano,

I'll dig into this later this afternoon (I'm out of time right now) ... 
All of the code is reloaded at each upgrade, so it is likely that there 
are few blocks that are hanging around (SortedCollections, etc.) that 
need to be rebuilt ...

Dale

On 01/26/2017 11:01 AM, Mariano Martinez Peck via Glass wrote:
> Hi guys,
>
> I am migrating some stones (tODE and GsDevKit based) that are on 
> GemStone 3.2.9 to 3.3.3. I am doing this with the `upgradeStone` 
> gsDevKit command.
>
> I first hit one problem when trying to execute this code via topaz:
>
> MCRepositoryGroup default removeRepository: (MCHttpRepository
>                         location: 'xxx'
>                         user: ''
>                         password: '').
>
>
>
> *ERROR 2142 , a ImproperOperation occurred (error 2142), Cannot 
> execute method, 'method needs recompile, MCRepositoryGroup class >> 
> default , oop 206736385' (ImproperOperation)
> *
>
> Then, I said...ok, let's connect with tODE and investigate some more 
> (like doing Object _objectForOop: 206736385). But when I try to 
> connect with tODE I get:
>
>
> *Error running testLogin:*
> *
> *
> *'Error: Unable to log into server:a ImproperOperation occurred (error 
> 2142), Cannot execute method, ''method needs recompile, TDTopezServer 
> class >> createFor: , oop 245949953''with: ''TDTopezServer createFor: 
> 1'''*
> *
> *
> *NOTE: netldi log can be found in the file: 
> '$GS_HOME/server/stones/<stone-name>/logs/netldi.log'.*
> *
> *
>
>
> So...looks like I have methods to be recompiled everywhere. I saw this 
> issue [1] but that does not seem to help as these closures are not in 
> sorted collections right ?
>
> Now, manually fixing each, like this:
>
>  | sc sortBlock val cls str val |
>   sc := "sortedcollection instance".
>   sortBlock := sc sortBlock.
>   str := sortBlock _sourceString.
>   val := str evaluate.
>   sc _sortBlock: val
>
> Is a pain...because I must know how to re-assign the new compiled 
> method. Is there an alternative GENERIC solution to recompile all 
> needed ones? I can think of that but using #become:
>
>
> System commit.
>   [
>   MCPlatformSupport installAlmostOutOfMemoryStaticHandler: 75.
> ExecBlock allSubInstances do: [:each |
> each become: each _sourceString evaluate.
> ].
> ]
>   ensure: [ MCPlatformSupport uninstallAlmostOutOfMemoryStaticHandler ].
> System commit.
>
> But...comment of #become: says that BlockClosure instances cannot be 
> become...BUUUUUUH.
>
> So.. any idea?
>
> Thanks in advance,
>
> [1] https://github.com/GsDevKit/GsDevKit_home/issues/70
>
>
> -- 
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> 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/20170126/5f19198c/attachment.html>


More information about the Glass mailing list