-
-
Notifications
You must be signed in to change notification settings - Fork 177
0.10.0-wip (was 0.9.3-wip) #73
Conversation
With [email protected] and this we should have |
check out test/leak-tester-batch.js. chained batch:
array batch:
is this the problem we're looking for? is chained batch immune to the leak in people's experience? /cc @brycebaril @mcollina |
as far as i remember i think i've seen similar memory growth in leveled |
yeah baby! I pulled in #70 and did a complete job with it (you also need to I'm currently running both chained and array style batch operations in my batch leak tester and I'm up over 2G and memory usage is consistent around the 70M mark, so WOOHOO! This is going to be 0.10.0 I think, too big a change with the Persistent removal to be a patch version, thoughts? |
oh, and can someone who has a segfault or leak situation please try this branch and report back? |
aren't those changes only fixes? |
congrats!! |
Congrats @rvagg for putting it all together! 👯 and 🍻 to everybody! I'm up for 0.10, as its a too-heavy fix to be a patch release. This can have bugs, and if you are not experiencing the issue you do not want a possible unsafe upgrade. I'll give this a go in my segfault case to see if I still get problems. |
ok, 0.10 sounds good then |
This solves my segfault on node v0.10. 🍻 |
I spoke too early. I still have a segfault in LevelGraph which I am not able to reproduce using just levelup/leveldown :( using chained batch. |
@mcollina can you do a |
First run (without segfault):
Second run, with segfault:
|
from what I can see, the only possible way this can happen is if the @mcollina perhaps we have some odd V8 GC thing happening, can you try holding on to a reference to the var batch = db.batch()
batch.put('foo', 'bar')
batch.write(function (err) {
batch.dummy = 'foobar'
}) this is to ensure that V8 doesn't decide that |
so @KyotoWeb helpfully picked up that we're not actually using the bloom filter on this branch! ooops, that's added now. |
Could I please get a contributor who is on OSX to check out the latest on this branch, go in to deps/snappy/snappy-1.1.1/ and run |
Done :). |
I think the segfault happens when LevelDB do compaction, the batch is 'stopped' and then the GC has time to collect it. I was removing a reference to the batch after starting the write. The fact that this is triggered by LevelGraph is due to the kind of data: LG stores six very different sets of keys in the same batch. |
The travis build fails with my config.h commit. Did I do something wrong? |
sorry, my fault, I haven't fully wired up snappy-1.1.1 yet, just needs a snappy.gyp change which you're welcome to do or I'll do when I get back to the computer. |
Done! |
this won't compile for me on Windows, because of the Snappy upgrade, and I can't remember what I had to do to make it work last time ... so .. still "work in progress" |
My current thoughts on the GC issue: I think what we might do is assign a I'll investigate extending |
I agree with you... this leveldown release will be huge. |
need to wait for nodejs/nan#41 but as soon as that's released I'll push my latest changes to do what I described above. |
So Snappy build looks broken on the windows anyhoo The lines in configure.ac that are mentioned are added in our one too. By adding
Here Fixes it. Thoughts? |
@No9 my thoughts are that this worked fine on windows with 1.1.0 and the changes for 1.1.1 are relatively minor so we should back up and see what's changed, perhaps I had a fix manually in 1.1.0 for Windows or perhaps I'm not quite doing something right now! |
@No9 sorry, I've followed up yourl inks and understand what you're talking about now! the Anyone got anything else that needs to go in to a 0.10.0? I think we might be done here. Final comments? |
I'm for getting leveldown 0.10 out. It's already a big release, with lots of new stuff and improvements. |
@mcollina what we've done for leveldown minors is to bump levelup & level minors too even if there aren't any changes there. I think that's reasonable and so far nobody has suggested otherwise. |
Cool! Ok. I thought 0.18 was the one without WriteStream, but he PR is still not merged, so we should be OK. |
published as 0.10.0! |
No description provided.