Comments (11)
Any kind of transient failure like this very often ends up being cruft having built up in various directories that the compiler / REPL use to store intermediate bits. Try blowing away out
, .repl
, and target
.
from austin.
I tried that. Also tried with a freshly pulled copy of the Austin repo.
With Chrome, I've seen no successful attempts for the past day's focused testing, and very few successes before that.
With Firefox, things are consistently working (though only a few attempts so far).
I will continue testing later today (guess I'll start by clearing Chrome's state). So far, all I can say for sure is that I'm seeing a different pattern of network traffic when I compare Firefox with the failing Chrome cases.
Can you reliably run this in Chrome?
Actually, to be precise, I'm running Chromium: "Version 28.0.1500.71 Ubuntu 12.10 (28.0.1500.71-0ubuntu1.12.10.1)"
from austin.
Chrome is actually my default catch-all test browser (including hosting most of my ClojureScripting). I don't think I've ever run chromium.
from austin.
-
Ok, I'll poke further. I may have time later today; otherwise it won't be for a few days. I'll install chrome on this VM, and maybe try chromium on another machine. Hard to imagine that it's a chrome vs chromium problem, but guess I gotta at least rule out that possibility.
-
Argh, Github did not post my last message here. (I'm doing something wrong; this has happened a few times. Probably losing focus between multiple VMs, single-clicking on comment, and not noticing that nothing happens before blindly closing the window. Or something else...). Anyway, I had detailed the differences in network traffic between the failing and working case. Basically, on a refresh after
reset!
'ing the repl, the first four request are the same; the fourth returning a few lines of Javascript referring to print-fn). But, the failing browser has no fifth request, while the working browser POSTs a fifth request which becomes a long-poll.
from austin.
Got it!
The issue was not chrome vs chromium; that would have been too bizarre. But, at least that set me in the right direction.
The real issue was that I was logged in to my Google account, which dragged along all my chrome/chromium extensions. Once I realized that, it was easy to isolate the culprit: the Google Voice extension.
A frustrating SOB of a bug; who-woulda-thought to look there. But, at least I'm good now.
Do you want me to submit a patch with a warning line for the README.md?
from austin.
That is really strange. A warning is worthwhile, but I'd like to know what about the extension was interfering; presumably whatever it's doing isn't unique among chrome extensions…?
from austin.
I agree 100%. I can do the first steps of describing the visible breakage, but I don't have the tools to poke deeper; I'm less than a rank novice at Chrome's architecture and know zero about Google Voice internals.
Do you know anyone who might have a good handle on attacking this kind of problem?
Of course, it would also be extremely useful for someone else to verify this bug, and make sure that it's not an interaction of GV with something else in my environment. Do you have the time to do so?
from austin.
Some more info which may mean more to you than to me:
In both cases (Chromium with Google Voice enabled or disabled, running a clean browser-connected-repl-sample), the first four packets are the same:
- Packet 1 - GET the web page html
- Packet 2 - GET app.js
- delay for a few hundred msec
- Packet 3 - GET
http://localhost:59587/6678/repl?xpc={"cn":"Igg62CCsNV","tp":null,"osh":null,"ppu":"http://localhost:8080/robots.txt","lpu":"http://localhost:59587/robots.txt"}
(URLencoded, of course) - delay for another few hundred msec
- Packet 4: POST, as follows:
Request URL:http://localhost:59587/6678/repl
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:42
Content-Type:application/x-www-form-urlencoded;charset=UTF-8
Cookie:ring-session=b8d6c869-776d-47d3-93af-e339aa21e0a2; chat-id=336c3fb2-d577-4ccf-ba5b-f19e2cf0b898
Host:localhost:59587
Origin:http://localhost:59587
Referer:http://localhost:59587/6678/repl?xpc=%7B%22cn%22%3A%22Rtr72TADp5%22%2C%22tp%22%3Anull%2C%22osh%22%3Anull%2C%22ppu%22%3A%22http%3A%2F%2Flocalhost%3A8080%2Frobots.txt%22%2C%22lpu%22%3A%22http%3A%2F%2Flocalhost%3A59587%2Frobots.txt%22%7D
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36
Form Dataview sourceview URL encoded
{:type :ready, :content "ready", :order 1}:
Response Headersview source
Content-length:120
Content-Type:text/javascript; charset=utf-8
Date:Mon, 30 Sep 2013 07:28:09 GMT
Server:ClojureScript REPL
With response
goog.provide('cljs.user');
goog.require('cljs.core');
cljs.core._STAR_print_fn_STAR_ = clojure.browser.repl.repl_print;
Then, the working case (GV disabled) immediately sends a fifth packet:
Request URL:http://localhost:59587/6678/repl
Request Headersview source
Content-Type:application/x-www-form-urlencoded;charset=UTF-8
Origin:http://localhost:59587
Referer:http://localhost:59587/6678/repl?xpc=%7B%22cn%22%3A%22Igg62CCsNV%22%2C%22tp%22%3Anull%2C%22osh%22%3Anull%2C%22ppu%22%3A%22http%3A%2F%2Flocalhost%3A8080%2Frobots.txt%22%2C%22lpu%22%3A%22http%3A%2F%2Flocalhost%3A59587%2Frobots.txt%22%7D
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36
Form Dataview sourceview URL encoded
{:type :result, :content "{:status :success, :value \"function (a) {\\n var b : cljs.core.deref.call(null, clojure.browser.repl.xpc_connection);\\n return cljs.core.truth_(b) ? clojure.browser.net.transmit.call(null, b, \\\"\\\\ufdd0:print\\\", cljs.core.pr_str.call(null, a)) : null\\n}\"}", :order 2}
This, of course, sits in the long-poll with no response until I evaluate something in the REPL.
The failing case never sends this packet at all.
from austin.
This (goofy) extension breaks in the same way: https://chrome.google.com/webstore/detail/dictionary-of-numbers/ahhgdmkmcgahbkcbmlkpmmamemlkajaf
from austin.
With a second confirming case, I'm happy to have the warning in the patch on gh-18 shown in the main README as well, in the " Using other browser runtimes" section.
from austin.
Hoping that this is related to the use of CrossPageChannel, and therefore resolved by #50.
from austin.
Related Issues (20)
- Eliminate use of CrossPageChannel HOT 3
- Fail gracefully on attempts to use REPL env with disposed session
- Austin should not declare its own ClojureScript dependency HOT 5
- Cljs compiler env doesn't correspond to a refreshed browser env, with (disastrous!) consequences HOT 6
- NullPointerException with Clojurescript 0.0-2173 HOT 5
- NPE against org.clojure/clojurescript "0.0-2173" HOT 1
- Incompatibility with cljs 2173 HOT 1
- austin/exec-env fails w/ cljs 0.0-2173 HOT 3
- Hot reloading of HTML files not working in example project HOT 4
- Inexplicable problems with sample project HOT 3
- Can't require namespaces HOT 1
- Initial namespace not setup properly HOT 1
- Add support for adding JS dependencies. HOT 1
- tools.logging aot issue HOT 2
- Austin not compatible with cljs-2356 HOT 4
- clojurescript 0.0-2665 cannot compile austin 0.1.5 HOT 7
- Add production profile to browser-connected-repl-sample
- After loading (cemerick.austin.repls/exec), forms hang at repl prompt HOT 5
- After loading (cemerick.austin.repls/exec), austin fails with "No value supplied for key:" HOT 4
- Can't start repl
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from austin.