[Glass] External tasks do not recognize new methods after commit - only after restart !?!?!?!?!

Dale Henrichs dale.henrichs at gemtalksystems.com
Sun Nov 1 11:19:19 PST 2020


Marten,

I'm glad that you were able to determine that something had perturbed 
`TransactionBoundaryDefaultPolicy current` and yes, 
`SessionMethodTransactionBoundaryPolicy install` will set things right 
again ...

Of course, the million dollar question is "how did that happen?" and in 
your HR you note that the only db that exhibits this problem is one that 
had been upgraded and that is an interesting observation.

At this moment I don't have a smoking gun, but it is worth noting that I 
also don't have a test that confirms that the 
SessionMethodTransactionBoundaryPolicy is properly installed, so a 
regression in this area during upgrade could certainly fall between the 
cracks. So thanks, Marten for this information. I've opened issue #129 
"Kernel class modifications not propagated to other sessions on 
transaction boundaries as expected"[1] with the first step of adding a 
test 
case(SessionMethodTransactionBoundaryPolicyTests>>testConfirmSessionMethodTransactionBoundaryPolicyInstalled):

    self
    	assert:
    		(TransactionBoundaryDefaultPolicy current
    			isKindOf: SessionMethodTransactionBoundaryPolicy)

Once, I've merged the new testcase into the glassdb/glass[2] master 
branch, I'll trigger the GsDevKit/GsDevKit_home travis tests[3], which 
has a coverage for upgrades for GemStone 2.4.4.1, 3.1.0.6, 3.3.9, 3.4.5, 
3.5.0 and 3.5.4. The coverage is not a full matrix of possible upgrade 
combinations, but should be enough to get a read on the possible extent 
of the problems, if any.

Of course at this point in time, if any of you listening in on this 
conversation haven't already done so, I'd suggest that it would be 
prudent to go ahead and confirm that the 
SessionMethodTransactionBoundaryPolicy in your db's are properly installed:

    TransactionBoundaryDefaultPolicy current isKindOf: SessionMethodTransactionBoundaryPolicy

and if it is not a SessionMethodTransactionBoundaryPolicy, use the 
following to do the repair:

    SessionMethodTransactionBoundaryPolicy install

I would encourage any of you to report results/observations on Issue 
#129[1] going forward.

I'll report back the test results here when they become available ... 
travis has been overloaded recently so it might take a while for the 
full set of tests to run:)

Dale

[1] https://github.com/GsDevKit/GsDevKit/issues/129
[2] https://github.com/glassdb/glass
[3] https://travis-ci.org/github/GsDevKit/GsDevKit_home

On 10/31/20 8:36 AM, Marten Feldtmann wrote:
> SessionMethodTransactionBoundaryPolicy install 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gemtalksystems.com/mailman/private/glass/attachments/20201101/91aad53e/attachment.htm>


More information about the Glass mailing list