Skip to content
This repository

Arbitrary filtering behaviour in Chrome 22.0.1229.79 / OS X #40

Closed
evenwestvang opened this Issue October 03, 2012 · 14 comments

6 participants

even westvang Mike Bostock Jake Sandlund Jason Davies Ziggy Jonsson Johan Nordberg
even westvang

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.

Mike Bostock
Collaborator

Yikes. This looks tricky to debug.

even westvang

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.

even westvang

Both 24.0.1284.2 dev and 24.0.1285.0 canary display the same behaviour.

Jake Sandlund

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.

Jason Davies
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.

Jason Davies
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.

even westvang

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

Mike Bostock
Collaborator

Kudos, Jason!

Ziggy Jonsson

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/

Ziggy Jonsson

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/

Johan Nordberg

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

Jason Davies
Collaborator

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

Ryan Berdeen also referenced this issue from a commit in also/crossfilter November 03, 2012
Ryan Berdeen hopefully work around square/#40 4d608d6
Jason Davies
Collaborator

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

even westvang

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

even westvang evenwestvang closed this November 19, 2012
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.