Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Arbitrary filtering behaviour in Chrome 22.0.1229.79 / OS X #40

Closed
evenwestvang opened this Issue · 14 comments

6 participants

@evenwestvang

In the current stable release of Chrome filters seem to simply be dropping parts of the set when multiple filters are applied and reset. After much digging in my current project I found the same error appearing consistently in the canonical ASA data set example.

To reproduce simply set all the filters and reset them. The result is as as follows – the number of selected flights varies, but never matches the total:

37,407 of 231,083 flights selected.

If you continue to filter and reset the groupAll sum changes, sometimes rising, sometimes falling.

Firefox, Safari and Opera still has completely sane behaviour.

@mbostock
Collaborator

Yikes. This looks tricky to debug.

@evenwestvang

I'd offer my time, but the internals of Crossfilter seem daunting. Scary, even. Substituting a firm grasp of reality with intuition I'd go with a change in the typed arrays. I'll check the dev and canary builds to see if help is on the way upstream.

@evenwestvang

Both 24.0.1284.2 dev and 24.0.1285.0 canary display the same behaviour.

@jakesandlund

I also found this issue when working on DataZooka. If you play around with it, you can see weird things going on. I noticed that sometimes it would throw a TypeError here in the updateMany routine.

@jasondavies
Collaborator

It could be this issue that I spotted in beta a while ago. It was only fixed in V8 recently, so I don't know how long it'll take to filter down. I'll see if I can get the fix backported.

@jasondavies
Collaborator

Update: it looks like it's definitely the same issue, and it hasn't been merged into the release branches of V8 yet. I'll keep you updated.

@evenwestvang

Excellent, and well spotted. I'll be watching that thread.

@mbostock
Collaborator

Kudos, Jason!

@ZJONSSON

I have been exploring Crossfilter on a node.js server with dynamic updating through Ajax (or websockets). The main benefit is faster browser initiation speed since the filter is already prepared. But this setup could also circumvent browser related javascript issues, provided the Node V8 engine on the server is sound?

I forked a quick example here with the code split between node.js and index.html:
https://github.com/ZJONSSON/crossfilter/tree/gh-pages-ajax

This code is live for a short time here:
http://zjonsson.com:8888/

@ZJONSSON

Another browser issue is data-size. Chrome kills a page when memory use goes over 100mb. I manage to avoid the problem by running the filter on a server instead.

Moved the flights example to Heroku: http://flights-ajax.herokuapp.com/
And here is another example close to home: http://icequake.herokuapp.com/

@jnordberg

I also ran in to this issue. It seems to be fixed in beta channel now (using 23.0.1271.26)

@jasondavies
Collaborator

Yes, the fix was merged into M23 a few days ago, but I think it’s yet to be backported to M21 (stable).

@also also referenced this issue from a commit in also/crossfilter
@also also hopefully work around square/#40 4d608d6
@jasondavies
Collaborator

M23 is now stable, so this issue should be resolved.

@evenwestvang

Yes, as far as I can tell this has been resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.