On 06/05/2010 07:19 PM, Niels Mayer wrote:
Potentially, multithread access to shared memory
data-structures seems
to be the cause of hard-to-reproduce error messages coming out of
Qt-based apps (see also
https://bugs.kde.org/show_bug.cgi?id=240391 ):
gnulem-109-~/Documents> qtractor
*** glibc detected *** qtractor: corrupted double-linked list:
0x00000000012ab6a0 ***
^C
this is most likely one hideous memory corruption bug, runaway memwrite,
double or even triple memleak. whatever.
do not (ever) rule out my sloppy coding habits.
You may never see these errors until you run these
apps on a fast
quad-core machine. For Qtractor -- my hunch of the day -- check for
simultaneous access to the "inputs" and "outputs" configurations;
after loading several projects or activating "track->inputs"
"track->outputs" or the "outputs" and "inputs" buttons
in the mixer
(all of which pop up the "Connections" window)... do this a few times
and eventually your midi devices disappear in the gui. You have to go
to the "Connections" window's option-menu and select "(All)" or
reselect the current option in order to refresh the display.
Something's getting "clobbered" in the midi or audio connections
listings each time you load a new .qtr or .qtt file... and this is an
error that recurs more quickly on a fast quad-core than a slower
dual-core.
i do have a quad, where is my primary devel host, intel q8200 though,
maybe not the fastest, but still find some of those reported crashes
very hard to reproduce.
... makes me think i was right on track with all my
comments about
clojure, garbage-collection, and software transactional management :-)
... i think i'll need a supercomputer to run "valgrind --tool=helgrind
qtractor" ...
indeed. valgrind may help but it may get you also bored to death even on
the fastest of the machines, unless you can reproduce the crashes in a
finite, consistent and determined number of steps. i've been there i've
done that and still chose to step over and run forward :)
cheers
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org