SeasideSt / Seaside

The framework for developing sophisticated web applications in Smalltalk.
MIT License
519 stars 71 forks source link

WARemoteDebuggingWalkback broken starting in GemStone 3.7.0 #1355

Open dalehenrich opened 1 year ago

dalehenrich commented 1 year ago

WARemoteDebuggingWalkback>>resumeContinuation sends the message #_continue to GsProcess instance after #resumeContinuation is sent and conditionally sends second #_continue message ...

In 3.7.0 we updated the GsProcess implementation to improve it's muti-threaded behavior and in the process the GsProcess>>_continue method was removed ...

I'm not sure how much WARemoteDebuggingWalkback is used in the wild, but at a minimum we shouldn't fail the Seaside tests because of this "sent but not implemented" message ...

In 3.7.0 we have also done significant work in using topaz for remote debugging with the DEBUGGEM topaz command and I would be inclined to replace the WARemoteDebuggingWalkback functionality with support for DEBUGGEM ...

In a nutshell by using System waitForDebug a process id and unique token are written to the gem's log file and the process is suspended until a topaz session running on the same machine attaches to the process ... once attached you can debug the process using a topaz debugger and subsequently continue execution, kill the gem, or detach and leave process suspended ...

dalehenrich commented 1 year ago

Looks like JQJsonFunctionalTest>>seasidePackagesOn: sends #array: that is not implemented in GemStone ... did not show up as a test failure during internal battery tests runs and I found it while characterizing #_continue issue

dalehenrich commented 1 year ago

ignore the read 'x' ... test for b3831fb have passed

jbrichau commented 1 year ago

@dalehenrich I guess this issue can now be closed again?

jbrichau commented 1 year ago

Or actually... the issue with the WARemoteDebuggingWalkback not working anymore starting GS 3.7 should be handled. Ok, leave this one open and I will create a separate issue for it before closing this one.