Closed jessegreenberg closed 8 months ago
Here is a more detailed stack trace after hitting this locally:
Event target is an amplitude slider.
EDIT: THis patch helps reproduce the problem consistently in fourier.
I can see that we are getting two calls to onInteractionEnd
in a row:
The first event is null, indicating it comes from an interruption. And it is the first interrupt from what I can see in the console, so that is definitely the issue.
The interrupt comes from a press of ResetAllButton. I think this is what is happening: 1) Fuzzer sends arrow key down to slider 2) Fuzzer sends mouse press down on reset all button 3) reset all button interrupts subtree input 4) onInteractionEnd is called with null event, clearing the pointer reference 5) The fuzzer sends the keyup event to the slider, attempting onInteractionEnd again and triggering the assertion.
This is only possible with the fuzzer because its not possible for keyup events to go to the slider after pressing the reset all button with normal usage.
The above commit should fix this. Its now graceful so that if there is a keyup
event after an interrupt, we don't try to do "interaction end" work twice.
I can no longer hit this assertion locally and I let ~30 sims run through local fuzzing with ?fuzz&fuzzBoard
.
Ill let CT run with this change for a few columns before closing.
CT has run for more than 20 columns without this error. It previously could be seen every few columns. Closing.
I am seeing this in fourier-making-waves, but do not believe it is a sim problem. Seems to only happen for test
?: interactive-description-fuzz-fuzzBoard-combo
.There are many components using AccessibleSlider in that sim, that may be why it is only showing up there for now.
This assertion was added for changes from https://github.com/phetsims/scenery/issues/1596.