Hi all
I have a stubborn "bug" or other creature which I can not catch after days of trying my best... Before I will eventually file a bug report, may I ask you if this problem sounds familiar to someone? Bug summary: Exception WARequestContextNotFound after seaside's call/answer Steps: 1. I have a seaside application running in GemStone 3.4.5, latest Seaside, latest GsDevKit. 2. From the main seaside UI-component I simply open another seaside component with seaside's call: method. 3. I press the "close" UI-button, which calls seaside's answer method of that component. 4. I get a WARequestContextNotFound exception. My observations: --- Bug DOES NOT show up, if I use call:onAnswer: instead of call:. So it probably narrows down to the usage of GRPlatform current seasideSuspendFlowDo:, since that is what call: is using to suspend the flow with continuations. --- Seaside's error handling will in turn fail itself because it also relies on calling current requestContext itself. Only a simple text based stack is placed on GemStone's ObjectLog. And the browser just shows a simple "Internal Error:" --- WACurrentRequestContext is a WADynamicVariable and as such uses the environment dictionary of the active GsProcess (via something like this: Processor activeProcess environment at: WACurrentRequestContext). With stupid pseudo debugging (since I can't get a real debugger to work) I figured out, that after call:/answer the GsProcess changes and starts with an empty environment, therefore missing the WACurrentRequestContext. --- Seaside tests all green I'm really exhausted. Any clues or similar experiences? Thanks! Cheers, Andreas ----------------------------------------- Brot? www.brotrezept.ch! Andreas Brodbeck Software-Macher mindclue GmbH Dipl. El.-Ing. ETH +41 55 622 26 24 www.mindclue.ch ----------------------------------------- _______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
Additional astonishing observation: In a plain installation without any code from mine the WAFlowFunctionalTest fails! (GemStone 3.4.5, latest Seaside, latest GsDevKit, Platform Linux)
(I previously reported "all tests green" but that did not include the functional tests ...) Since this would be a bug at the heart of seaside, I doubt my observations. I will investigate some more. Cheers, Andreas
_______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
Hi Phil
In the meantime I figured out, that the problem was introduced between Seaside v3.2.5 and v3.3.0. call:/answer works OK with Seaside v3.2.5 They have changed the platform specific implementation of WADynamicVariable (which WACurrentRequestContext is a subclass of). On GemStone this is now a subclass of GemStone's own DynamicVariable class, which in turn uses "Processor activeProcess environment at:" to get the value of the dynamic variable. I managed to figure out, that the "Processor activeProcess" changes after call:/answer and therefore the environment is blank and the current request context is gone, obviously. I don't know at which point the activeProcess is changed. But my guess is somewhere around GemServer? I keep investigating. Looking forward for hints from GemStone staff! ;-) Cheers, Andreas
_______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
Hi Andreas,
Would it be possible to provide a repeatable scenario so I can take a look? Perhaps report it via https://github.com/SeasideSt/Seaside/issues and give a pointer to it here (to remind me)? The fact that Processor activeProcess changes reminds me of https://github.com/GsDevKit/Seaside31/issues/71 (mind this is an issue in the ‘old’ Seaside 3.1 repo for Gemstone, the current version is on the https://github.com/SeasideSt/Seaside/ repo). And indeed we moved the implementation of WADynamicVariable to GRDynamicVariable in Grease etc…but afaik call/answer should work as before. So, a repeatable case would be helpful to dive into this. best Johan
_______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
Andreas, Sorry for not responding yesterday, I must have missed your original email ... it seems that you may have found a hole in the unit test coverage ... I will look into this today ... Dale [1] https://travis-ci.org/github/SeasideSt/Seaside/jobs/687736206 On 5/21/20 1:52 AM, Brodbeck Andreas
via Glass wrote:
Additional astonishing observation: In a plain installation without any code from mine the WAFlowFunctionalTest fails! (GemStone 3.4.5, latest Seaside, latest GsDevKit, Platform Linux) _______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
Andreas,
I now see you wrote that WAFlowFunctionalTest fails in Gemstone. Will check on that. The functional tests are not yet running automated in the build (wip), so I need to do that manually and I can tomorrow. In the meantime, you might want to change WADynamicVariable to be a subclass of GRNotificationBasedDynamicVariable instead of GRDynamicVariable and see if that fixes it? Johan
_______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
Hi Johan
I think we can simply boil it down to that WAFlowFunctionalTest fails with a WARequestContextNotFound on GemStone 3.4.5 and Seaside > 3.3.0 (up to latest 3.4.1). My bug report is here: https://github.com/SeasideSt/Seaside/issues/1198 Cheers Andreas ----------------------------------------- Brot? www.brotrezept.ch! Andreas Brodbeck Software-Machermindclue GmbH Dipl. El.-Ing. ETH +41 55 622 26 24 -----------------------------------------
_______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
It was designed to be used for platforms that do not support DynamicVariable natively. So, for now it will definitely do the job. Once we get to the bottom of the issue, we can either fix it or it will be reverted to the previous implementation, which is probably the one in GRNotificationBasedDynamicVariable, but it has been some years so I cannot tell from the top of my head. I’ll get back to this via the GitHub issue. Thanks! Johan _______________________________________________ Glass mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |