logs archiveBotHelp.net / Freenode / #2f30 / 2015 / August / 11 / 6
stateless
our first server was logic.2f30.org
macppc running openbsd
:>
it was hosted at \cipher's flat
it died a few years later
biniar
and now's it's just racks and racks across the lands
k0ga
(Action) fighting with a really nasty bug in the symbol table X(
stateless
k0ga, you think you are in deep sh*t but I've been fighting with a race condition for 2 weeks
it was triggering once in 10 thousand test runs
about 4-5 hours to trigger
:P
I solved it today
Evil_Bob
hah congrats :)
biniar
with a hammer?
atmc
until the next trigger
:P
stateless
now go back debugging userspace
:P
k0ga
atmc: very good xD
Evil_Bob
stateless: probably a silly question but did it hang the machine?
stateless
Evil_Bob, yes
biniar
(Action) hides behind browser developer tools
Evil_Bob
heh
stateless
Evil_Bob, no oops just hang :(
dump_stack() is your friend
the next best thing after printk
:P
k0ga, what's the longest bug you've debugged?
mine was about 3 months
\cipher
WHO PINGED ME???
lol
hi
stateless
sup \cipher
\cipher
sup stateless
watching x-files
stateless
:P
\cipher
heh
stateless
i finished true detective yesterday
biniar
Scully is so hawt
stateless
awesome
k0ga
stateless: mine was a 5 month bug
\cipher
haven't seen true detective yet
k0ga
we didn't have a environment were testing
Evil_Bob
stateless: is it a good series?
stateless
Evil_Bob, amazing
k0ga
all the code was done without testing
stateless
k0ga, same for me
the customer was testing
Evil_Bob
cool ill check it out then :)
k0ga
yeah
it was a rpc server, and the error was a segfault, but it was randomly in different services
there was no control version
\cipher
stateless | the customer was testing <--- been there, done that :p
k0ga
I had to do postmorten analysis
stateless
k0ga, for us it was a speaker blowing up every some thousands hours of playing/stopping mp3s because a voltage regulator was overshooting when you powered on/off the DACs
it was a race condition in the hardware
the fix was to not power it down
...
k0ga
and at the end, we could see that was a typical write plus one
that destroyed the malloc block list
stateless
ah
\cipher, haha yeah
k0ga, on openbsd you can do some cool sh*t to track down plus ones
malloc.conf(5) has details
k0ga
stateless: and in linux
stateless
you can enable some very very paranoid checks
im not talking about valgrind crap
k0ga
me neither
stateless
ok
well musl malloc doesn't have those knobs
http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/malloc.conf.5?query=malloc.conf
in the default configuration, glibc malloc forgives a lot
every time I test something that has not run on openbsd before, crashes because of heap corruption
tox being one exapmle
example*
k0ga
stateless: glibc mcheck
Evil_Bob
hmm i need to polish my knobs on openbsd
k0ga
MALLOC_CHECK
stateless
yes
just saying the default behaviour is very lax on this stuff
k0ga
it is the typical tradeoff: speed or security?
stateless
probably
but a memory allocation should be judged on how much fragmentation it causes
it doesn't matter if it is ultra fast
allocator*
you can make a simple allocator that increments a break point
and yes it is the fastest at allocating
but :P
k0ga
stateless: depend of the application
stateless
a general purpose allocator should always minimize fragmentation
k0ga
indeed
stateless
but yes it depends on the allocation pattern/usage too
biniar
s/depend of/depending on/
k0ga
at the end, if you want something faster you have to build your own allocator
(over malloc I mean)
stateless
you saved it :P
k0ga
stateless: I thought it was obvious :P
atmc
so russian today
ive spoken russian
i've written russian
« prev 1 2 3 4 5 6 7 8 next »