binaryage / dirac

A Chrome DevTools fork for ClojureScript developers
Other
769 stars 30 forks source link

Internal `_createLiveLocation` error #73

Closed pepe closed 6 years ago

pepe commented 6 years ago

Hello.

Today after update to Chrome Canary 65.0.3311.0 Dirac stopped working. Below are errors as showed up in Chrome Devtools console:

Dirac v1.2.23, Chrome/65.0.3311.0, Mac/10.13.2, Backend API/external/532, Backend CSS/external/440

An error was logged into the internal DevTools console:
  | TypeError: Cannot read property '_createLiveLocation' of undefined
---
To inspect the problem in internal DevTools => https://goo.gl/0FkZ1o
Consider reporting the issue here: https://github.com/binaryage/dirac/issues
Dirac v1.2.23, Chrome/65.0.3311.0, Mac/10.13.2, Backend API/external/532, Backend CSS/external/440

DevTools code has thrown an unhandled exception:
TypeError: Cannot read property '_createLiveLocation' of undefined
    at Bindings.DebuggerWorkspaceBinding.createLiveLocation (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:8708:158)
    at _locations.rawLocations.map.location (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:8745:393)
    at Array.map (<anonymous>)
    at new Bindings.DebuggerWorkspaceBinding.StackTraceTopFrameLocation (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:8745:371)
    at Bindings.DebuggerWorkspaceBinding.createStackTraceTopFrameLiveLocation (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:8709:129)
    at Components.Linkifier.linkifyStackTraceTopFrame (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/inspector.js:9289:256)
    at Console.ConsoleViewMessage._linkifyStackTraceTopFrame (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console/console_module.js:370:36)
    at Console.ConsoleViewMessage._buildMessageAnchor (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console/console_module.js:347:393)
    at Console.ConsoleViewMessage._buildMessage (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console/console_module.js:344:222)
    at Console.ConsoleViewMessage.contentElement (chrome-extension://kbkdngfljkchidcjpnfcgcokkbhlkogi/devtools/front_end/console/console_module.js:451:23)

and boot task log:

SEVERE: Unable to boostrap Dirac ClojureScript REPL:
 #error {
 :cause Dirac encountered an internal eval problem (:dirac.implant.eval/context-timeout).While evaluating:
cljs.core._STAR_print_namespace_maps_STAR_ = true
 :data {:type :js-eval-error, :error {:status :error, :value Dirac encountered an internal eval problem (:dirac.implant.eval/context-timeout).While evaluating:
cljs.core._STAR_print_namespace_maps_STAR_ = true}, :repl-env #dirac.lib.weasel_server.WeaselREPLEnv{:id 3, :options {:host localhost, :port 8232, :port-range 10, :after-launch #object[dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410 0x2fa0e80b dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410@2fa0e80b]}, :server #object[clojure.lang.Atom 0x3b50d324 {:status :ready, :val #dirac.lib.ws_server.WebSocketServer{:id 4, :options {:host localhost, :port 8232, :port-range 10, :after-launch #object[dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410 0x2fa0e80b dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410@2fa0e80b], :on-message #object[clojure.core$partial$fn__5561 0x77aede0a clojure.core$partial$fn__5561@77aede0a], :on-client-connection #object[clojure.core$partial$fn__5561 0x5de48eb0 clojure.core$partial$fn__5561@5de48eb0], :ip localhost}, :http-server #object[clojure.lang.Atom 0x2a0a45ba {:status :ready, :val #object[clojure.lang.AFunction$1 0x37a1ab20 clojure.lang.AFunction$1@37a1ab20]}], :first-client-promise #object[clojure.lang.Atom 0x367e6d50 {:status :ready, :val #object[clojure.core$promise$reify__8144 0x4f96f421 {:status :ready, :val #dirac.lib.ws_server.WebSocketServerClient{:id 6, :channel #object[org.httpkit.server.AsyncChannel 0x37494ffc /127.0.0.1:8232<->/127.0.0.1:60971], :jobs-channel #object[clojure.core.async.impl.channels.ManyToManyChannel 0xd0b0a9e clojure.core.async.impl.channels.ManyToManyChannel@d0b0a9e], :done-promise #object[clojure.core$promise$reify__8144 0x48daf282 {:status :pending, :val nil}]}}]}], :clients #object[clojure.lang.Atom 0x30152044 {:status :ready, :val [#dirac.lib.ws_server.WebSocketServerClient{:id 6, :channel #object[org.httpkit.server.AsyncChannel 0x37494ffc /127.0.0.1:8232<->/127.0.0.1:60971], :jobs-channel #object[clojure.core.async.impl.channels.ManyToManyChannel 0xd0b0a9e clojure.core.async.impl.channels.ManyToManyChannel@d0b0a9e], :done-promise #object[clojure.core$promise$reify__8144 0x48daf282 {:status :pending, :val nil}]}]}]}}], :client-response-promise #object[clojure.lang.Atom 0x17d7a6e1 {:status :ready, :val nil}], :cached-setup #object[clojure.lang.Atom 0x6212a16f {:status :ready, :val nil}]}, :form (set! cljs.core/*print-namespace-maps* true)}
 :via
 [{:type clojure.lang.ExceptionInfo
   :message Dirac encountered an internal eval problem (:dirac.implant.eval/context-timeout).While evaluating:
cljs.core._STAR_print_namespace_maps_STAR_ = true
   :data {:type :js-eval-error, :error {:status :error, :value Dirac encountered an internal eval problem (:dirac.implant.eval/context-timeout).While evaluating:
cljs.core._STAR_print_namespace_maps_STAR_ = true}, :repl-env #dirac.lib.weasel_server.WeaselREPLEnv{:id 3, :options {:host localhost, :port 8232, :port-range 10, :after-launch #object[dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410 0x2fa0e80b dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410@2fa0e80b]}, :server #object[clojure.lang.Atom 0x3b50d324 {:status :ready, :val #dirac.lib.ws_server.WebSocketServer{:id 4, :options {:host localhost, :port 8232, :port-range 10, :after-launch #object[dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410 0x2fa0e80b dirac.nrepl.bootstrap$bootstrap_BANG_$after_launch_BANG___21410@2fa0e80b], :on-message #object[clojure.core$partial$fn__5561 0x77aede0a clojure.core$partial$fn__5561@77aede0a], :on-client-connection #object[clojure.core$partial$fn__5561 0x5de48eb0 clojure.core$partial$fn__5561@5de48eb0], :ip localhost}, :http-server #object[clojure.lang.Atom 0x2a0a45ba {:status :ready, :val #object[clojure.lang.AFunction$1 0x37a1ab20 clojure.lang.AFunction$1@37a1ab20]}], :first-client-promise #object[clojure.lang.Atom 0x367e6d50 {:status :ready, :val #object[clojure.core$promise$reify__8144 0x4f96f421 {:status :ready, :val #dirac.lib.ws_server.WebSocketServerClient{:id 6, :channel #object[org.httpkit.server.AsyncChannel 0x37494ffc /127.0.0.1:8232<->/127.0.0.1:60971], :jobs-channel #object[clojure.core.async.impl.channels.ManyToManyChannel 0xd0b0a9e clojure.core.async.impl.channels.ManyToManyChannel@d0b0a9e], :done-promise #object[clojure.core$promise$reify__8144 0x48daf282 {:status :pending, :val nil}]}}]}], :clients #object[clojure.lang.Atom 0x30152044 {:status :ready, :val [#dirac.lib.ws_server.WebSocketServerClient{:id 6, :channel #object[org.httpkit.server.AsyncChannel 0x37494ffc /127.0.0.1:8232<->/127.0.0.1:60971], :jobs-channel #object[clojure.core.async.impl.channels.ManyToManyChannel 0xd0b0a9e clojure.core.async.impl.channels.ManyToManyChannel@d0b0a9e], :done-promise #object[clojure.core$promise$reify__8144 0x48daf282 {:status :pending, :val nil}]}]}]}}], :client-response-promise #object[clojure.lang.Atom 0x17d7a6e1 {:status :ready, :val nil}], :cached-setup #object[clojure.lang.Atom 0x6212a16f {:status :ready, :val nil}]}, :form (set! cljs.core/*print-namespace-maps* true)}
   :at [clojure.core$ex_info invokeStatic core.clj 4739]}]
 :trace
 [[clojure.core$ex_info invokeStatic core.clj 4739]
  [clojure.core$ex_info invoke core.clj 4739]
  [cljs.repl$evaluate_form invokeStatic repl.cljc 521]
  [cljs.repl$evaluate_form invoke repl.cljc 452]
  [cljs.repl$repl_STAR_ invokeStatic repl.cljc 853]
  [cljs.repl$repl_STAR_ invoke repl.cljc 760]
  [dirac.nrepl.eval$eval_in_cljs_repl_BANG_$start_repl_fn__20249 invoke eval.clj 245]
  [dirac.nrepl.driver$wrap_with_driver invokeStatic driver.clj 142]
  [dirac.nrepl.driver$wrap_with_driver invoke driver.clj 126]
  [dirac.nrepl.eval$eval_in_cljs_repl_BANG_ invokeStatic eval.clj 249]
  [dirac.nrepl.eval$eval_in_cljs_repl_BANG_ doInvoke eval.clj 212]
  [clojure.lang.RestFn invoke RestFn.java 594]
  [dirac.nrepl.utils$start_new_cljs_compiler_repl_environment_BANG_ invokeStatic utils.clj 67]
  [dirac.nrepl.utils$start_new_cljs_compiler_repl_environment_BANG_ invoke utils.clj 48]
  [dirac.nrepl.bootstrap$start_cljs_repl_BANG_ invokeStatic bootstrap.clj 68]
  [dirac.nrepl.bootstrap$start_cljs_repl_BANG_ invoke bootstrap.clj 40]
  [dirac.nrepl.bootstrap$bootstrap_BANG_ invokeStatic bootstrap.clj 89]
  [dirac.nrepl.bootstrap$bootstrap_BANG_ invoke bootstrap.clj 76]
  [dirac.nrepl$boot_dirac_repl_BANG_ invokeStatic nrepl.clj 30]
  [dirac.nrepl$boot_dirac_repl_BANG_ doInvoke nrepl.clj 27]
  [clojure.lang.RestFn invoke RestFn.java 408]
  [boot.user$eval24276 invokeStatic nil 1]
  [boot.user$eval24276 invoke nil 1]
  [clojure.lang.Compiler eval Compiler.java 7062]
  [clojure.lang.Compiler eval Compiler.java 7052]
  [clojure.lang.Compiler eval Compiler.java 7025]
  [clojure.core$eval invokeStatic core.clj 3206]
  [clojure.core$eval invoke core.clj 3202]
  [clojure.main$repl$read_eval_print__8572$fn__8575 invoke main.clj 243]
  [clojure.main$repl$read_eval_print__8572 invoke main.clj 243]
  [clojure.main$repl$fn__8581 invoke main.clj 261]
  [clojure.main$repl invokeStatic main.clj 261]
  [clojure.main$repl doInvoke main.clj 177]
  [clojure.lang.RestFn invoke RestFn.java 1523]
  [clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__2299 invoke interruptible_eval.clj 87]
  [clojure.lang.AFn applyToHelper AFn.java 152]
  [clojure.lang.AFn applyTo AFn.java 144]
  [clojure.core$apply invokeStatic core.clj 657]
  [clojure.core$with_bindings_STAR_ invokeStatic core.clj 1965]
  [clojure.core$with_bindings_STAR_ doInvoke core.clj 1965]
  [clojure.lang.RestFn invoke RestFn.java 425]
  [clojure.tools.nrepl.middleware.interruptible_eval$evaluate invokeStatic interruptible_eval.clj 85]
  [clojure.tools.nrepl.middleware.interruptible_eval$evaluate invoke interruptible_eval.clj 55]
  [clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__2344$fn__2347 invoke interruptible_eval.clj 222]
  [clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__2339 invoke interruptible_eval.clj 190]
  [clojure.lang.AFn run AFn.java 22]
  [java.util.concurrent.ThreadPoolExecutor runWorker ThreadPoolExecutor.java 1142]
  [java.util.concurrent.ThreadPoolExecutor$Worker run ThreadPoolExecutor.java 617]
  [java.lang.Thread run Thread.java 748]]}
Led 04, 2018 10:08:24 DOP. clojure.tools.logging$eval1754$fn__1757 invoke
SEVERE: [NREPLTunnelServer#1 of [NREPLTunnel#1]] Received a bootstrap error from client [WebSocketServerClient#5] :
 {:op :bootstrap-error}

Hope it helps. I will be in Clojurians Slack, in case you need more info, just ask please.

darwin commented 6 years ago

Thanks for reporting. This will probably just require merging latest DevTools changes and releasing updated Dirac.

Unfortunately my automated tests to catch this have been broken for past 4 weeks due to this https://chromium.googlesource.com/chromium/src/+/45c0029def3706a9b37b9fc5b0e83386749a10c1. Still waiting for Google devs to release fixed ChromeDriver.

darwin commented 6 years ago

Fixed in v1.2.24.

Works on my machine. @pepe Please close this issue after you confirm it is really working.

pepe commented 6 years ago

Perfect. Fixed for me as well. Thank you very much for your commitment.

And hopefully, see each other this year :-).