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

Fix start_block_exec nondeterminism #1471

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open

Fix start_block_exec nondeterminism #1471

wants to merge 1 commit into from

Conversation

lacraig2
Copy link
Member

#1447 determined that switching callstack_instr to start_block_exec caused nondeterministic behavior.

This PR attempts to resolve that issue.

@AndrewFasano
Copy link
Member

Prior to this, if panda_exit_loop was true was the sequence of events something like:

  1. An interrupt/exception/etc occurs which should redirect control flow from block B (about to be executed) to block C (some other place)
  2. SBE callback triggers for block B
  3. SBE callback triggers for block C
  4. Code in block C runs (probably multiple blocks with SBE/EBE callbacks firing as exepected)
  5. Control flow returns to block B
  6. SBE callback triggers again for block B
  7. Block B actually runs

And the issue was that this double-SBE callback for block B should have only happened once (and was non-deterministic in when it happened twice)

@AndrewFasano
Copy link
Member

Even if this doesn't fix the issue in #1447, is this still worth merging? Or do you want to try tracking it down further and seeing if you find the fix?

@lacraig2
Copy link
Member Author

lacraig2 commented Mar 21, 2024

I'm not sure it really adds anything in the scenario that it doesn't fix #1447.

Or rather, I expect this and something else will completely resolve #1447, but I haven't had a chance to figure out what that is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants