Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handling >= 1 depth (nested) actor trees in the debugger #320

Open
2 tasks
goodboy opened this issue Aug 1, 2022 · 0 comments
Open
2 tasks

Handling >= 1 depth (nested) actor trees in the debugger #320

goodboy opened this issue Aug 1, 2022 · 0 comments
Labels
bug Something isn't working cancellation SC teardown semantics and anti-zombie semantics debugger

Comments

@goodboy
Copy link
Owner

goodboy commented Aug 1, 2022

Discovered and heavily worked around in #165 as well as well documented in #113.

The test_debugger.py suite currently is marked up with a @has_nested_actors for the test scripts which do include nested proc trees and these tests are being skipped in CI (despite seemingly nearly working when running local on linux), as well as the test_multi_nested_subactors_error_through_nurseries() test which was never re-written to include ctrl-c cases since we know it gets totally rekt by the zombie reaping machinery.


The detailed lingering TODO from #165:

  • we still have an unhandled case that can cause lockups when there is an intermediate child actor (a child of the root which also has children) that has a child in debug mode:
    • the intermediate can receive SIGINT but does not have the shield_sigint() handler set because it, itself is not in debug mode and thus accepts the signal and cancels its nurseries (and thus children who maybe are in debug mode)
    • the children of the intermediary are cancelled while still using the debugger and so aren't able to actually cancel since control is given to the user and won't resume until c or q cmds are sent to the repl
    • the intermediary that's also a parent's nursery will engage the hard kill machinery which will then blow out the IPC connections thus making it impossible for the children to unlock the TTY / debugger lock
    • the root get's stuck never being able to acquire the debug lock and also still has the shield_sigint() handler enabled making it impossible to raise a KBI and let the hard proc kill (zombie lord) teardown complete.
  • attempting to get the re-drawing of the last repl output to behave somewhat like sticky mode but when any stdstreams write is detected -> as is mentioned in Fancy remote debugging (aka tab completion and editor controls) #130 (comment)

Other related issues:

@goodboy goodboy added bug Something isn't working cancellation SC teardown semantics and anti-zombie semantics debugger labels Aug 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working cancellation SC teardown semantics and anti-zombie semantics debugger
Projects
None yet
Development

No branches or pull requests

1 participant