Skip to content

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
Contributor

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
Contributor

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.

3 participants