Closed phet-steele closed 8 years ago
I was able to duplicate this manually by attempting to grab coin terms that were in motion as they were in the process of joining an expression. This causes them to become "user controlled" again and then, when release, the code was attempting to add them again to the same expression. I added code to make the coinTerms non-pickable when animating. The fix has improved the behavior, but it is currently still hitting assertions during fuzz test, so further work is required on this.
fuzztesting requirejs:
Uncaught Error: Assertion failed: undefined
Error: Assertion failed: undefined
at window.assertions.assertFunction (http://phettest.colorado.edu/assert/js/assert.js:23:13)
at ExpressionOverlayNode.extend.removeInputListener (http://phettest.colorado.edu/scenery/js/nodes/Node.js?bust=1458237407850:1666:17)
at http://phettest.colorado.edu/expression-exchange/js/common/view/ExpressionOverlayNode.js?bust=1458237407850:75:14
at Property.inherit.link (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:171:11)
at new ExpressionOverlayNode (http://phettest.colorado.edu/expression-exchange/js/common/view/ExpressionOverlayNode.js?bust=1458237407850:73:44)
at Array. (http://phettest.colorado.edu/expression-exchange/js/explore/view/EEExploreScreenView.js?bust=1458237407850:255:35)
at ObservableArray.inherit._fireItemAdded (http://phettest.colorado.edu/axon/js/ObservableArray.js?bust=1458237407850:149:18)
at ObservableArray.inherit.push (http://phettest.colorado.edu/axon/js/ObservableArray.js?bust=1458237407850:232:12)
at Array. (http://phettest.colorado.edu/expression-exchange/js/explore/model/EEExploreModel.js?bust=1458237407850:119:34)
at Emitter.inherit.emit2 (http://phettest.colorado.edu/axon/js/Emitter.js?bust=1458237407850:139:49)
at Property.inherit._notifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:129:29)
at Property.inherit._setAndNotifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:117:14)
at Property.inherit.set (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:85:16)
at CoinTerm.Object.defineProperty.set [as userControlled] (http://phettest.colorado.edu/axon/js/PropertySet.js?bust=1458237407850:141:43)
fuzztesting build:
Uncaught TypeError: Cannot set property 'shape' of null
TypeError: Cannot set property 'shape' of null
at Array.i (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:579:17592)
at e.r._fireItemAdded (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:20030)
at e.r.push (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:20796)
at e.r.addCoinTerm (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:24908)
at http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:30017
at Array.forEach (native)
at Array.n (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:29995)
at e.i.emit (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:568:27612)
at Object. (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:26295)
at update (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:545:2171)
First two errors occurred again on 3/22. See #11.
First two errors (duplicates and undefined) happened again 3/29.
I tracked down the root cause of the assertions shown above, fixed them, and just ran with fuzzMouse=100
for about 15 minutes with no issues. Closing.
fuzztesting both requirejs and build, on phettest: