Hey Albert,

Albert Santoni wrote:
> Hi RJ,
>
> (CCing mixxx-devel in case anyone wants to help.)
>
> Played around with the looping branch a bit and hit some problems:
>
> 1) I managed to lock up the Reader by clicking a waveform, and dragging
> it back to the start to rewind the track. There were no loops set. This
> was using vinyl emulation as well. 
>
>   
Were you in 'stop' end of track mode? Did you check that it didn't just 
stop the player? I tried to repro this and what happend to me was that 
every now and then the track would stop at the start. The reason it was 
only every couple times was because there's a bug that causes end of 
track mode to sometimes not trigger. With EOT mode in STOP, if the start 
of the track is hit, our 1.7 behavior was to stop the player. Can you 
repro and verify that it is a reader/player hang and not just the player 
stopping? 

> 2) I deadlocked Mixxx by changing from vinyl emu to PITS in the
> preferences, and clicking OK. I didn't get a backtrace from this one.
>
>   
This has happened to me too a little while back, but hasn't happened 
recently. I'm not really sure why it happens yet.
> 3) I did manage to deadlock Mixxx another time though, just randomly. My
> gut feeling is that #2 is really the same deadlock as this one.
>   
Yea this is the deadlock I mentioned in the developer meeting. This is 
within EBSDummy, which was turned on for development purposes in place 
of EBSST. EBSDummy can actually infinite loop because it doesn't check 
for EOFs from RAMAN. I'm a little surprised this happened randomly and 
not specifically at the end of a track (when an EOF would happen).

I just committed some fixes to the looping stuff. I restored the EBSST 
and I fixed a few things here and there with looping. It should be nicer 
now. One thing I notice that is wrong is that end-of-track modes don't 
work reliably anymore. We should investigate that. I couldn't get the #2 
deadlock to happen anymore, but I found that sometimes EBSL asserts if 
you switch to it while playing in EBSST. The assert revealed that (for a 
long time) when we switched scalers they did not get updated rate 
information until the engine internal rate changes. Oops. Anyway, added 
a fix for that too.

Thanks,
RJ

> Backtrace is:
>
> Program received signal SIGTSTP, Stopped (user).
> [Switching to Thread 0xb62316c0 (LWP 22259)]
> 0xb80b342e in __kernel_vsyscall ()
> (gdb) bt
> #0  0xb80b342e in __kernel_vsyscall ()
> #1  0xb68d4167 in poll () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb6502c52 in ?? () from /usr/lib/libglib-2.0.so.0
> #3  0xb6502f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
> #4  0xb6cf5958 in QEventDispatcherGlib::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb70cdde5 in ?? () from /usr/share/qt4/lib/libQtGui.so.4
> #6  0xb6cc877d in QEventLoop::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #7  0xb6cc89fa in QEventLoop::exec () from /usr/share/qt4/lib/libQtCore.so.4
> #8  0xb6ccab71 in QCoreApplication::exec () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #9  0xb7031717 in QApplication::exec () from /usr/share/qt4/lib/libQtGui.so.4
> #10 0x080f3844 in main (argc=1, argv=0xbfab5054) at src/main.cpp:307
> (gdb) thread apply all bt
>
> Thread 40 (Thread 0xa7ffbb90 (LWP 22316)):
> #0  0x080eb910 in ReadAheadManager::getNextSamples (this=0x99864a0, dRate=1, 
> buffer=0xb2f1cb48, requested_samples=304)
>     at src/engine/readaheadmanager.cpp:68
> #1  0x080d284a in EngineBufferScaleDummy::scale (this=0x996d948, playpos=0, 
> buf_size=4096, pBase=0x0, iBaseLength=0)
>     at src/engine/enginebufferscaledummy.cpp:62
> #2  0x080cd5ff in EngineBuffer::process (this=0x9986e80, pOut=0xb13b9008, 
> iBufferSize=4096) at src/engine/enginebuffer.cpp:461
> #3  0x080da041 in EngineMaster::process (this=0xb26074e0, pOut=0x0, 
> iBufferSize=4096) at src/engine/enginemaster.cpp:177
> #4  0x08183832 in SoundManager::requestBuffer (this=0xb2615720, srcs=
>         {{p = {static shared_null = {ref = {_q_value = 39978}, alloc = 0, 
> begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xa7ffb0d0}, d = 
> 0xa7ffb0d0}}, iFramesPerBuffer=2048) at src/soundmanager.cpp:498
> #5  0x0818af54 in SoundDevicePortAudio::callbackProcess (this=0xb2636498, 
> framesPerBuffer=2048, output=0xac5fbf98, in=0x0, devIndex=0)
>     at src/sounddeviceportaudio.cpp:325
> #6  0x0818b0ea in paV19Callback (inputBuffer=0x0, outputBuffer=0xac5fbf98, 
> framesPerBuffer=2048, timeInfo=0xa7ffb368, statusFlags=0, 
>     _callbackStuff=0xb26364d8) at src/sounddeviceportaudio.cpp:384
> #7  0xb6a9f53f in ?? () from /usr/lib/libportaudio.so.2
> #8  0xb6aa05fd in ?? () from /usr/lib/libportaudio.so.2
> #9  0xb6aaefe8 in ?? () from /usr/lib/libportaudio.so.2
> #10 0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #11 0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 39 (Thread 0xa87fcb90 (LWP 22315)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x081c6a97 in VinylControlXwax::run (this=0xad091130) at 
> src/vinylcontrolxwax.cpp:152
> #4  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #6  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 38 (Thread 0xabcffb90 (LWP 22314)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x081c6a97 in VinylControlXwax::run (this=0xa3110e0) at 
> src/vinylcontrolxwax.cpp:152
> #4  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #6  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 13 (Thread 0xaacfdb90 (LWP 22283)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb68d4167 in poll () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb6502c52 in ?? () from /usr/lib/libglib-2.0.so.0
> #3  0xb6502f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
> ---Type <return> to continue, or q <return> to quit---
> #4  0xb6cf5958 in QEventDispatcherGlib::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6cc877d in QEventLoop::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #6  0xb6cc89fa in QEventLoop::exec () from /usr/share/qt4/lib/libQtCore.so.4
> #7  0xb6bd3159 in QThread::exec () from /usr/share/qt4/lib/libQtCore.so.4
> #8  0x081da920 in MidiScriptEngine::run (this=0x99e5990) at 
> src/script/midiscriptengine.cpp:118
> #9  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #10 0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #11 0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 12 (Thread 0xab4feb90 (LWP 22282)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb68d4167 in poll () from /lib/tls/i686/cmov/libc.so.6
> #2  0x081dd760 in MidiObjectALSASeq::run (this=0x99f7898) at 
> src/midiobjectalsaseq.cpp:318
> #3  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #4  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #5  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 10 (Thread 0xae0bdb90 (LWP 22280)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x080f0796 in AnalyserQueue::dequeueNextBlocking (this=0x9e470a8) at 
> src/analyserqueue.cpp:32
> #4  0x080f08ed in AnalyserQueue::run (this=0x9e470a8) at 
> src/analyserqueue.cpp:99
> #5  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #6  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #7  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 9 (Thread 0xb0606b90 (LWP 22277)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb646e63e in mb_thread_func (arg=0x0) at messagebuffer.c:70
> #3  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #4  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 4 (Thread 0xb115fb90 (LWP 22264)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x080e14f3 in EngineSideChain::run (this=0xb26141c0) at 
> src/engine/enginesidechain.cpp:151
> #4  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #6  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 3 (Thread 0xb2004b90 (LWP 22263)):
> ---Type <return> to continue, or q <return> to quit---
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x080ecb1e in CachingReader::run (this=0x9981218) at 
> src/cachingreader.cpp:334
> #4  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #6  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 2 (Thread 0xb2f18b90 (LWP 22262)):
> #0  0xb80b3430 in __kernel_vsyscall ()
> #1  0xb6a89075 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib/tls/i686/cmov/libpthread.so.0
> #2  0xb6bd73a6 in QWaitCondition::wait () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #3  0x080ecb1e in CachingReader::run (this=0x9998af0) at 
> src/cachingreader.cpp:334
> #4  0xb6bd6872 in ?? () from /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb6a8550f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #6  0xb68dea0e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 1 (Thread 0xb62316c0 (LWP 22259)):
> #0  0xb80b342e in __kernel_vsyscall ()
> #1  0xb68d4167 in poll () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb6502c52 in ?? () from /usr/lib/libglib-2.0.so.0
> #3  0xb6502f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
> #4  0xb6cf5958 in QEventDispatcherGlib::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #5  0xb70cdde5 in ?? () from /usr/share/qt4/lib/libQtGui.so.4
> #6  0xb6cc877d in QEventLoop::processEvents () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #7  0xb6cc89fa in QEventLoop::exec () from /usr/share/qt4/lib/libQtCore.so.4
> #8  0xb6ccab71 in QCoreApplication::exec () from 
> /usr/share/qt4/lib/libQtCore.so.4
> #9  0xb7031717 in QApplication::exec () from /usr/share/qt4/lib/libQtGui.so.4
> #10 0x080f3844 in main (argc=1, argv=0xbfab5054) at src/main.cpp:307
> (gdb) 
>
> Other than that, looking pretty good!
>
> Thanks,
> Albert
>
>   


------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to