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

Reproducible path to "triangles frozen" problem. See https://github.com/Day8/re-frame-10x#the-expansion-triangles-in-the-data-browsers-dont-work-any-more-but-they-used-to #209

Closed
deg opened this issue Jun 6, 2018 · 20 comments

Comments

@deg
Copy link

deg commented Jun 6, 2018

No description provided.

@deg deg changed the title Reproducible path to Reproducible path to "triangles frozen" problem Jun 6, 2018
@deg
Copy link
Author

deg commented Jun 6, 2018

I think I found a path that reproduces the bug.

  • Run app happily, with 10x in an external window. In my case -- maybe not relevant -- via Figwheel and Emacs/Cider.
  • Kill the app, leaving the browser window open. (in my case, by blowing away the REPL buffers in Emacs).
  • Triangles are still responsive.
  • Refresh the browser window. This fails obviously, and the 10x window is dead, as expected.
  • Restart the app. See error in Chrome Inspector, copied below
  • Refresh the browser window.
  • Kill the old 10x window.
  • c-H in browser window to open 10x
  • Make window external. It opens as a tiny window in top-left corner of screen.
  • Expand to normal size. Triangles are now broken.

Startup error (with some earlier lines, for context):

VM46238 socket.js:97 WebSocket connection to 'ws://localhost:3449/figwheel-ws/app' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
figwheel$client$socket$open @ VM46238 socket.js:97
figwheel.client.socket.open.socket.onclose.x__4009__auto__ @ VM46238 socket.js:137
10:38:03.613 VM46238 socket.js:97 WebSocket connection to 'ws://localhost:3449/figwheel-ws/app' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
figwheel$client$socket$open @ VM46238 socket.js:97
figwheel.client.socket.open.socket.onclose.x__4009__auto__ @ VM46238 socket.js:137
10:38:03.888 Navigated to chrome-error://chromewebdata/
10:38:04.471 Navigated to chrome-error://chromewebdata/
10:38:48.891 Navigated to http://localhost:53433/
10:38:49.856 util.cljs?rel=1528112085985:187 Installing CLJS DevTools 0.9.10 and enabling features :formatters :hints :async
10:38:49.863 async.cljs?rel=1528112092614:50 cljs-devtools: the :async feature is no longer needed since Chrome 65.0.3321, see https://github.com/binaryage/cljs-devtools/issues/20
10:38:51.181 react-dom.inc.js:526 Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.
printWarning @ react-dom.inc.js:526
warning @ react-dom.inc.js:550
unmountComponentAtNode @ react-dom.inc.js:17134
mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp @ dom.cljs?rel=1528112087442:16
mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node @ dom.cljs?rel=1528112087442:47
mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node @ core.cljs?rel=1528112087515:81
day8$re_frame_10x$events$open_debugger_window @ events.cljs?rel=1528112092468:289
(anonymous) @ events.cljs?rel=1528112092468:298
mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before @ std_interceptors.cljc?rel=1528112087645:133
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn @ interceptor.cljc?rel=1528112087576:67
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors @ interceptor.cljc?rel=1528112087576:105
mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute @ interceptor.cljc?rel=1528112087576:196
mranderson048$re_frame$v0v10v2$re_frame$events$handle @ events.cljc?rel=1528112087729:64
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_process_1st_event_in_queue$arity$1 @ router.cljc?rel=1528112087813:175
mranderson048$re_frame$v0v10v2$re_frame$router$_process_1st_event_in_queue @ router.cljc?rel=1528112087813:83
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_run_queue$arity$1 @ router.cljc?rel=1528112087813:194
mranderson048$re_frame$v0v10v2$re_frame$router$_run_queue @ router.cljc?rel=1528112087813:85
(anonymous) @ router.cljc?rel=1528112087813:142
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_fsm_trigger$arity$3 @ router.cljc?rel=1528112087813:165
mranderson048$re_frame$v0v10v2$re_frame$router$_fsm_trigger @ router.cljc?rel=1528112087813:79
(anonymous) @ router.cljc?rel=1528112087813:183
Promise.then (async)
(anonymous) @ async.cljs?rel=1528112092614:28
devtools$async$promise_based_set_immediate @ async.cljs?rel=1528112092614:28
goog.async.nextTick @ nexttick.js:83
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_run_next_tick$arity$1 @ router.cljc?rel=1528112087813:183
mranderson048$re_frame$v0v10v2$re_frame$router$_run_next_tick @ router.cljc?rel=1528112087813:84
(anonymous) @ router.cljc?rel=1528112087813:138
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_fsm_trigger$arity$3 @ router.cljc?rel=1528112087813:165
mranderson048$re_frame$v0v10v2$re_frame$router$_fsm_trigger @ router.cljc?rel=1528112087813:79
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$push$arity$2 @ router.cljc?rel=1528112087813:101
mranderson048$re_frame$v0v10v2$re_frame$router$push @ router.cljc?rel=1528112087813:74
mranderson048$re_frame$v0v10v2$re_frame$router$dispatch @ router.cljc?rel=1528112087813:243
day8$re_frame_10x$db$init_db @ db.cljs?rel=1528112091697:26
day8$re_frame_10x$init_db_BANG_ @ re_frame_10x.cljs?rel=1528112092797:242
(anonymous) @ preload.cljs?rel=1528112092807:9
10:38:51.594 async.cljs?rel=1528112092614:24 Uncaught Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
    at invariant (react-dom.inc.js:59)
    at scheduleWorkImpl (react-dom.inc.js:12571)
    at scheduleWork (react-dom.inc.js:12528)
    at scheduleCapture (react-dom.inc.js:12404)
    at dispatch (react-dom.inc.js:12434)
    at onCommitPhaseError (react-dom.inc.js:12439)
    at commitRoot (react-dom.inc.js:11987)
    at completeRoot (react-dom.inc.js:12948)
    at performWorkOnRoot (react-dom.inc.js:12898)
    at performWork (react-dom.inc.js:12816)
    at performSyncWork (react-dom.inc.js:12793)
    at requestWork (react-dom.inc.js:12693)
    at scheduleWorkImpl (react-dom.inc.js:12568)
    at scheduleWork (react-dom.inc.js:12528)
    at scheduleRootUpdate (react-dom.inc.js:13156)
    at updateContainerAtExpirationTime (react-dom.inc.js:13184)
    at Object.updateContainer (react-dom.inc.js:13211)
    at ReactRoot.render (react-dom.inc.js:16647)
    at legacyRenderSubtreeIntoContainer (react-dom.inc.js:17081)
    at react-dom.inc.js:17139
    at Object.unbatchedUpdates (react-dom.inc.js:13003)
    at unmountComponentAtNode (react-dom.inc.js:17138)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp (dom.cljs?rel=1528112087442:16)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node (dom.cljs?rel=1528112087442:47)
    at mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node (core.cljs?rel=1528112087515:81)
    at day8$re_frame_10x$events$open_debugger_window (events.cljs?rel=1528112092468:289)
    at events.cljs?rel=1528112092468:298
    at mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before (std_interceptors.cljc?rel=1528112087645:133)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn (interceptor.cljc?rel=1528112087576:67)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors (interceptor.cljc?rel=1528112087576:105)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute (interceptor.cljc?rel=1528112087576:196)
    at mranderson048$re_frame$v0v10v2$re_frame$events$handle (events.cljc?rel=1528112087729:64)
    at mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_process_1st_event_in_queue$arity$1 (router.cljc?rel=1528112087813:175)
    at mranderson048$re_frame$v0v10v2$re_frame$router$_process_1st_event_in_queue (router.cljc?rel=1528112087813:83)
    at mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_run_queue$arity$1 (router.cljc?rel=1528112087813:194)
    at mranderson048$re_frame$v0v10v2$re_frame$router$_run_queue (router.cljc?rel=1528112087813:85)
    at router.cljc?rel=1528112087813:142
    at mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_fsm_trigger$arity$3 (router.cljc?rel=1528112087813:165)
    at mranderson048$re_frame$v0v10v2$re_frame$router$_fsm_trigger (router.cljc?rel=1528112087813:79)
    at router.cljc?rel=1528112087813:183
invariant @ react-dom.inc.js:59
scheduleWorkImpl @ react-dom.inc.js:12571
scheduleWork @ react-dom.inc.js:12528
scheduleCapture @ react-dom.inc.js:12404
dispatch @ react-dom.inc.js:12434
onCommitPhaseError @ react-dom.inc.js:12439
commitRoot @ react-dom.inc.js:11987
completeRoot @ react-dom.inc.js:12948
performWorkOnRoot @ react-dom.inc.js:12898
performWork @ react-dom.inc.js:12816
performSyncWork @ react-dom.inc.js:12793
requestWork @ react-dom.inc.js:12693
scheduleWorkImpl @ react-dom.inc.js:12568
scheduleWork @ react-dom.inc.js:12528
scheduleRootUpdate @ react-dom.inc.js:13156
updateContainerAtExpirationTime @ react-dom.inc.js:13184
updateContainer @ react-dom.inc.js:13211
ReactRoot.render @ react-dom.inc.js:16647
legacyRenderSubtreeIntoContainer @ react-dom.inc.js:17081
(anonymous) @ react-dom.inc.js:17139
unbatchedUpdates @ react-dom.inc.js:13003
unmountComponentAtNode @ react-dom.inc.js:17138
mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp @ dom.cljs?rel=1528112087442:16
mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node @ dom.cljs?rel=1528112087442:47
mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node @ core.cljs?rel=1528112087515:81
day8$re_frame_10x$events$open_debugger_window @ events.cljs?rel=1528112092468:289
(anonymous) @ events.cljs?rel=1528112092468:298
mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before @ std_interceptors.cljc?rel=1528112087645:133
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn @ interceptor.cljc?rel=1528112087576:67
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors @ interceptor.cljc?rel=1528112087576:105
mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute @ interceptor.cljc?rel=1528112087576:196
mranderson048$re_frame$v0v10v2$re_frame$events$handle @ events.cljc?rel=1528112087729:64
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_process_1st_event_in_queue$arity$1 @ router.cljc?rel=1528112087813:175
mranderson048$re_frame$v0v10v2$re_frame$router$_process_1st_event_in_queue @ router.cljc?rel=1528112087813:83
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_run_queue$arity$1 @ router.cljc?rel=1528112087813:194
mranderson048$re_frame$v0v10v2$re_frame$router$_run_queue @ router.cljc?rel=1528112087813:85
(anonymous) @ router.cljc?rel=1528112087813:142
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_fsm_trigger$arity$3 @ router.cljc?rel=1528112087813:165
mranderson048$re_frame$v0v10v2$re_frame$router$_fsm_trigger @ router.cljc?rel=1528112087813:79
(anonymous) @ router.cljc?rel=1528112087813:183
setTimeout (async)
devtools$async$rethrow_outside_promise @ async.cljs?rel=1528112092614:24
Promise.catch (async)
devtools$async$promise_based_set_immediate @ async.cljs?rel=1528112092614:29
goog.async.nextTick @ nexttick.js:83
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_run_next_tick$arity$1 @ router.cljc?rel=1528112087813:183
mranderson048$re_frame$v0v10v2$re_frame$router$_run_next_tick @ router.cljc?rel=1528112087813:84
(anonymous) @ router.cljc?rel=1528112087813:138
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$_fsm_trigger$arity$3 @ router.cljc?rel=1528112087813:165
mranderson048$re_frame$v0v10v2$re_frame$router$_fsm_trigger @ router.cljc?rel=1528112087813:79
mranderson048.re_frame.v0v10v2.re_frame.router.EventQueue.mranderson048$re_frame$v0v10v2$re_frame$router$IEventQueue$push$arity$2 @ router.cljc?rel=1528112087813:101
mranderson048$re_frame$v0v10v2$re_frame$router$push @ router.cljc?rel=1528112087813:74
mranderson048$re_frame$v0v10v2$re_frame$router$dispatch @ router.cljc?rel=1528112087813:243
day8$re_frame_10x$db$init_db @ db.cljs?rel=1528112091697:26
day8$re_frame_10x$init_db_BANG_ @ re_frame_10x.cljs?rel=1528112092797:242
(anonymous) @ preload.cljs?rel=1528112092807:9
10:38:52.082 core.cljs:192 dev mode
10:39:14.803 react-dom.inc.js:526 Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.
printWarning @ react-dom.inc.js:526
warning @ react-dom.inc.js:550
unmountComponentAtNode @ react-dom.inc.js:17134
mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp @ dom.cljs?rel=1528112087442:16
mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node @ dom.cljs?rel=1528112087442:47
mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node @ core.cljs?rel=1528112087515:81
day8$re_frame_10x$events$open_debugger_window @ events.cljs?rel=1528112092468:289
(anonymous) @ events.cljs?rel=1528112092468:298
mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before @ std_interceptors.cljc?rel=1528112087645:133
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn @ interceptor.cljc?rel=1528112087576:67
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors @ interceptor.cljc?rel=1528112087576:105
mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute @ interceptor.cljc?rel=1528112087576:196
mranderson048$re_frame$v0v10v2$re_frame$events$handle @ events.cljc?rel=1528112087729:64
mranderson048$re_frame$v0v10v2$re_frame$router$dispatch_sync @ router.cljc?rel=1528112087813:261
day8.re_frame_10x.view.container.right_hand_buttons @ container.cljs?rel=1528112092181:84
callCallback @ react-dom.inc.js:140
invokeGuardedCallbackDev @ react-dom.inc.js:178
invokeGuardedCallback @ react-dom.inc.js:227
invokeGuardedCallbackAndCatchFirstError @ react-dom.inc.js:241
executeDispatch @ react-dom.inc.js:604
executeDispatchesInOrder @ react-dom.inc.js:626
executeDispatchesAndRelease @ react-dom.inc.js:724
executeDispatchesAndReleaseTopLevel @ react-dom.inc.js:735
forEachAccumulated @ react-dom.inc.js:705
runEventsInBatch @ react-dom.inc.js:866
runExtractedEventsInBatch @ react-dom.inc.js:875
handleTopLevel @ react-dom.inc.js:4551
batchedUpdates @ react-dom.inc.js:12983
batchedUpdates @ react-dom.inc.js:2115
dispatchEvent @ react-dom.inc.js:4632
interactiveUpdates @ react-dom.inc.js:13038
interactiveUpdates @ react-dom.inc.js:2134
dispatchInteractiveEvent @ react-dom.inc.js:4609
10:39:14.830 react-dom.inc.js:17081 Uncaught Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
    at invariant (react-dom.inc.js:59)
    at scheduleWorkImpl (react-dom.inc.js:12571)
    at scheduleWork (react-dom.inc.js:12528)
    at scheduleRootUpdate (react-dom.inc.js:13156)
    at updateContainerAtExpirationTime (react-dom.inc.js:13184)
    at Object.updateContainer (react-dom.inc.js:13211)
    at ReactRoot.render (react-dom.inc.js:16647)
    at legacyRenderSubtreeIntoContainer (react-dom.inc.js:17081)
    at react-dom.inc.js:17139
    at Object.unbatchedUpdates (react-dom.inc.js:12998)
    at unmountComponentAtNode (react-dom.inc.js:17138)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp (dom.cljs?rel=1528112087442:16)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node (dom.cljs?rel=1528112087442:47)
    at mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node (core.cljs?rel=1528112087515:81)
    at day8$re_frame_10x$events$open_debugger_window (events.cljs?rel=1528112092468:289)
    at events.cljs?rel=1528112092468:298
    at mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before (std_interceptors.cljc?rel=1528112087645:133)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn (interceptor.cljc?rel=1528112087576:67)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors (interceptor.cljc?rel=1528112087576:105)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute (interceptor.cljc?rel=1528112087576:196)
    at mranderson048$re_frame$v0v10v2$re_frame$events$handle (events.cljc?rel=1528112087729:64)
    at mranderson048$re_frame$v0v10v2$re_frame$router$dispatch_sync (router.cljc?rel=1528112087813:261)
    at day8.re_frame_10x.view.container.right_hand_buttons (container.cljs?rel=1528112092181:84)
    at HTMLUnknownElement.callCallback (react-dom.inc.js:140)
    at Object.invokeGuardedCallbackDev (react-dom.inc.js:178)
    at Object.invokeGuardedCallback (react-dom.inc.js:227)
    at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.inc.js:241)
    at executeDispatch (react-dom.inc.js:604)
    at executeDispatchesInOrder (react-dom.inc.js:626)
    at executeDispatchesAndRelease (react-dom.inc.js:724)
    at executeDispatchesAndReleaseTopLevel (react-dom.inc.js:735)
    at forEachAccumulated (react-dom.inc.js:705)
    at runEventsInBatch (react-dom.inc.js:866)
    at runExtractedEventsInBatch (react-dom.inc.js:875)
    at handleTopLevel (react-dom.inc.js:4551)
    at batchedUpdates (react-dom.inc.js:12983)
    at batchedUpdates (react-dom.inc.js:2115)
    at dispatchEvent (react-dom.inc.js:4632)
    at interactiveUpdates (react-dom.inc.js:13038)
    at interactiveUpdates (react-dom.inc.js:2134)
    at dispatchInteractiveEvent (react-dom.inc.js:4609)
invariant @ react-dom.inc.js:59
scheduleWorkImpl @ react-dom.inc.js:12571
scheduleWork @ react-dom.inc.js:12528
scheduleRootUpdate @ react-dom.inc.js:13156
updateContainerAtExpirationTime @ react-dom.inc.js:13184
updateContainer @ react-dom.inc.js:13211
ReactRoot.render @ react-dom.inc.js:16647
legacyRenderSubtreeIntoContainer @ react-dom.inc.js:17081
(anonymous) @ react-dom.inc.js:17139
unbatchedUpdates @ react-dom.inc.js:12998
unmountComponentAtNode @ react-dom.inc.js:17138
mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp @ dom.cljs?rel=1528112087442:16
mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node @ dom.cljs?rel=1528112087442:47
mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node @ core.cljs?rel=1528112087515:81
day8$re_frame_10x$events$open_debugger_window @ events.cljs?rel=1528112092468:289
(anonymous) @ events.cljs?rel=1528112092468:298
mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before @ std_interceptors.cljc?rel=1528112087645:133
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn @ interceptor.cljc?rel=1528112087576:67
mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors @ interceptor.cljc?rel=1528112087576:105
mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute @ interceptor.cljc?rel=1528112087576:196
mranderson048$re_frame$v0v10v2$re_frame$events$handle @ events.cljc?rel=1528112087729:64
mranderson048$re_frame$v0v10v2$re_frame$router$dispatch_sync @ router.cljc?rel=1528112087813:261
day8.re_frame_10x.view.container.right_hand_buttons @ container.cljs?rel=1528112092181:84
callCallback @ react-dom.inc.js:140
invokeGuardedCallbackDev @ react-dom.inc.js:178
invokeGuardedCallback @ react-dom.inc.js:227
invokeGuardedCallbackAndCatchFirstError @ react-dom.inc.js:241
executeDispatch @ react-dom.inc.js:604
executeDispatchesInOrder @ react-dom.inc.js:626
executeDispatchesAndRelease @ react-dom.inc.js:724
executeDispatchesAndReleaseTopLevel @ react-dom.inc.js:735
forEachAccumulated @ react-dom.inc.js:705
runEventsInBatch @ react-dom.inc.js:866
runExtractedEventsInBatch @ react-dom.inc.js:875
handleTopLevel @ react-dom.inc.js:4551
batchedUpdates @ react-dom.inc.js:12983
batchedUpdates @ react-dom.inc.js:2115
dispatchEvent @ react-dom.inc.js:4632
interactiveUpdates @ react-dom.inc.js:13038
interactiveUpdates @ react-dom.inc.js:2134
dispatchInteractiveEvent @ react-dom.inc.js:4609
10:39:14.852 react-dom.inc.js:280 Uncaught Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
    at invariant (react-dom.inc.js:59)
    at scheduleWorkImpl (react-dom.inc.js:12571)
    at scheduleWork (react-dom.inc.js:12528)
    at scheduleRootUpdate (react-dom.inc.js:13156)
    at updateContainerAtExpirationTime (react-dom.inc.js:13184)
    at Object.updateContainer (react-dom.inc.js:13211)
    at ReactRoot.render (react-dom.inc.js:16647)
    at legacyRenderSubtreeIntoContainer (react-dom.inc.js:17081)
    at react-dom.inc.js:17139
    at Object.unbatchedUpdates (react-dom.inc.js:12998)
    at unmountComponentAtNode (react-dom.inc.js:17138)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_comp (dom.cljs?rel=1528112087442:16)
    at mranderson048$reagent$v0v8v0$reagent$dom$unmount_component_at_node (dom.cljs?rel=1528112087442:47)
    at mranderson048$reagent$v0v8v0$reagent$core$unmount_component_at_node (core.cljs?rel=1528112087515:81)
    at day8$re_frame_10x$events$open_debugger_window (events.cljs?rel=1528112092468:289)
    at events.cljs?rel=1528112092468:298
    at mranderson048$re_frame$v0v10v2$re_frame$std_interceptors$fx_handler__GT_interceptor_$_fx_handler_before (std_interceptors.cljc?rel=1528112087645:133)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptor_fn (interceptor.cljc?rel=1528112087576:67)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$invoke_interceptors (interceptor.cljc?rel=1528112087576:105)
    at mranderson048$re_frame$v0v10v2$re_frame$interceptor$execute (interceptor.cljc?rel=1528112087576:196)
    at mranderson048$re_frame$v0v10v2$re_frame$events$handle (events.cljc?rel=1528112087729:64)
    at mranderson048$re_frame$v0v10v2$re_frame$router$dispatch_sync (router.cljc?rel=1528112087813:261)
    at day8.re_frame_10x.view.container.right_hand_buttons (container.cljs?rel=1528112092181:84)
    at HTMLUnknownElement.callCallback (react-dom.inc.js:140)
    at Object.invokeGuardedCallbackDev (react-dom.inc.js:178)
    at Object.invokeGuardedCallback (react-dom.inc.js:227)
    at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.inc.js:241)
    at executeDispatch (react-dom.inc.js:604)
    at executeDispatchesInOrder (react-dom.inc.js:626)
    at executeDispatchesAndRelease (react-dom.inc.js:724)
    at executeDispatchesAndReleaseTopLevel (react-dom.inc.js:735)
    at forEachAccumulated (react-dom.inc.js:705)
    at runEventsInBatch (react-dom.inc.js:866)
    at runExtractedEventsInBatch (react-dom.inc.js:875)
    at handleTopLevel (react-dom.inc.js:4551)
    at batchedUpdates (react-dom.inc.js:12983)
    at batchedUpdates (react-dom.inc.js:2115)
    at dispatchEvent (react-dom.inc.js:4632)
    at interactiveUpdates (react-dom.inc.js:13038)
    at interactiveUpdates (react-dom.inc.js:2134)
    at dispatchInteractiveEvent (react-dom.inc.js:4609)

@danielcompton
Copy link
Contributor

Thanks for this, can you give a bit more info on your setup? What OS/Browser are you using?

@deg
Copy link
Author

deg commented Jun 7, 2018

Ubuntu 16.04. Chrome Version 67.0.3396.18 (Official Build) beta (64-bit).

@deg
Copy link
Author

deg commented Jun 14, 2018

In my list of steps above, killing the app does not seem to be needed. It is, at least sometimes, enough to just refresh the app. Possibly only when the 10x window is external but hidden under another window.

@nickstares
Copy link

I can replicate the issue simply by refreshing the page while 10x is open in an external window.
On macOS 10.13.4
Chrome 67.0.3396.87
re-frame-10x 0.3.3
re-frame 10.5
using Figwheel and Emacs/CIDER

@alex-dixon
Copy link

Had this issue out of nowhere as well across a chrome 66 version and after upgrading to the latest Version 67.0.3396.99 (Official Build) (64-bit).

Settings -> Factory reset seems to have fixed it completely.

@deg
Copy link
Author

deg commented Jul 23, 2018

Any progress on this? Anything I can do to help (at the level of gathering evidence)?

Still happening to me repeatably, just by refreshing the page while 10x open in external window,
Now in Chrome 68.0.3440.33; still Ubuntu 16.04.

@JarrodCTaylor
Copy link

Same behavior here. Refreshing the page while 10x is popped out will consistently reproduce.

  • 10x: 0.3.3-react16
  • macOS 10.12.6
  • Chrome 67.0.3396.99

@nickstares
Copy link

nickstares commented Jul 23, 2018

One thing that I noticed is that after page refresh and closing the open 10x window, the
day8.re-frame-10x.external-window? local storage key is still set to "true".
If I delete that key (or set it to "false") before refreshing the page, when the page reloads I can close the external window and the bug does not occur. However, if I delete that key after refreshing the page (before or after window close), the bug still happens.

@deg
Copy link
Author

deg commented Aug 14, 2018

I can also confirm that it is enough to delete the external-window? key before refreshing. I don't need to clear all the other keys. (Good to know, since this makes bug fractionally less unpleasant).

@panewman
Copy link

I can confirm with Windows 7 and Chrome 68.
Reloading does not fix the problem. Clicking on factory reset in the settings did help.

@danielcompton
Copy link
Contributor

danielcompton commented Aug 30, 2018

I've had a go at reproducing this against the Todo MVC re-frame sample app, and I'm not able to. Can someone share a reproducible example, ideally against something small?

Edit: Just after posting this it happened to me too.

@danielcompton danielcompton added help wanted needs info Waiting for reporter to provide more information bug? Unsure if this is a bug in re-frame-10x bug and removed bug? Unsure if this is a bug in re-frame-10x needs info Waiting for reporter to provide more information labels Aug 30, 2018
@danielcompton
Copy link
Contributor

I have been able to reproduce this, but only sporadically. If anyone can share a codebase that can reliably do this every time that would be helpful. I'm also not seeing the error messages you are @deg. For me it seems to happen if I'm doing something else for a while, and a main window refresh seems to clear it up.

The issue looks to be wider than just the triangles being frozen, it seems like no events are firing at all when this issue happens.

The external window size being small is happening because the width and height on day8.re-frame-10x.external-window-dimensions are set to small values (zero?). I'm still not clear how they are being set to small values though, this is likely part of the same problem.

While I'm interested in solving this issue, I don't have a ton of spare time for it at the moment, so if others are able to help pinpoint the issue, that would be very helpful.

@deg
Copy link
Author

deg commented Aug 30, 2018

I have two ideas, which kind of contradict each other...

Direction 1:

For me, this seems to happen in all my projects, so I've assumed it was environmental, not project-specific. So, I don't believe you'd gain much with a shared codebase. But, in case I'm wrong (and see direction 2 below!), I'd say try any of my projects. The problem is that, I can't think of any which are public, easy to setup, and in which I'm certain I've seen the problem. I'm in a crunch for the next few days, but I'll try to find one for you soon.

Direction 2:

Maybe the problem is caused by something common to all my current projects. I learned something new a few hours ago. See deg/re-frame-firebase#24. Most of my project use re-frame-firebase which depends on re-frame 0.10.5 and on reagent 0.8.1. They apparently disagree on React 15 vs 16. Maybe these, combined with some injection complexity in re-frame-10x could be somehow messing things up.
Dunno if I'm talking total nonsense here, or is this is a worthwhile shot in the dark. I don't have time to explore today, but I will test this direction as soon as I can,

@JarrodCTaylor
Copy link

I am able to consistently reproduce using the re-frame template with the following steps:

  1. lein new re-frame ten-x-issue-example +10x
  2. Update dependencies to the following
  :dependencies [[org.clojure/clojure "1.9.0"]
                 [org.clojure/clojurescript "1.10.329"]
                 [reagent "0.8.1"]
  ;; The issue seems to originate from reagent version as clojure and clojurescript versions can be bumped without causing the issue. 
  1. Start the app then open and pop out the 10x panel
  2. Refresh the page
    image

@deg
Copy link
Author

deg commented Aug 31, 2018

I can confirm @JarrodCTaylor.

On one of my projects that fails consistently, I changed

-                 [reagent "0.8.1"]
+                 [reagent "0.7.0"]
...
-                                 [day8.re-frame/re-frame-10x "0.3.3-react16"]
+                                 [day8.re-frame/re-frame-10x "0.3.3"]

and fixed all my :<> back to :div.

The problem went away!

@danielcompton
Copy link
Contributor

Hey folks, thanks for the debugging information here. At this stage, it looks like we are unlikely to have any bandwidth to work on re-frame-10x through to the end of the year. We're happy to take a PR that fixes the issue, but short of that, we don't have much time to go further on this.

@mustangJaro
Copy link

To add more information to the discussion, even though I realize there's limited bandwidth to work on this right now, I've noticed I continue to have trouble when the Chrome pop-up blocker is enabled. The problem is that after you reset profile settings in Chrome the pop-up blocker is enabled so when I open a new session the 10x external window gets blocked and then subsequently fails expanding triangles. If I disable the pop-up blocker I can't reproduce this issue.

I think this reinforces some earlier comments regarding the external-window? key since I think they're closely coupled.

I'm wondering if we should create an installation step to disable the pop-up blocker.

@danielcompton
Copy link
Contributor

@mustangJaro the Chrome popup blocker issue should be fixed in https://github.com/Day8/re-frame-10x/releases/tag/0.3.7 (#228).

@mike-thompson-day8 mike-thompson-day8 changed the title Reproducible path to "triangles frozen" problem Reproducible path to "triangles frozen" problem https://github.com/Day8/re-frame-10x#the-expansion-triangles-in-the-data-browsers-dont-work-any-more-but-they-used-to Mar 21, 2019
@mike-thompson-day8 mike-thompson-day8 changed the title Reproducible path to "triangles frozen" problem https://github.com/Day8/re-frame-10x#the-expansion-triangles-in-the-data-browsers-dont-work-any-more-but-they-used-to Reproducible path to "triangles frozen" problem. See https://github.com/Day8/re-frame-10x#the-expansion-triangles-in-the-data-browsers-dont-work-any-more-but-they-used-to Mar 21, 2019
superstructor added a commit that referenced this issue Sep 11, 2019
@superstructor
Copy link
Contributor

The unmountComponentAtNode exception that has been commonly associated with this issue has been fixed in re-frame-10x 0.4.3 release, which is the last version that will support reagent 0.8.x and React 16.8.6.

The two key things related to reproducible steps were found to be:

  1. use of re-frame-10x in an external window; and
  2. on refresh the unmountComponentAtNode exception.

Although the frozen triangles problem may have been infrequently observed after fixing the unmountComponentAtNode exception we think it is either so rare that it won't be an issue, or it may be an entirely different issue as there are two key differences:

  1. Now it freezes everything, e.g. tabs etc, not just triangles; and
  2. When it happens a simple browser refresh of the parent window completely fixes everything. No need to clear state or close the external 10x window.

Therefore we think its worth closing this issue, and if there are substantial new experiences of a similar or new issue then please raise a new issue to track that accurately.

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

No branches or pull requests

8 participants