skin-related DRI crash on shutdown

Bug #338353 reported by Nick
2
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
Nick
1.7
Fix Released
Medium
RJ Skerry-Ryan

Bug Description

If the "Collusion (1280-WS)" skin loads then on quitting mixxx I get the following crash. The crash is only semi-reliable: sometimes it happens, sometimes it doesn't. In my entirely unscientific estimation, switching through a lot of different skins seems to trigger it more often but I can't be sure.

(gdb) r
Starting program: /home/kousu/mixxx/svn/mixxx
[Thread debugging using libthread_db enabled]
[New Thread 0xb64dc6c0 (LWP 20005)]
Debug: [Main]: Setting up plugin paths...
Debug: [Main]: ...done.
Debug: [Main]: Mixxx 1.6.2 "(svn 2715:2716M; built on: Mar 5 2009 @ 12:56:43; flags: hifieq ladspa vinylcontrol midiscript optimize=1) " is starting...
[New Thread 0xb3df6b90 (LWP 20006)]
[New Thread 0xb2fa4b90 (LWP 20007)]
Debug: [Main]: ControlObject::getControl returning NULL for ( "[Mixer Profile]" , "LoEQFrequency" )
[New Thread 0xb1fc5b90 (LWP 20008)]
Debug: [Main]: SampleRate 48000
Debug: [Main]: Latency 64
[New Thread 0xb13e9b90 (LWP 20010)]
[Thread 0xb13e9b90 (LWP 20010) exited]
[New Thread 0xb13e9b90 (LWP 20011)]
[Thread 0xb13e9b90 (LWP 20011) exited]
[New Thread 0xb13e9b90 (LWP 20012)]
[Thread 0xb13e9b90 (LWP 20012) exited]
[New Thread 0xb13e9b90 (LWP 20013)]
[Thread 0xb13e9b90 (LWP 20013) exited]
Debug: [Main]: createWaveformViewer()
Debug: [Main]: WaveformViewerFactory :: Creating new visual waveform
Debug: [Main]: WaveformViewerFactory :: Making new GL context.
Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
Debug: [Main]: Got bgColor QColor(ARGB 1, 0.0980392, 0.0980392, 0.0980392)
Debug: [Main]: Got signalColor QColor(ARGB 1, 0.803922, 0, 0.803922)
Debug: [Main]: createWaveformViewer()
Debug: [Main]: WaveformViewerFactory :: Creating new visual waveform
Debug: [Main]: WaveformViewerFactory :: Sharing existing GL context.
Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
Debug: [Main]: Got bgColor QColor(ARGB 1, 0.0980392, 0.0980392, 0.0980392)
Debug: [Main]: Got signalColor QColor(ARGB 1, 0.803922, 0, 0.803922)
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/."
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/.."
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/compressor.xml"
Debug: [Main]: LADSPA: Plugin "Compress" not found (required by preset "Compressor" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/delay5s.xml"
Debug: [Main]: LADSPA: Plugin "delay_5s" not found (required by preset "Delay5s" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/djflanger.xml"
Debug: [Main]: LADSPA: Plugin "djFlanger" not found (required by preset "DJFlanger" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/karaoke.xml"
Debug: [Main]: LADSPA: Plugin "karaoke" not found (required by preset "Karaoke" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/null.xml"
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/plate.xml"
Debug: [Main]: LADSPA: Plugin "Plate2x2" not found (required by preset "PlateReverb" )
Debug: [Main]: Setting up LADSPA EnableEffect "0"
Debug: [Main]: Key string: "EnableEffect0"
Debug: [Main]: Setting up LADSPA EnableEffect "1"
Debug: [Main]: Key string: "EnableEffect1"
Debug: [Main]: Setting up LADSPA EnableEffect "2"
Debug: [Main]: Key string: "EnableEffect2"
[New Thread 0xb13e9b90 (LWP 20016)]
Debug: [Main]: Loading playlists and library tracks from XML...
Debug: [Main]: Track::readXML "/home/kousu/.mixxx/mixxxtrack.xml"
Debug: [Main]: Promo track directory does not exist: "res/promo"
Debug: [Main]: Constructed LibraryScanner!!!
Debug: [Main]: No playlists, returning
Debug: [Main]: FIXME: Need to tell the m_pPlaylistListModel to refresh in src/track.cpp on line: 1363
Debug: [Main]: Starting Library Scanner...
[New Thread 0xabacab90 (LWP 20017)]
Debug: [Main]: Trying to add 0 songs to the library playlist
Debug: [Main]: Adjusting column widths: tracktable width = 640 1% of that is: 6.4 FIXME: this should be done when initalizing the skin.
Debug: [Main]: Shrinking Title/Comment for small screen...
Debug: [Main]: FIXME: repaintEverything switches table model and shouldn't do that when viewing the playlist model in src/wtracktableview.cpp: 227
[New Thread 0xab2c9b90 (LWP 20018)]
Debug: [MidiScriptEngine 1]: MidiScriptEngine::run() m_pEngine->parent() is QObject(0x0)
Debug: [MidiScriptEngine 1]: MidiScriptEngine::run() m_pEngine->thread() is MidiScriptEngine(0x9ff5b58, name = "MidiScriptEngine 1")
[New Thread 0xaaac8b90 (LWP 20019)]
Debug: [MidiObject 1]: MidiMapping: Loading MIDI XML from "/home/kousu/.mixxx/MixxxMIDIBindings.xml"
Debug: [MidiObject 1]: Could not open xml file: "/home/kousu/.mixxx/MixxxMIDIBindings.xml"
Debug: [Main]: selectedAPI is: "ALSA"
Debug: [Main]: loadSettings: 1 0 "SlowFade"
Debug: [Main]: slotApply crossfader: 1 "SlowFade"
Debug: [Main]: BpmSchemes::readXML "/home/kousu/.mixxx/mixxxbpmscheme.xml"
Debug: [Main]: getting midi device list, size 0 and: ""
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/."
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/.."
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/compressor.xml"
Debug: [Main]: LADSPA: Plugin "Compress" not found (required by preset "Compressor" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/delay5s.xml"
Debug: [Main]: LADSPA: Plugin "delay_5s" not found (required by preset "Delay5s" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/djflanger.xml"
Debug: [Main]: LADSPA: Plugin "djFlanger" not found (required by preset "DJFlanger" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/karaoke.xml"
Debug: [Main]: LADSPA: Plugin "karaoke" not found (required by preset "Karaoke" )
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/null.xml"
Debug: [Main]: LADSPA: file "res/skins/outlineNetbook/../../ladspa_presets/plate.xml"
Debug: [Main]: LADSPA: Plugin "Plate2x2" not found (required by preset "PlateReverb" )
Debug: [Main]: Setting up LADSPA EnableEffect "0"
Debug: [Main]: Key string: "EnableEffect0"
Debug: [Main]: Setting up LADSPA EnableEffect "1"
Debug: [Main]: Key string: "EnableEffect1"
Debug: [Main]: Setting up LADSPA EnableEffect "2"
Debug: [Main]: Key string: "EnableEffect2"
Debug: [Main]: SoundManager::setupDevices()
Debug: [Main]: Building timecode lookup tables...
Allocating 2097152 slots (8192Kb) for 20 bit timecode (Serato 2nd Ed., side A)
[New Thread 0xa9a33b90 (LWP 20020)]
Debug: [Main]: Building timecode lookup tables...
Allocating 2097152 slots (8192Kb) for 20 bit timecode (Serato 2nd Ed., side A)
[New Thread 0xa8a31b90 (LWP 20021)]
Debug: [Main]: SoundDevicePortAudio::open() "2, HDA Intel: Conexant Digital (hw:0,1)"
Debug: [Main]: m_dSampleRate 48000
Debug: [Main]: iLatencyMSec: 64
Debug: [Main]: output channels: 2 | input channels: 0
Debug: [Main]: iLatencySamples: 6148
Debug: [Main]: iLatencyMSec: 64
Debug: [Main]: Opening stream with id 2
Debug: [Main]: Opened PortAudio stream successfully... starting
Debug: [Main]: Dynamically loaded PortAudio library!
[New Thread 0xa8230b90 (LWP 20022)]
Debug: [Main]: PortAudio: Started stream successfully
Debug: [Main]: iNumDevicesOpenedForOutput: 1
Debug: [Main]: iNumDevicesOpenedForInput: 0
Debug: [Main]: Displaying mixxx
Debug: [Main]: Running Mixxx
Debug: [Main]: keyboard press: "Ctrl+ៀ⋜ 
Debug: [Main]: No match for ConfigObject: "Ctrl+"
[New Thread 0xa6fc6b90 (LWP 20027)]
[New Thread 0xa67c5b90 (LWP 20028)]
Debug: [LibraryScanner 1]: Scan finished cleanly
[Thread 0xabacab90 (LWP 20017) exited]
Debug: [Main]: FIXME: repaintEverything switches table model and shouldn't do that when viewing the playlist model in src/wtracktableview.cpp: 227
[Thread 0xa6fc6b90 (LWP 20027) exited]
[Thread 0xa67c5b90 (LWP 20028) exited]
Debug: [Main]: keyboard press: "Ctrl+ៀ⋜ 
Debug: [Main]: No match for ConfigObject: "Ctrl+"
Debug: [Main]: DlgPrefVinyl::slotUpdate()
Debug: [Main]: Now in Rebootmixxview...
Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
Debug: [Main]: Got bgColor QColor(ARGB 1, 0.101961, 0.101961, 0.101961)
Debug: [Main]: Got signalColor QColor(ARGB 1, 0.819608, 0.819608, 0.819608)
Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
Debug: [Main]: Got bgColor QColor(ARGB 1, 0.101961, 0.101961, 0.101961)
Debug: [Main]: Got signalColor QColor(ARGB 1, 0.819608, 0.819608, 0.819608)
Debug: [Main]: rebootgui DONE
Debug: [Main]: DlgPrefVinyl::Apply
Debug: [Main]: in VinylGainSlotApply() with gain: 1
Debug: [Main]: DlgPrefVinyl::slotUpdate()
Debug: [Main]: DlgPrefSound::Apply
Debug: [Main]: Setting ChannelMaster in config to: "0"
Debug: [Main]: request msec 64
[Thread 0xa8230b90 (LWP 20022) exited]
[Thread 0xa9a33b90 (LWP 20020) exited]
[Thread 0xa8a31b90 (LWP 20021) exited]
Debug: [Main]: SoundManager::setupDevices()
Debug: [Main]: Building timecode lookup tables...
Allocating 2097152 slots (8192Kb) for 20 bit timecode (Serato 2nd Ed., side A)
[New Thread 0xa8a31b90 (LWP 20035)]
Debug: [Main]: Building timecode lookup tables...
Allocating 2097152 slots (8192Kb) for 20 bit timecode (Serato 2nd Ed., side A)
[New Thread 0xa9a33b90 (LWP 20036)]
Debug: [Main]: SoundDevicePortAudio::open() "2, HDA Intel: Conexant Digital (hw:0,1)"
Debug: [Main]: m_dSampleRate 48000
Debug: [Main]: iLatencyMSec: 64
Debug: [Main]: output channels: 2 | input channels: 0
Debug: [Main]: iLatencySamples: 6148
Debug: [Main]: iLatencyMSec: 64
Debug: [Main]: Opening stream with id 2
Debug: [Main]: Opened PortAudio stream successfully... starting
Debug: [Main]: Dynamically loaded PortAudio library!
[New Thread 0xa8230b90 (LWP 20037)]
Debug: [Main]: PortAudio: Started stream successfully
Debug: [Main]: iNumDevicesOpenedForOutput: 1
Debug: [Main]: iNumDevicesOpenedForInput: 0
Debug: [Main]: slotApply crossfader: 1 "SlowFade"
Debug: [Main]: keyboard press: "Ctrl+ៀ⋜ 
Debug: [Main]: No match for ConfigObject: "Ctrl+"
Debug: [Main]: Destroying MixxxApp
Debug: [Main]: save config, 0
Debug: [Main]: Write track xml, 3
Debug: [Main]: close soundmanager 273
[Thread 0xa8230b90 (LWP 20037) exited]
[Thread 0xa8a31b90 (LWP 20035) exited]
[Thread 0xa9a33b90 (LWP 20036) exited]
Debug: [Main]: soundmanager->close() done
Debug: [Main]: delete soundmanager, 300
Debug: [Main]: delete master, 312
Debug: [Main]: in ~EngineMaster()
Debug: [Main]: delete channel1, 312
Debug: [Main]: delete channel2, 313
Debug: [Main]: delete buffer1, 313
Debug: [Main]: delete buffer2, 315
Debug: [Main]: delete midi, 315
[Thread 0xb2fa4b90 (LWP 20007) exited]
[Thread 0xb3df6b90 (LWP 20006) exited]
[Thread 0xb1fc5b90 (LWP 20008) exited]
Debug: [Main]: MidiObject: Deleting MidiMapping...
[Thread 0xaaac8b90 (LWP 20019) exited]
Debug: [Main]: MidiObject: Deleting MIDI script engine...
Debug: [Main]: delete view, 586
[Thread 0xab2c9b90 (LWP 20018) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb64dc6c0 (LWP 20005)]
0xb082deb1 in mmFreeMem () from /usr/lib/dri/i915_dri.so
(gdb) bt
#0 0xb082deb1 in mmFreeMem () from /usr/lib/dri/i915_dri.so
#1 0xb07a83bf in ?? () from /usr/lib/dri/i915_dri.so
#2 0xb07a9094 in ?? () from /usr/lib/dri/i915_dri.so
#3 0xb07a7136 in dri_bo_unreference () from /usr/lib/dri/i915_dri.so
#4 0xb07afdc0 in intel_region_release () from /usr/lib/dri/i915_dri.so
#5 0xb07b1775 in intel_miptree_release () from /usr/lib/dri/i915_dri.so
#6 0xb07b57ae in ?? () from /usr/lib/dri/i915_dri.so
#7 0xb084968a in _mesa_delete_texture_image () from /usr/lib/dri/i915_dri.so
#8 0xb08501f5 in _mesa_delete_texture_object () from /usr/lib/dri/i915_dri.so
#9 0xb07b5838 in ?? () from /usr/lib/dri/i915_dri.so
#10 0xb07edbd9 in ?? () from /usr/lib/dri/i915_dri.so
#11 0xb0811e7e in _mesa_HashDeleteAll () from /usr/lib/dri/i915_dri.so
#12 0xb07ee3fd in ?? () from /usr/lib/dri/i915_dri.so
#13 0xb07ef2bf in _mesa_free_context_data () from /usr/lib/dri/i915_dri.so
#14 0xb07c9068 in intelDestroyContext () from /usr/lib/dri/i915_dri.so
#15 0xb07a3257 in ?? () from /usr/lib/dri/i915_dri.so
#16 0xb7ee39fc in ?? () from /usr/lib/libGL.so.1
#17 0xb7ebfb95 in ?? () from /usr/lib/libGL.so.1
#18 0xb6e23b14 in QGLContext::reset () from /usr/share/qt4/lib/libQtOpenGL.so.4
#19 0xb6df8eac in QGLContext::~QGLContext () from /usr/share/qt4/lib/libQtOpenGL.so.4
#20 0xb6df27f5 in QGLWidget::~QGLWidget () from /usr/share/qt4/lib/libQtOpenGL.so.4
#21 0x0816fbd1 in ~WGLWaveformViewer (this=0xa5077a8) at src/widget/wglwaveformviewer.cpp:53
#22 0xb6fb00ff in QObjectPrivate::deleteChildren () from /usr/share/qt4/lib/libQtCore.so.4
#23 0xb721c928 in QWidget::~QWidget () from /usr/share/qt4/lib/libQtGui.so.4
#24 0x08121d0c in ~MixxxView (this=0xb340d5c0) at src/mixxxview.cpp:119
#25 0x0810d083 in ~MixxxApp (this=0x9f58500) at src/mixxx.cpp:393
#26 0x080f19a9 in main (argc=1, argv=0xbfca0284) at src/main.cpp:308

Related branches

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Please see if this is an issue in the latest 1.6.2 branch, since rryan fixed the slow skin-changing issue which may impact this as well.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 338353] Re: skin-related DRI crash

Adam and I noticed something weird a while ago which is that the
Collusion skin has the "BPM" display markers _on top of_ the waveform
view. Consequently, the BPM displays don't show up on some platforms,
and it wouldn't surprise me if X11 and OpenGL's DRI are fighting for
that screen space on Linux.

Try commenting out the BPM displays in the skin.xml or moving them off
the waveform and see if anything changes.

Albert

On Sun, Mar 22, 2009 at 4:54 AM, Pegasus <email address hidden> wrote:
> Please see if this is an issue in the latest 1.6.2 branch, since rryan
> fixed the slow skin-changing issue which may impact this as well.
>
> --
> skin-related DRI crash
> https://bugs.launchpad.net/bugs/338353
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Nick (kousu)
Changed in mixxx:
assignee: nobody → kousu
importance: Undecided → Medium
milestone: none → 1.6.2
status: New → Confirmed
Changed in mixxx:
milestone: 1.7.0-moving → none
RJ Skerry-Ryan (rryan)
summary: - skin-related DRI crash
+ skin-related DRI crash on shutdown
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I found a fix that works for me -- it turns out that if I make the WaveformViewerFactory construct our QGLWidgets such that they do not share their GL context between each other, then this makes the crashes go away. Since we're seeing this crash inside the Intel driver specifically a function named mmFree, I'm guessing that either Qt or Intel are double-freeing the GL context / memory associated with both of our widgets, even though they are setup to share one. Of course this is wild conjecture, but I'm committing the change since it 'Works for Me'. Nick, can you test please?

The sharing of GL context is only a minor optimization, so I don't expect we'll lose much from not doing it.

Revision history for this message
Nick (kousu) wrote : Re: [Bug 338353] Re: skin-related DRI crash on shutdown
Download full text (14.4 KiB)

Of course, as soon as I'm back to my real computer.

How'd you guess this fix, anyway?

On 05/04/2009, RJ Ryan <email address hidden> wrote:
> I found a fix that works for me -- it turns out that if I make the
> WaveformViewerFactory construct our QGLWidgets such that they do not
> share their GL context between each other, then this makes the crashes
> go away. Since we're seeing this crash inside the Intel driver
> specifically a function named mmFree, I'm guessing that either Qt or
> Intel are double-freeing the GL context / memory associated with both of
> our widgets, even though they are setup to share one. Of course this is
> wild conjecture, but I'm committing the change since it 'Works for Me'.
> Nick, can you test please?
>
> The sharing of GL context is only a minor optimization, so I don't
> expect we'll lose much from not doing it.
>
> --
> skin-related DRI crash on shutdown
> https://bugs.launchpad.net/bugs/338353
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in Mixxx: Confirmed
> Status in Mixxx Series: 1.7: Confirmed
>
> Bug description:
> If the "Collusion (1280-WS)" skin loads then on quitting mixxx I get the
> following crash. The crash is only semi-reliable: sometimes it happens,
> sometimes it doesn't. In my entirely unscientific estimation, switching
> through a lot of different skins seems to trigger it more often but I can't
> be sure.
>
>
> (gdb) r
> Starting program: /home/kousu/mixxx/svn/mixxx
> [Thread debugging using libthread_db enabled]
> [New Thread 0xb64dc6c0 (LWP 20005)]
> Debug: [Main]: Setting up plugin paths...
> Debug: [Main]: ...done.
> Debug: [Main]: Mixxx 1.6.2 "(svn 2715:2716M; built on: Mar 5 2009 @
> 12:56:43; flags: hifieq ladspa vinylcontrol midiscript optimize=1) " is
> starting...
> [New Thread 0xb3df6b90 (LWP 20006)]
> [New Thread 0xb2fa4b90 (LWP 20007)]
> Debug: [Main]: ControlObject::getControl returning NULL for ( "[Mixer
> Profile]" , "LoEQFrequency" )
> [New Thread 0xb1fc5b90 (LWP 20008)]
> Debug: [Main]: SampleRate 48000
> Debug: [Main]: Latency 64
> [New Thread 0xb13e9b90 (LWP 20010)]
> [Thread 0xb13e9b90 (LWP 20010) exited]
> [New Thread 0xb13e9b90 (LWP 20011)]
> [Thread 0xb13e9b90 (LWP 20011) exited]
> [New Thread 0xb13e9b90 (LWP 20012)]
> [Thread 0xb13e9b90 (LWP 20012) exited]
> [New Thread 0xb13e9b90 (LWP 20013)]
> [Thread 0xb13e9b90 (LWP 20013) exited]
> Debug: [Main]: createWaveformViewer()
> Debug: [Main]: WaveformViewerFactory :: Creating new visual waveform
> Debug: [Main]: WaveformViewerFactory :: Making new GL context.
> Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
> Debug: [Main]: Got bgColor QColor(ARGB 1, 0.0980392, 0.0980392, 0.0980392)
> Debug: [Main]: Got signalColor QColor(ARGB 1, 0.803922, 0, 0.803922)
> Debug: [Main]: createWaveformViewer()
> Debug: [Main]: WaveformViewerFactory :: Creating new visual waveform
> Debug: [Main]: WaveformViewerFactory :: Sharing existing GL context.
> Debug: [Main]: WaveformRenderer::setupControlObjects - VisualResample: 400
> Debug: [Main]: Got bgColor QColor(ARGB 1, 0.0980392, 0.0980392, 0.0980392)
> Debug: [Main]: Got signalColor QColor(ARGB 1, 0.803922,...

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I tried all sorts of stuff, but in general incrementally turned off feature after feature in the waveform viewer until the crashes stopped. It's lucky that my laptop uses the Intel 965 driver -- I don't think I would have been able to reproduce it otherwise :)

Revision history for this message
Nick (kousu) wrote :

Well I flipped through all the skins a few times and Mixxx didn't crash on exit, so I think you won.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Confirmed → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5110

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.