[Glass] transactionConflicts, commitResult is readOnly ?
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Mon Apr 3 10:54:25 PDT 2017
Sorry for the late reply.... Allen took a look at this and noted that he
was getting transaction failures when he tried to emulate your
transaction sequence:
The transaction example given for gem1 and gem2 should always produce
a failure to commit in gem2. And I see that behavior using two topaz -l
interactively on a 2.4.8 build.
Exactly what version of 2.4 is being used ?
Perhaps the transaction boundaries in 2.4 are not as pictured
Dale
On 03/29/2017 10:43 AM, Johan Brichau via Glass wrote:
> Dale,
>
> I’m back on this, now that I bumped Parasol for Gemstone [1].
>
> I think I experienced the same problems in the Parasol tests
> themselves, but I must say that I must have had things mixed up when I
> reported a ‘readOnly’ commit result together with a write-write
> conflict, as I was not able to reconstruct it. Probably a case of me
> getting lost in logging….
>
> However:
>
> I fixed the transaction issues by replacing all calls to
> #continueTransaction with #commitTransaction [see commits in 1].
> Since Parasol runs a testcase that drives a webbrowser to perform
> actions in a Seaside app served by another gem, we need to commit and
> update the view before and after every ‘browser action’ such that
> testcases can run like in Pharo (i.e. see the same app state).
> I tried to explain what I’m seeing below. There are 2 gems working on
> the same object x from time 1 to 6:
>
>
> gem 1gem 2
> ————————
> 1start txstart tx
> 2write on object x
> 3 commit tx
> 4continue tx
> 5write on object x
> 6commit tx -> fails
>
>
> I’m a bit surprised I get different results in GS 2.4 and 3.2, where
> the use of continueTransaction was working (we do run these tests in
> daily builds in 2.4).
> When I replace the ‘continue tx’ with a ‘commit tx’ it works in both.
>
> The solution works fine, but I’m left wondering if I’m not
> understanding continueTx right.
> I thought continueTx was updating the view and any change I make to
> any object that was updated at the point of invoking the continueTx
> would not lead to a commit conflict.
> Instead, it seems that I only get an updated view but any change I
> make is still seen with respect to the beginning of my Tx?
>
> thx
> Johan
>
> [1] https://github.com/SeasideSt/Parasol/pull/5
>
>> On 22 Mar 2017, at 19:47, Johan Brichau <johan at yesplan.be
>> <mailto:johan at yesplan.be>> wrote:
>>
>> Ok, I’m trying to see if I can reproduce the issue with the Parasol
>> tests themselves.
>> That would make an easy testcase to reproduce in SmalltalkCI
>>
>>> On 22 Mar 2017, at 19:40, Dale Henrichs via Glass
>>> <glass at lists.gemtalksystems.com
>>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>>
>>>
>>>
>>> On 03/22/2017 08:21 AM, Johan Brichau via Glass wrote:
>>>> Mariano,
>>>>
>>>> Thanks for sharing that piece of code.
>>>>
>>>> It seems a bit different in my case.
>>>> By tracing I noticed that it happens right after a seemingly
>>>> succesful commit. I.e. the following statements happen immediately
>>>> one after the other:
>>>>
>>>> System commitTransaction
>>>> —> returns true.
>>>> System transactionConflicts
>>>> —> marks the readOnly ‘commitResult’
>>>>
>>>> Any subsequent commit will always return true but nothing is ever
>>>> committed.
>>>>
>>>> Puzzled…
>>>>
>>>
>>> It's puzzling to us as well ... can you provide us with a simple
>>> test case ... #readOnly should indicate that there were no
>>> persistent objects modified by the session doing the commit, and
>>> does not represent a status of the system, in fact a #readOnly
>>> commit should be the equivalent of an abort ...
>>>
>>> Dale
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com <mailto:Glass at lists.gemtalksystems.com>
>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>
>
>
> _______________________________________________
> 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/20170403/2e0407cd/attachment-0001.html>
More information about the Glass
mailing list