00:04:43  * eugenewarejoined
00:19:36  * jmartinsjoined
00:28:20  * eugenewarequit (Remote host closed the connection)
00:29:54  * eugenewarejoined
00:37:27  * jcrugzz_changed nick to jcrugzz
00:38:11  * frankblizzardjoined
00:42:34  * frankblizzardquit (Ping timeout: 246 seconds)
00:44:20  * ramitosquit (Quit: Computer has gone to sleep.)
00:44:27  * fallsemojoined
00:45:00  * fallsemoquit (Client Quit)
00:50:56  * eugenewarequit (Remote host closed the connection)
00:56:28  * eugenewarejoined
01:02:00  * esundahljoined
01:12:25  * thlorenzjoined
01:13:47  * esundahlquit (Remote host closed the connection)
01:14:54  * esundahljoined
01:17:14  * thlorenzquit (Ping timeout: 256 seconds)
01:20:01  * mikealquit (Quit: Leaving.)
01:20:52  * kenansulaymanquit (Ping timeout: 264 seconds)
01:21:34  * kenansulaymanjoined
01:27:16  * eugenewarequit (Remote host closed the connection)
01:27:49  * eugenewarejoined
01:28:13  * thlorenzjoined
01:30:08  * julianduquequit (Ping timeout: 240 seconds)
01:31:32  * julianduquejoined
01:34:39  * jmartinsquit (Quit: Konversation terminated!)
01:38:41  * frankblizzardjoined
01:41:44  * dguttmanquit (Quit: dguttman)
01:42:56  * frankblizzardquit (Ping timeout: 248 seconds)
01:47:26  * eugenewarequit (Remote host closed the connection)
01:48:28  * julianduquequit (Ping timeout: 240 seconds)
02:06:35  * thlorenz_joined
02:10:45  * thlorenz_quit (Ping timeout: 248 seconds)
02:27:04  * eugenewarejoined
02:32:02  * eugenewarequit (Ping timeout: 264 seconds)
02:35:22  * thlorenzquit (Remote host closed the connection)
02:36:30  * timoxleyjoined
02:39:11  * frankblizzardjoined
02:43:40  * frankblizzardquit (Ping timeout: 246 seconds)
02:46:43  * ryan_ramagejoined
02:46:47  * esundahlquit (Remote host closed the connection)
02:48:28  * eugenewarejoined
02:50:38  * esundah__joined
02:52:54  * eugenewarequit (Ping timeout: 264 seconds)
03:27:00  <rescrv>rvagg: f 0
03:27:05  <rescrv>print *this
03:27:19  <rescrv>f 1
03:27:21  <rescrv>print *this
03:27:44  <rescrv>repeat with f i where i <= 4
03:28:27  <rvagg>rescrv: k, hang on, need to get back to it
03:30:09  <rvagg>rescrv: "No symbol "this" in current context."
03:30:33  <rvagg>ah, there is at f 3
03:30:37  <rvagg>sorry, f 2
03:31:03  <rescrv>rvagg: nope; keep going. I misread the backtrace and that's not a member function
03:31:31  <rescrv>can you paste the output of all f 0-3?
03:31:36  <rvagg>yar
03:32:46  <rvagg>done
03:33:25  <rvagg>rescrv: this is 0.14.0 too btw
03:33:28  <rvagg>err, 1.14
03:33:39  <rvagg>google's
03:34:31  <rescrv>rvagg: I saw that. It has at least one backport from hyperleveldb
03:34:39  <rescrv>where's the output pasted?
03:34:48  <rvagg>rescrv: https://github.com/rvagg/node-levelup/issues/171#issuecomment-25862700
03:35:45  <rescrv>"thread apply all bt"
03:37:03  <rvagg>rescrv: https://github.com/rvagg/node-levelup/issues/171#issuecomment-25862814
03:38:39  <rvagg>max's code is restricting work to a single batch at a time, so we're not hitting leveldb with multiple threads simultaneously in this instance
03:38:41  <rescrv>it's interesting that "f 0; print *this" gives nothing for thread 4
03:39:32  <rescrv>is this an easy-to-reproduce bug?
03:39:35  <rvagg>yeah
03:39:41  * frankblizzardjoined
03:39:52  <rescrv>can you recompile leveldb with CXXFLAGS="-O0 -ggdb -rdynamic"?
03:39:56  <rvagg>get node on your system. v0.10.x where x is close near 20
03:40:10  <rvagg>I'll try, it's awkward since we
03:40:13  <rvagg>we're using gyp
03:43:52  * frankblizzardquit (Ping timeout: 246 seconds)
03:44:02  <rvagg>rescrv: ok, I think that's done but I can't see the -ggdb being used from the GYP->Makefile conversion
03:44:22  <rvagg>and, the segfault I'm getting now is in leveldb::DecodeFixed32
03:48:16  <rescrv>rvagg: let's see the backtrace. It may have been there before too, and optimization hid it.
03:48:41  <rvagg>sorry, killed it and tried to force the -ggdb in the makefile
03:48:53  <rvagg>stuck on *** Error in `/usr/local/bin/node': malloc(): smallbin double linked list corrupted: 0x00000000092a53b0 ***
03:49:22  <rvagg>which is coming from v8/node actually
03:50:24  <rvagg>yeah, back at the DecodeFixed32 error
03:50:28  * rvaggwill gist this time
03:50:56  <rvagg>rescrv: https://gist.github.com/rvagg/6879204
03:53:51  <rvagg>I guess that's related since it's looking at rep_ for this, so is it the same issue as before?
03:57:14  <rescrv>that's a more useful backtrace. "f 1" "print *b"
03:57:54  * mikealjoined
03:58:49  <rvagg> $3 = {rep_ = {static npos = <optimised out>,
03:58:49  <rvagg> _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x0}}}
03:59:08  * mikealquit (Client Quit)
03:59:15  <rvagg>looks like a whole lot of empty to me, what do you see there?
03:59:49  <rescrv>rvagg: what I see is that DecodeFixed32 is trying to read from NULL+8
04:00:48  <rescrv>I'm not sure why that is though
04:02:03  <rescrv>"f 2" "print input"
04:02:54  <rvagg>$4 = {data_ = 0x61a2860 "", size_ = 0}
04:03:23  <rescrv>"print rep_"
04:03:34  <rvagg>$5 = {static npos = <optimised out>,
04:03:34  <rvagg> _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x0}}
04:03:43  <rvagg>familiar
04:04:31  <rescrv>so we know that at write_batch.cc:43, rep_ pointed to a string that ended at 0x61a2860
04:04:43  <rescrv>but between there and line 75 it was overwitten
04:05:55  <rvagg>how do you what rep_ started off at in 43?
04:06:36  <rescrv>because input(rep_) will initialize the slice to the value of (rep_.data(), rep.size())
04:06:59  <rescrv>over the course of the function, it's consumed, and at the end, it points to the end of the string
04:07:15  <rescrv>given that it actually looks like a pointer, I'm assuming it's more valid
04:07:31  <rvagg>oh, right, but size_=0 for that slice, does that make sense?
04:08:16  <rescrv>yes. the loop invariant for line 51 is that the slice is not empty. it's consumed on lines 54,57-58,65
04:08:34  <rvagg>ah, of course, it started non-empty and then got consumed
04:09:29  <rescrv>do you know how soon after starting the test the corruption happens? Is it worth trying to debug independent of LevelDB?
04:09:49  <rescrv>Right now, what I see would lead me to treat it as a memory corruption bug.
04:09:57  <rvagg>it takes a while, the db size is 102M at this point
04:10:05  <rvagg>well, a while.. a up to a few minutes
04:10:30  <rescrv>rvagg: OK. Does it always crase on the same batch?
04:10:43  <rvagg>yeah, seems to be the same error, very predictable
04:11:00  <rvagg>would it help if I set up a VM with this all ready to go so you can play with it as-is?
04:11:56  <rescrv>not really. I'm working on other stuff, so I'd likely not get to play with it directly for a few days at least.
04:12:08  <rvagg>ok
04:13:29  <rescrv>did this error creep in with 1.14?
04:13:46  <rescrv>is node statically-linked or does it use dynamic libraries/
04:15:25  <rescrv>what happens if you do "f 4" "print my_batch.rep_"
04:17:45  <rvagg>max (mbalho) says this error can be reproduced with older versions of our stuff and only the most recent release has 1.14, prior to about a week ago we've been on 1.11
04:18:54  <rvagg>so re linking... leveldb is statically linked to our wrapper code but it's loaded with a dlopen at runtime by node
04:19:19  <rvagg>$6 = {static npos = <optimised out>,
04:19:19  <rvagg> _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x0}}
04:20:06  <rescrv>rvagg: are you running this on Linux?
04:20:21  <rvagg>rescrv: yes, but apparently the problem occurs on osx too
04:20:54  <rvagg>rescrv: actually, max's comment about this https://github.com/rvagg/node-levelup/issues/171#issuecomment-25670492 suggests that it's just a memory ballooning until our v0.17 which was the 1.14 upgrade
04:20:58  <rvagg>so perhaps this is all about 1.14
04:22:14  <rescrv>what version of node should I get and install to start repro locally?
04:22:22  <rescrv>10.20?
04:22:55  <rvagg>yeah
04:22:57  <rvagg>0.10.20
04:23:12  <rvagg>clone this: https://github.com/maxogden/level-csv-bench
04:23:17  <rvagg>then run `npm install` inside that repo
04:23:21  <rescrv>the code where this is crashing is very different in hyperleveldb. Is it easy to swap out and do a test with that too for a comparison point?
04:23:52  <rvagg>yes, it should be, let me think about the best way for you to do that
04:25:23  <rvagg>I haven't released a version of your latest for Node along with the one I did the other day for vanilla leveldb because I've had some compile pain with hyperleveldb
04:26:00  <rescrv>compiler problems or just build system integration?
04:26:35  <rvagg>bit of both, mainly because I have to wrangle it to work with gyp and you've done something that needs a flag unset that's set by default
04:26:49  <rescrv>which flag is that?
04:27:20  * rvagglooking
04:28:01  <rvagg>../deps/leveldb/leveldb-hyper/db/db_impl.cc:1378:69: error: �dynamic_cast� not permitted with -fno-rtti
04:28:17  <rvagg>lots of this kind of thing too since we've had from the beginning:
04:28:25  * timoxleyquit (Remote host closed the connection)
04:28:28  <rvagg>../deps/leveldb/leveldb-hyper/util/env_posix.cc:570:30: warning: �fd2� may be used uninitialized in this function [-Wmaybe-uninitialized]
04:28:34  <rvagg>which sets off my compile-warning OCD
04:28:45  <rvagg>../deps/leveldb/leveldb-hyper/db/db_impl.cc:1483:8: warning: unused variable �allow_delay� [-Wunused-variable]
04:28:47  <rvagg>etc
04:29:04  <rvagg>but that dynamic_cast thing is new, it's been mostly warnings till now
04:29:30  <rvagg>../deps/leveldb/leveldb-hyper/db/log_writer.cc:50:7: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
04:29:50  <rescrv>the maybe_unitialized stuff is just a little bit of sloppiness upstream. I've debated cleaning it up to match the flags we use in HyperDex, but decided it'd be better to stay closer to upstream.
04:30:02  <rvagg>people installing hyperleveldb on node see these warnings too fwiw
04:30:20  <rvagg>I don't get any compile warnings from google's leveldb
04:30:47  <rvagg>tho I have these forced: -Wno-unused-but-set-variable, -Wno-sign-compare
04:31:16  <rescrv>those'll silence the warnings you've pointed out. The dynamic cast bit I'll look into.
04:31:59  <rvagg>those two -W flags are set for hyperleveldb compile and don't silence the specific warnings i get
04:32:05  <rvagg>let me gist the whole lot for you FYI
04:32:18  <rescrv>anyway, I have to run for the night. I'll get another chance tomorrow to dig into this issue and see if I can find a fix, both for hyperleveldb and for upstream.
04:32:31  <rvagg>k, cool
04:32:57  <rvagg>rescrv: https://gist.github.com/rvagg/6879495
04:33:48  <rvagg>rescrv: and if you need help replicating for a fix, bother mbalho, it's his data & use-case
04:38:25  * dguttmanjoined
04:39:02  * dguttmanquit (Client Quit)
04:39:15  * jxson_joined
04:40:09  * frankblizzardjoined
04:42:00  * jxsonquit (Ping timeout: 240 seconds)
04:43:46  * jxson_quit (Ping timeout: 245 seconds)
04:44:36  * frankblizzardquit (Ping timeout: 245 seconds)
04:49:19  * jxsonjoined
04:50:52  * ryan_ramagequit (Quit: ryan_ramage)
05:01:47  * eugenewarejoined
05:12:19  * jxsonquit (Remote host closed the connection)
05:12:46  * jxsonjoined
05:13:31  * jxsonquit (Read error: Connection reset by peer)
05:13:44  * jxsonjoined
05:15:59  * timoxleyjoined
05:17:19  * mikealjoined
05:29:06  * eugenewarequit (Remote host closed the connection)
05:40:40  * frankblizzardjoined
05:45:42  * frankblizzardquit (Ping timeout: 264 seconds)
05:46:48  * jxsonquit (Remote host closed the connection)
05:57:24  * esundah__quit (Remote host closed the connection)
06:00:41  * eugenewarejoined
06:09:13  * wolfeidauquit (Remote host closed the connection)
06:09:50  * frankblizzardjoined
06:09:54  * frankblizzardquit (Remote host closed the connection)
06:16:55  * eugenewarequit (Remote host closed the connection)
06:28:25  * esundahljoined
06:36:53  * esundahlquit (Ping timeout: 248 seconds)
06:43:19  * wolfeidaujoined
06:45:44  * wolfeidauquit (Remote host closed the connection)
06:56:36  * timoxleyquit (Remote host closed the connection)
06:57:09  * timoxleyjoined
07:01:46  * timoxleyquit (Ping timeout: 256 seconds)
07:05:12  * eugenewarejoined
07:09:24  * eugenewarequit (Ping timeout: 240 seconds)
07:10:22  * frankblizzardjoined
07:17:38  * frankblizzardquit (Ping timeout: 256 seconds)
07:17:50  * carolynsquit (*.net *.split)
07:17:51  * sveisveiquit (*.net *.split)
07:27:24  * timoxleyjoined
07:28:34  * eugenewarejoined
07:28:54  * esundahljoined
07:33:20  * esundahlquit (Ping timeout: 248 seconds)
07:33:49  * eugenewarequit (Remote host closed the connection)
07:50:13  * frankblizzardjoined
07:50:40  * frankblizzardquit (Remote host closed the connection)
07:53:36  * frankblizzardjoined
08:18:14  <rvagg>we need to soften 3rdEden up more to get him working on level* stuff, he'd be a great contributor
08:54:01  <hij1nx>rvagg: did levelbot die?
08:54:46  <rvagg>yep
08:55:15  * levelbotjoined
08:55:15  <levelbot>[npm] [email protected] <http://npm.im/level-pubsub>: leveldb based pub-sub (@hij1nx)
08:56:11  <hij1nx>levelbot: oh! thats nice :)
08:57:27  <hij1nx>rvagg: im not really sure about this module, i just wanted the absolutel minimum requirement, but i also kind of wrote it in my sleep so i dont know how technically sound it is.
08:57:54  <rvagg>hij1nx: bleh, it doesn't do sharding, it must suck
08:58:24  <hij1nx>rvagg: its big fucking china market, BRO
08:58:38  <hij1nx>data
08:58:53  <hij1nx>i meant to say big data. did you get that? mkay.
08:59:51  * esundahljoined
09:00:36  <rvagg>mm
09:00:55  * dominictarrjoined
09:01:26  <hij1nx>rvagg: hey... sharding jokes... :)
09:04:08  * esundahlquit (Ping timeout: 240 seconds)
09:07:20  * carolynsjoined
09:07:22  * sveisveijoined
09:37:36  <levelbot>[npm] [email protected] <http://npm.im/levelmeup>: Level Me Up Scotty! An intro to Node.js databases via a set of self-guided workshops. (@rvagg)
09:41:34  * jcrugzzquit (Ping timeout: 256 seconds)
10:05:50  * hij1nxchanged nick to rvaag
10:09:29  * jcrugzzjoined
10:13:22  <rvaag>hij1nx: gave it a Captain Cook, looks bog standard, ace yakka mate!
10:13:29  * rvaagchanged nick to hij1nx
10:13:37  <hij1nx>ok, thanks!
10:16:50  * jcrugzzquit (Ping timeout: 240 seconds)
10:18:28  <hij1nx>oh, someone please make a fake rvagg account.
10:25:57  <rvagg>wut? your aussie is crap
10:30:47  * esundahljoined
10:32:45  <hij1nx>rvagg: oh, it was honestly supposed to be deadly accurate! :p
10:34:17  * wolfeidaujoined
10:35:17  * esundahlquit (Ping timeout: 248 seconds)
10:41:41  * dominictarrquit (Quit: dominictarr)
11:31:13  * esundahljoined
11:35:33  * esundahlquit (Ping timeout: 248 seconds)
12:15:19  * eugenewarejoined
12:18:14  * Acconutjoined
12:19:33  * Acconutquit (Client Quit)
12:19:44  * eugenewarequit (Ping timeout: 248 seconds)
12:31:45  * esundahljoined
12:36:06  * esundahlquit (Ping timeout: 256 seconds)
12:42:27  * rudquit (Quit: rud)
12:43:56  * rudjoined
12:43:56  * rudquit (Changing host)
12:43:56  * rudjoined
12:53:16  * rudquit (Quit: rud)
13:02:30  * kenansulaymanquit (Quit: ≈♡≈)
13:20:22  * Acconutjoined
13:20:24  * Acconutquit (Client Quit)
13:58:34  * ryan_ramagejoined
14:00:38  * ednapiranhajoined
14:03:55  * tmcwjoined
14:06:07  * ryan_ramagequit (Ping timeout: 268 seconds)
14:10:30  * jjmalinajoined
14:17:38  * ryan_ramagejoined
14:17:52  * rudjoined
14:17:53  * ryan_ramagequit (Read error: Connection reset by peer)
14:30:46  * jmartinsjoined
14:31:43  * ednapiranhaquit (Remote host closed the connection)
14:31:56  * dguttmanjoined
14:32:36  * Acconutjoined
14:33:04  * ednapiranhajoined
14:35:32  * Acconutquit (Client Quit)
14:43:26  * dominictarrjoined
14:44:33  * fallsemojoined
14:46:42  * eugenewarejoined
14:50:58  * eugenewarequit (Ping timeout: 256 seconds)
14:51:41  * thlorenzjoined
14:56:05  * thlorenzquit (Ping timeout: 248 seconds)
14:59:11  * twilson63joined
15:11:53  * rudquit (Remote host closed the connection)
15:19:29  * mikealquit (Quit: Leaving.)
15:33:58  * esundahljoined
15:34:51  * mikealjoined
15:38:31  * ryan_ramagejoined
15:39:08  * jjmalinaquit (Ping timeout: 256 seconds)
15:41:04  * frankblizzardquit (Remote host closed the connection)
15:46:46  * jjmalinajoined
15:57:15  * julianduquejoined
15:58:19  * julianduquequit (Client Quit)
16:13:52  * mikealquit (Quit: Leaving.)
16:15:26  * dguttmanquit (Quit: dguttman)
16:20:25  * esundahlquit (Remote host closed the connection)
16:20:51  * esundahljoined
16:22:22  * esundahlquit (Read error: Connection reset by peer)
16:22:41  * esundahljoined
16:45:03  * julianduquejoined
16:45:39  * julianduquequit (Client Quit)
17:01:39  * rudjoined
17:01:40  * rudquit (Changing host)
17:01:40  * rudjoined
17:02:23  * dguttmanjoined
17:18:36  * eugenewarejoined
17:22:28  * levelbotquit (Remote host closed the connection)
17:22:47  * levelbotjoined
17:22:48  * eugenewarequit (Ping timeout: 240 seconds)
17:31:52  * kenansulaymanjoined
17:35:30  * dominictarrquit (Quit: dominictarr)
17:45:10  * thlorenzjoined
17:55:34  * jcrugzzjoined
17:58:19  * brycebaril1joined
18:00:00  * brycebarilquit (Ping timeout: 245 seconds)
18:00:04  * brycebaril1changed nick to brycebaril
18:02:12  * mikealjoined
18:03:08  <kenansulayman>brianloveswords
18:03:11  <kenansulayman>wups
18:03:12  <kenansulayman>brycebaril
18:04:34  <kenansulayman>really awesome @ level-version — just to let you know; we're now deploying an internal status page (like https://status.github.com) based on the irc-thing approach combination of sublevel & level-version
18:05:19  <kenansulayman>Reaching from precisions of 86400 ticks to 1440 per day
18:06:53  * jxsonjoined
18:09:45  <brycebaril>kenansulayman: nice!
18:09:59  * ramitosjoined
18:10:35  <kenansulayman>brycebaril and if you're interested: https://github.com/KenanSulayman/int3rgr4mm
18:10:55  <kenansulayman>didn't have much time to improve due to work (index still off) but it runs :)
18:10:59  <brycebaril>cool, I'll take a look :)
18:21:42  * thlorenzquit (Remote host closed the connection)
18:23:07  * levelbotquit (Remote host closed the connection)
18:23:21  * levelbotjoined
18:28:54  * thlorenzjoined
18:39:02  * thlorenzquit (Remote host closed the connection)
18:51:28  * thlorenzjoined
19:21:28  * thlorenzquit (Remote host closed the connection)
19:28:15  * thlorenzjoined
19:47:13  <kenansulayman>How cool is this? https://sly.mn/heartbeat/ :D
19:48:16  * ramitosquit (Ping timeout: 248 seconds)
19:50:25  * esundahl_joined
19:50:26  * esundahlquit (Read error: Connection reset by peer)
19:59:30  * Acconutjoined
20:13:12  * thlorenzquit (Remote host closed the connection)
20:25:07  * ramitosjoined
20:25:20  * thlorenzjoined
20:31:09  * Acconutquit (Quit: Acconut)
20:38:29  * Acconutjoined
20:38:29  * Acconutquit (Client Quit)
20:54:29  * twilson63quit (Remote host closed the connection)
21:01:34  * jmartinsquit (Quit: Konversation terminated!)
21:04:54  * mmckeggquit (Ping timeout: 264 seconds)
21:07:14  * mmckeggjoined
21:13:05  * esundahl_quit (Remote host closed the connection)
21:13:32  * esundahl_joined
21:17:10  * esundah__joined
21:18:00  * esundahl_quit (Ping timeout: 252 seconds)
21:24:17  * timoxleyquit (Remote host closed the connection)
21:24:50  * timoxleyjoined
21:29:08  * timoxleyquit (Ping timeout: 240 seconds)
21:30:21  * timoxleyjoined
22:05:29  * esundah__quit (Remote host closed the connection)
22:05:38  * esundahljoined
22:07:30  * eugenewarejoined
22:15:49  * eugenewarequit (Read error: Connection reset by peer)
22:25:14  <levelbot>[npm] [email protected] <http://npm.im/levelmeup>: Level Me Up Scotty! An intro to Node.js databases via a set of self-guided workshops. (@rvagg)
22:34:11  * mikealquit (Quit: Leaving.)
22:44:30  * thlorenzquit (Remote host closed the connection)
22:49:56  * mikealjoined
22:56:45  * fallsemoquit (Quit: Leaving.)
22:57:43  * tmcwquit (Remote host closed the connection)
22:58:15  * tmcwjoined
23:01:00  * dominictarrjoined
23:02:52  * tmcwquit (Ping timeout: 264 seconds)
23:08:40  * ryan_ramagequit (Ping timeout: 246 seconds)
23:18:01  * dominictarrquit (Quit: dominictarr)
23:20:30  * jjmalinaquit (Quit: Leaving.)
23:42:52  * ednapiranhaquit (Remote host closed the connection)
23:55:03  * esundahlquit (Remote host closed the connection)
23:55:29  * esundahljoined