[Glass] Migrating from 3.2.9 to 3.3.3 block compilation issue
Mariano Martinez Peck via Glass
glass at lists.gemtalksystems.com
Thu Jan 26 11:01:22 PST 2017
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20170126/0225bec7/attachment.html>
More information about the Glass
mailing list