PortMIDI is compiled in debug mode which calls exit() instead of handling errors gracefully

Bug #1097286 reported by CaptainPlanet on 2013-01-08
66
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Mixxx
Critical
RJ Ryan
Pygame
New
Undecided
Unassigned
portmidi (Debian)
Fix Released
Unknown
portmidi (Ubuntu)
High
Alessio Treglia
Xenial
High
Unassigned
Yakkety
High
Unassigned

Bug Description

Hi,
I installed the MIDI driver for the hercules consoles and tried to work with them with the beta2 (r3623). When I go the options menu it seems to detect the controller because I can choose it. Then I click the checkbox "Aktivieren" (activate) and the the "ok" button. It crashes immediately. Heres is the output of the terminal.

Xubuntu 12.04

Debug [Main]: Mixxx 1.11.0-beta2 "(bzr r3632; built on: Dec 14 2012 @ 16:54:19; flags: bulk hid hifieq mad optimize=9 qdebug shoutcast vamp verbose vinylcontrol)" is starting...
Debug [Main]: Qt version is: 4.8.1
Warning [Main]: Configuration file is at version "1.11.0" instead of the current 1.11.0-beta2
Debug [Main]: Loading translations for locale "de_DE" from translations folder "/usr/share/mixxx/translations/" : success
Debug [Main]: ConfigObject: Could not read ""
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel1]" , "vinylcontrol_mode" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel2]" , "vinylcontrol_mode" )
Debug [Main]: JACK client name set
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM phoneline
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM phoneline
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Eingabe-/Ausgabefehler(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Eingabe-/Ausgabefehler(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Eingabe-/Ausgabefehler(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Eingabe-/Ausgabefehler(5)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server socket
jack server is not running or cannot be started
Debug [Main]: AnalyserWaveform::AnalyserWaveform()
Debug [Main]: Setting VAMP_PATH to: "/usr/lib/mixxx/plugins/vamp:/home/marcus/.mixxx/plugins/vamp/:/usr/bin/lin32_build/vamp-plugins:/usr/bin/lin64_build/vamp-plugins"
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoDepth" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoDelay" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoPeriod" )
Warning [Main]: Object::connect: No such slot AnalyserQueue::queueAnalyseTrack(TrackPointer) in src/playermanager.cpp:230
Warning [Main]: Object::connect: (receiver name: 'AnalyserQueue 1')
Debug [Main]: Available QtSQL drivers: ("QSQLITE", "QMYSQL3", "QMYSQL", "QPSQL7", "QPSQL")
Debug [Main]: DB status: "/home/marcus/.mixxx/mixxxdb.sqlite" = true
Debug [Main]: SchemaManager::upgradeToSchemaVersion already at version 17
Debug [Main]: TrackDAO::initialize QThread(0x89d0098, name = "Main") "qt_sql_default_connection"
Debug [Main]: CrateDAO::initialize()
Debug [Main]: CueDAO::initialize QThread(0x89d0098, name = "Main") "qt_sql_default_connection"
Debug [Main]: Promo dir: "/usr/share/mixxx/promo/1.8.0/index.html"
Debug [Main]: Default quick links: ("/media/7EF8B26FF8B22575/Musik/", "/home/marcus/Musik/", "/home/marcus/Downloads/", "/home/marcus/Arbeitsfläche/", "/home/marcus/Dokumente/")
Debug [Main]: Appending Quick Link: "Musik" --- "/media/7EF8B26FF8B22575/Musik/"
Debug [Main]: Appending Quick Link: "Musik" --- "/home/marcus/Musik/"
Debug [Main]: Appending Quick Link: "Downloads" --- "/home/marcus/Downloads/"
Debug [Main]: Appending Quick Link: "Arbeitsfläche" --- "/home/marcus/Arbeitsfläche/"
Debug [Main]: Appending Quick Link: "Dokumente" --- "/home/marcus/Dokumente/"
Debug [Main]: Creating session history playlist name: "2013-01-08 (8)"
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Traktor Library Location=[ "/home/marcus/collection.nml" ]
Debug [Main]: Creating ControllerManager
Debug [Main]: Extension ".bulk.xml" total 1 presets
Debug [Main]: Extension ".hid.xml" total 6 presets
Debug [Main]: Extension ".midi.xml" total 62 presets
Debug [Main]: Promo dir: "/usr/share/mixxx/promo/1.8.0/index.html"
Debug [Main]: Setting VAMP_PATH to: "/usr/lib/mixxx/plugins/vamp:/home/marcus/.mixxx/plugins/vamp/:/usr/bin/lin32_build/vamp-plugins:/usr/bin/lin64_build/vamp-plugins:/usr/lib/mixxx/plugins/vamp:/home/marcus/.mixxx/plugins/vamp/:/usr/bin/lin32_build/vamp-plugins:/usr/bin/lin64_build/vamp-plugins"
Debug [Main]: VampPluginLoader::listPlugins() returned 2 plugins
Debug [Main]: Plugin output displayname: "qm-barbeattracker:0" "Bar and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-barbeattracker:1" "Bar and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-barbeattracker:2" "Bar and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-barbeattracker:3" "Bar and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-tempotracker:0" "Queen Mary Tempo and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-tempotracker:1" "Queen Mary Tempo and Beat Tracker"
Debug [Main]: Plugin output displayname: "qm-tempotracker:2" "Queen Mary Tempo and Beat Tracker"
Debug [Main]: ControllerManager::getControllerList
Debug [Main]: SoundManager::setupDevices()
Debug [Main]: SoundDevicePortAudio::open() "0, ATI IXP: ATI IXP AC97 (hw:0,0)"
Debug [Main]: framesPerBuffer: 1024
Debug [Main]: Requested sample rate: 48000 Hz, latency: 21.3333 ms
Debug [Main]: Output channels: 2 | Input channels: 0
Debug [Main]: Opening stream with id 0
Debug [Main]: Opened PortAudio stream successfully... starting
Debug [Main]: Dynamically loaded PortAudio library
Debug [Main]: PortAudio: Started stream successfully
Debug [Main]: Actual sample rate: 48000 Hz, latency: 42.6667 ms
Debug [Main]: Using "ATI IXP: ATI IXP AC97 (hw:0,0)" as output sound device clock reference
Debug [Main]: 1 output sound devices opened
Debug [Main]: 0 input sound devices opened
Debug [Main]: Set root GL Context widget valid: QGLWidget(0x936f978) true
Debug [Main]: Created root GL Context valid: 0x936fba8 true
Debug [Main]: Root GL Context format:
Debug [Main]: Double Buffering: true
Debug [Main]: Swap interval: 0
Debug [Main]: Depth buffer: true
Debug [Main]: Direct rendering: true
Debug [Main]: Has overlay: false
Debug [Main]: RGBA: true
Debug [Main]: Sample buffers: false
Debug [Main]: Stencil buffers: true
Debug [Main]: Stereo: false
Debug [Main]: Invalid node name in skin: "manifest"
Warning [Main]: ControlObject::getControl returning NULL for ( "[Samplers]" , "show_samplers" )
Warning [Main]: Requested control does not exist: "[Samplers],show_samplers" Creating it.
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Sampler1]" , "" )
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Sampler2]" , "" )
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Sampler3]" , "" )
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Sampler4]" , "" )
Debug [Main]: Recordings folder set to "/media/7EF8B26FF8B22575/Musik/Mixxx/Recordings"
Debug [Main]: BaseTrackCache(0x902ea28) updateIndexWithQuery took 319 ms
Debug [Main]: PrepareLibraryTableModel(0x980fea8) select() took 593 ms
Debug [Main]: PrepareLibraryTableModel(0x980fea8) select() took 273 ms
Debug [Main]: DlgPrepare(0x97e0a18, name = "DlgPrepare") analysisActive false
Warning [Main]: ControlObject::getControl returning NULL for ( "[Microphone]" , "show_microphone" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Microphone]" , "show_microphone" )
Warning [Main]: Requested control does not exist: "[Microphone],show_microphone" Creating it.
Warning [Main]: ControlObject::getControl returning NULL for ( "[Vinylcontrol]" , "show_vinylcontrol" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Vinylcontrol]" , "show_vinylcontrol" )
Warning [Main]: Requested control does not exist: "[Vinylcontrol],show_vinylcontrol" Creating it.
Debug [Main]: Created QGLWidget. Context Valid: true Sharing: true
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel1]" , "" )
Debug [Main]: WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 0
Warning [Main]: ControlObject::getControl returning NULL for ( "[Spinny1]" , "show_spinny" )
Warning [Main]: Requested control does not exist: "[Spinny1],show_spinny" Creating it.
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Debug [Main]: Created QGLWidget. Context Valid: true Sharing: true
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel1]" , "" )
Debug [Main]: Created QGLWidget. Context Valid: true Sharing: true
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel2]" , "" )
Debug [Main]: WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 1
Warning [Main]: ControlObject::getControl returning NULL for ( "[Spinny2]" , "show_spinny" )
Warning [Main]: Requested control does not exist: "[Spinny2],show_spinny" Creating it.
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Debug [Main]: Created QGLWidget. Context Valid: true Sharing: true
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Warning [Main]: WaveformSignalColors::fallBackFromSignalColor - skin do not provide low/mid/high signal colors
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel2]" , "" )
Debug [Main]: Making property binder for "visible"
Warning [Main]: Object::connect: No such slot QGroupBox::setProperty(const char*, const QVariant&) in src/skin/propertybinder.cpp:15
Warning [Main]: Object::connect: (receiver name: 'WidgetGroup')
Warning [Main]: ControlObject::getControl returning NULL for ( "[PreviewDeck]" , "show_previewdeck" )
Debug [Main]: MixxxLibraryFeature::activate()
Debug [Main]: LibraryTableModel(0x9041ed8) select() took 217 ms
Debug [Main]: WSearchLineEdit::restoreSearch( "" )
Debug [Controller]: ControllerManager: Setting up devices
Debug [Controller]: Scanning PortMIDI devices:
Debug [Controller]: Found output device # 0 Midi Through Port-0
Debug [Controller]: Found output device # 2 Hercules DJ Control MP3 e2 MIDI
Debug [Controller]: Found input device # 1 Midi Through Port-0
Debug [Controller]: Linking to output device # 0 "Midi Through Port-0"
Debug [Controller]: Found input device # 3 Hercules DJ Control MP3 e2 MIDI
Debug [Controller]: Linking to output device # 2 "Hercules DJ Control MP3 e2 MIDI"
Debug [Controller]: Scanning USB Bulk devices:
Debug [Controller]: Error opening a device
Debug [Controller]: Scanning HID devices:
Debug [Main]: Constructed LibraryScanner
Debug [Main]: iTunes Album Art path is: ""
Debug [Main]: Displaying mixxx
Debug [Controller]: ControllerManager::getControllerList
Debug [Controller]: Loading controller preset from "/home/marcus/.mixxx/controllers/Midi_Through_Port-0.midi.xml"
Debug [Controller]: "Midi" settings found
Debug [Controller]: MidiControllerPresetFileHandler: Input mapping parsing complete.
Debug [Controller]: MidiPresetFileHandler: Output mapping parsing complete.
Debug [Controller]: Loading controller preset from "/home/marcus/.mixxx/controllers/Hercules_DJ_Control_MP3_e2_MIDI.midi.xml"
Debug [Controller]: "Hercules" settings found
Debug [Controller]: MidiControllerPresetFileHandler: Input mapping parsing complete.
Debug [Controller]: MidiPresetFileHandler: Output mapping parsing complete.
Debug [Controller]: Controller polling stopped.
Debug [Main]: resize QSize(1024, 745)
Debug [Main]: Running Mixxx
Debug [Main]: ControllerManager::getControllerList
Warning [Main]: WaveformRenderBackground::generatePixmap - no background file
Warning [Main]: WaveformRenderBackground::generatePixmap - no background file
Debug [Main]: guess the size of the window decoration
Debug [Main]: DlgPrefVinyl::Apply
Debug [Main]: in VinylGainSlotApply() with gain: 1
Debug [Controller]: ControllerManager::getControllerList
Debug [Controller]: Saving preset for "Midi Through Port-0" to "/home/marcus/.mixxx/controllers/Midi_Through_Port-0.midi.xml"
Debug [Controller]: writing script block for "common-bulk-midi.js"
Debug [Controller]: writing script block for "Hercules DJ Control MP3 e2-scripts.js"
Debug [Controller]: writing script block for "Hercules-mp3e2-compat.js"
Debug [Controller]: Saving preset for "Hercules DJ Control MP3 e2 MIDI" to "/home/marcus/.mixxx/controllers/Hercules_DJ_Control_MP3_e2_MIDI.midi.xml"
Debug [Controller]: writing script block for "common-bulk-midi.js"
Debug [Controller]: writing script block for "Hercules DJ Control MP3 e2-scripts.js"
Debug [Controller]: writing script block for "Hercules-mp3e2-compat.js"
Debug [Controller]: Controller in script engine is: "Hercules DJ Control MP3 e2 MIDI"
Debug [Controller]: Controller polling started.
Debug [Controller]: Applying controller preset...
Debug [Controller]: ControllerEngine: Loading & evaluating all script code
Debug [Controller]: ControllerEngine: Watching JS File: "/usr/share/mixxx/controllers/common-controller-scripts.js"
Debug [Controller]: ControllerEngine: Loading "/usr/share/mixxx/controllers/common-controller-scripts.js"
Debug [Controller]: ControllerEngine: Watching JS File: "/usr/share/mixxx/controllers/common-bulk-midi.js"
Debug [Controller]: ControllerEngine: Loading "/usr/share/mixxx/controllers/common-bulk-midi.js"
Debug [Controller]: ControllerEngine: Watching JS File: "/usr/share/mixxx/controllers/Hercules DJ Control MP3 e2-scripts.js"
Debug [Controller]: ControllerEngine: Loading "/usr/share/mixxx/controllers/Hercules DJ Control MP3 e2-scripts.js"
Debug [Controller]: ControllerEngine: Watching JS File: "/usr/share/mixxx/controllers/Hercules-mp3e2-compat.js"
Debug [Controller]: ControllerEngine: Loading "/usr/share/mixxx/controllers/Hercules-mp3e2-compat.js"
Warning [Controller]: ControllerEngine: No "" object in script
Warning [Controller]: ControllerEngine: No "" object in script
Warning [Controller]: ControllerEngine: No "" object in script
PortMidi call failed...
  PortMidi: `Invalid MIDI message Data'
type ENTER...
Speicherzugriffsfehler (Speicherabzug geschrieben)

Thanks in advance!

description: updated
tags: added: crash linux
Max Linke (max-linke) wrote :

Could you please create a backtrace as descriped here

http://www.mixxx.org/wiki/doku.php/creating_backtraces

RJ Ryan (rryan) wrote :

This isn't really a crash -- it's because PortMIDI was compiled with PM_CHECK_ERRORS defined. We can't control this unfortunately since Debian compiles PortMIDI. I'll get in contact with Alessio to see if this is fixable.

Changed in mixxx:
importance: Undecided → Critical
milestone: none → 1.11.0
RJ Ryan (rryan) wrote :

I'm not sure why the problem is happening though -- if PortMIDI were compiled w/o PM_CHECK_ERRORS then it wouldn't crash but writes to the device would fail.

RJ Ryan (rryan) wrote :

The script errors right before the shutdown seem to suggest that the script might have broken and sent a sysex message that is not valid somehow. From a brief read of the Pm_Write code it seems this specific error only happens in the case of malformed sysex messages.

CaptainPlanet (captainplanet) wrote :
Download full text (32.5 KiB)

Hi everybody,
I followed the instructions to create a backtrace. Interestingly when I start Mixxx with the gdb command it does not crash at this point but something like that. I can see the programm but clicking on anything does do anything. Unfortunately the controller isn't working either. I don't understand what you've written RJ Ryan. I'm not familiar with that coding stuff. Have I done something wrong with my configuration?

Here is the backtrace.

gdb mixxx
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/bin/mixxx...(no debugging symbols found)...done.
(gdb) set height 0
(gdb) run
Starting program: /usr/bin/mixxx
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Debug [Main]: Mixxx 1.11.0-beta2 "(bzr r3632; built on: Dec 14 2012 @ 16:54:19; flags: bulk hid hifieq mad optimize=9 qdebug shoutcast vamp verbose vinylcontrol)" is starting...
Debug [Main]: Qt version is: 4.8.1
Warning [Main]: Configuration file is at version "1.11.0" instead of the current 1.11.0-beta2
Debug [Main]: Loading translations for locale "de_DE" from translations folder "/usr/share/mixxx/translations/" : success
Debug [Main]: ConfigObject: Could not read ""
[New Thread 0xb7a99b40 (LWP 3936)]
[New Thread 0xb6effb40 (LWP 3937)]
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel1]" , "vinylcontrol_mode" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel2]" , "vinylcontrol_mode" )
Debug [Main]: JACK client name set
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.ATIIXP.pcm.modem.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm...

CaptainPlanet (captainplanet) wrote :

It has to be:
"I can see the programm but clicking on anything doesN't do anything."

I can not edit a comment?

Daniel Schürmann (daschuer) wrote :

Hi CaptainPlanet,

Every thing works fine! Gdb freezes the process when a segfault happens instead of killing it like it happens without gdb.
"kill" will kill the process and "quit" will kill the process and quit gdb cleanly.

Notable in your case is that the crash does not happen in the midi code but when rendering a GL widget.

Thread 1 (Thread 0xb7fd6740 (LWP 3933)):
#0 0x00f8197b in ?? () from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#1 0x00f81a5f in qt_qgl_paint_engine() ()
   from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#2 0x00f81d04 in QGLWidget::paintEngine() const ()
   from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#3 0x00809203 in QWidgetPrivate::repaint_sys(QRegion const&) ()

So it looks like you have an combined issue with Midi and OpenGL.
What is your graphic card and driver version?

Please try again with disable Waveforms and Spinnys.
Plead post the output of:
glxinfo | head

You use as striped version of Mixxx without debug info. So the backtrack is not that significant.
#13 0x08367763 in ?? ()

You may compile Mixxx from source to produce a new back trace with debug Infos .
bzr checkout lp:mixxx/1.11
http://mixxx.org/wiki/doku.php/compiling_on_linux

Thank you,

Daniel

Diman (faxtrode) wrote :

Try to use the following version from the source: http://bazaar.launchpad.net/~neale/mixxx/neale/revision/3292 (download tarball and compile the software, it works well with this device). Turn off "Hercules dj_mod" driver.( ex:make rmmod or even remove) It doesn`t work or works with failure on 3.x.x linux kernels(kernel panic for example). The version I described doesn`t demand usage of this driver.(I tryed it a half year ago on Archlinux(linux ver. 3.2.x)).But I saw a guy who worked well with it using "hdjmod" driver on UbuntuStudio 12.xx, two monthes ago. It seems this problem is connected with some kerneles precompiled for some distros. Anyway try to compile the software from the source. If it doesn`t help, download the last stable tarball of the Kernel from: kernel.org, add support for "bulk" and "midi" positions(configuration section for .config file: USB_GADGET may be smth else) devices if it is absent, compile and install this kernel, reboot,run kernel compiled by you, DO NOT load hdj_mod driver, plug you E2 to your PC, run Mixxx and choose the device highlighted in preferences.

RJ Ryan (rryan) wrote :
Download full text (4.0 KiB)

@Daniel -- I'm pretty sure OpenGL isn't a problem here. It was probably just in the middle of painting OpenGL when PortMIDI called exit() which terminated Mixxx. In particular this text:

PortMidi call failed...
  PortMidi: `Invalid MIDI message Data'
type ENTER...

is straight out of the PortMIDI source right before a call to exit() and you can see in the trace for the PortMIDI thread that it has called exit() :

Thread 11 (Thread 0xb0b53b40 (LWP 3945)):
#0 0x00fc5e40 in ?? () from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#1 0x033b62fb in __cxa_finalize () from /lib/i386-linux-gnu/libc.so.6
#2 0x00f76fc4 in ?? () from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#3 0x01004a1d in _fini () from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
#4 0x00130ff4 in ?? () from /lib/ld-linux.so.2
#5 0x033b5f51 in ?? () from /lib/i386-linux-gnu/libc.so.6
#6 0x033b5fdd in exit () from /lib/i386-linux-gnu/libc.so.6
#7 0x0016593e in ?? () from /usr/lib/libportmidi.so.0
#8 0x0016599f in ?? () from /usr/lib/libportmidi.so.0
#9 0x00165f41 in Pm_WriteSysEx () from /usr/lib/libportmidi.so.0
#10 0x084339c0 in ?? ()
#11 0x08174668 in ?? ()
#12 0x084b98de in ?? ()
#13 0x084b9bf4 in ?? ()
#14 0x084bd7f3 in ?? ()
#15 0x084d4987 in ?? ()
#16 0x0032bc9d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#17 0x02d26f9f in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#18 0x02d296b4 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#19 0x02d298e9 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#20 0x02c1f473 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#21 0x02bf3a7f in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#22 0x078ab390 in ?? ()
#23 0x02baf457 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#24 0x02c4bb22 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#25 0x02c1f4d9 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#26 0x02d1403c in QScriptValue::call(QScriptValue const&, QList<QScriptValue> const&) () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#27 0x0817ce68 in ?? ()
#28 0x081820d5 in ?? ()
#29 0x0817638e in ?? ()
#30 0x081b1ff9 in ?? ()
#31 0x0819105c in ?? ()
#32 0x084bcce1 in ?? ()
#33 0x00336c01 in QMetaCallEvent::placeMetaCall(QObject*) ()
   from /usr/lib/i386-linux-gnu/libQtCore.so.4
#34 0x0033fc7b in QObject::event(QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtCore.so.4
#35 0x005bfed4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#36 0x005c530d in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#37 0x0032497e in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtCore.so.4
#38 0x00328ad8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#39 0x00328e0c in QCoreApplication::sendPostedEvents(QObject*, int) ()
   from /usr/lib/i386-linux-gnu/libQtCore.so.4
#40 0x00357494 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#41 0x036c8d86 in g_main_context_dispatch ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#42 0x036c9125 i...

Read more...

summary: - Crashes when activating MIDI Controller Hercules MP3 e2
+ PortMIDI is compiled in debug mode which calls exit() instead of
+ handling errors gracefully.
Changed in mixxx:
status: New → Confirmed
assignee: nobody → RJ Ryan (rryan)

@Alessio -- if PortMIDI were compiled without the PM_CHECK_ERRORS then it would handle errors gracefully (returning an error code) instead of calling exit(-1) and killing the process. Is there a way to change how Debian compiles PortMIDI to build without this symbol? Thanks!

RJ Ryan (rryan) on 2013-01-30
Changed in portmidi (Ubuntu):
status: New → Confirmed
Alessio Treglia (quadrispro) wrote :

Yes, there is. I'm going to work on this as soon as possible.

Changed in portmidi (Ubuntu):
importance: Undecided → High
assignee: nobody → Alessio Treglia (quadrispro)
Max Linke (max-linke) wrote :

@Alessio -- Did you make any progress on this? I still have the problem in debian/testing

Max Linke (max-linke) wrote :

I've created a package without PM_CHECK_ERRORS. They can be downloaded here.
I've tested it with debian wheezy but it should work just as fine with ubuntu

http://www.kellnerweg.de/~mlinke/

Drazgo (laurens-helewaut) wrote :

@max linke: could you please create a package for i386 as well? Or do you have the source so i can compile it myself?

Max Linke (max-linke) wrote :

I followed the instructions here

http://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/

You have to deactivate PM_CHECK_ERRORS in pm_linux/Makefile

Diogo (diogo-7) wrote :

I had the same problem on debian and had to deactivate PM_CHECK_ERRORS in pm_linux/Makefile and recompile as instructed. Should I open a bug report on Debian?

CaptainPlanet (captainplanet) wrote :

Hi, I posted this bug about a year ago.

Just to inform everyone: The workaround at the wiki page worked for me. So I don’t know if the acutal problem is solved but I got Hercules MP3 e2 running :-) .

http://mixxx.org/wiki/doku.php/hercules_dj_control_mp3_e2

I’ve done what is described after the paragraph:

"If the device is still not visible as a separate entry under “Controllers” you need to modify the device permissions using udev rules. First create the rule file: "

Thanks everyone for help me out, trying to fix this and reporting it to the portMidi developers... and of course for making this awesome piece of software!

Hello, i still have this issue. I'm on 14.04 gnome shell and using Mixxx 1.11.0 from ppa. What can i do for help? Thanks

Changed in portmidi (Debian):
status: Unknown → New
Changed in portmidi (Debian):
status: New → Fix Committed
RJ Ryan (rryan) wrote :

Woot! Thanks Alessio. Since this is not a Mixxx bug and upstream has a fix, closing as Invalid now for Mixxx.

Changed in mixxx:
status: Confirmed → Invalid
Changed in portmidi (Debian):
status: Fix Committed → Fix Released
Download full text (17.8 KiB)

Hello, I have a Hercules Control AIR. In Mixxx 1.10 works with some workaround, but in Mixxx 1.11 does not, crash when hit "play".
Im on Ubuntu 14.04.
The debug says:

~$ mixxx --debug
Debug [Main]: Mixxx 1.11.0 "(bzr 1.11 r3885+; built on: Apr 25 2014 @ 04:13:53; flags: bulk hid hifieq mad optimize=9 qdebug shoutcast vamp verbose vinylcontrol)" is starting...
Debug [Main]: Qt version is: 4.8.6
Debug [Main]: Configuration file is at the current version 1.11.0
Debug [Main]: Loading translations for locale "es_AR" from translations folder "/usr/share/mixxx/translations/" : success
Debug [Main]: ConfigObject: Could not read ""
Debug [Main]: "/usr/share/mixxx/keyboard/es_MX.kbd.cfg" not found, using en_US.kbd.cfg
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel1]" , "vinylcontrol_mode" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Channel2]" , "vinylcontrol_mode" )
Debug [Main]: JACK client name set
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Conexión rehusada (111)
bt_audio_service_open: connect() failed: Conexión rehusada (111)
bt_audio_service_open: connect() failed: Conexión rehusada (111)
bt_audio_service_open: connect() failed: Conexión rehusada (111)
Cannot connect to server socket err = No existe el archivo o el directorio
Cannot connect to server request channel
jack server is not running or cannot be started
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoDepth" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoDelay" )
Warning [Main]: ControlObject::getControl returning NULL for ( "[Flanger]" , "lfoPeriod" )
Debug [Main]: Available QtSQL drivers: ("QSQLITE", "QMYSQL3", "QMYSQL", "QSPATIALITE")
Debug [Main]: DB status: "/home/federico/.mixxx/mixxxdb.sqlite" = true
Debug [Main]: SchemaManager::upgradeToSchemaVersion already at version 17
Debug [Main]: TrackDAO::initialize QThread(0x8c35450, name = "Main") "qt_sql_default_connection"
Debug [Main]: CrateDAO::initialize()
Debug [Main]: CueDAO::initialize QThread(0x8c35450, name = "Main") "qt_sql_default_connection"
Debug [Main]: Default quick links: ("/home/federico/Música/", "/home/federico/Escritorio/", "/home/federico/Documentos/")
Debug [Main]: Appending Quick Link: "Música" --- "/home/federico/Música/"
Debug [Main]: Appending Quick Link: "Escritorio" --- "/home/federico/Escritorio/"
Debug [Main]: Appending Quick Link: "Documentos" --- "/home/federico/Documentos/"
Debug [Main]: Creating session history playlist name: "2014-11-29 (6)"
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Traktor Library Location=[ "/home/federico/collection.nml" ]
Debug [Main]: AnalyserWaveform::AnalyserWaveform()
Debug [Main]: Setting VAMP_PATH to: "/usr/lib/mixxx/plugins/vamp:/home/federico/.mixxx/plugins/vamp/:/usr/bin/lin32_build/vamp-plugins:/usr/bin/lin64_build/vamp-plugins"
Debug [Main]: Creating Controll...

I can solve, at last. On Ubuntu 14.04 (i386), the libportmidi isn't fixed at 30 of november 2014. So, i take the debian jessie package an install it on ubuntu. But first i had to uninstall the ubuntu package. Now Mixxx dos't crash anymore and work ok with hercules Control AIR.

Steps

1) Remove libportmidi package from ubuntu (open synaptic, search libpormidi and uninstall it)

2) Download libportmidi deb from https://packages.debian.org/jessie/i386/libportmidi0/download and install it

3) Open Mixxx and check its ok

Tomsn (tsberlin) on 2015-11-15
summary: PortMIDI is compiled in debug mode which calls exit() instead of
- handling errors gracefully.
+ handling errors gracefully
Daniel Schürmann (daschuer) wrote :

All Ubuntu packages are effected.
I think we need to provide our own build for Mixxx in a separate PPA.
What should be the version?

Attached you find the patch that will fixes it.

Daniel Schürmann (daschuer) wrote :
Changed in mixxx:
milestone: 1.11.0 → 2.0.0
status: Invalid → Confirmed

The attachment "no_exit.diff" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
RJ Ryan (rryan) wrote :

PPA build of portmidi with a patch identical to daschuer's in #23 is here:
https://launchpad.net/~rryan/+archive/ubuntu/ppa/+packages

Changed in mixxx:
status: Confirmed → In Progress
RJ Ryan (rryan) wrote :

I tried to submit a package "sync request" from Debian to Ubuntu but the Ubuntu version is higher than the Debian version (1:200 versus 1:184-2.2).

illume (illume) wrote :

Hi,

I added that this affects the pygame, and mido python libraries and the various apps that depend on those libraries.

https://pypi.python.org/pypi/mido/1.1.14

best,

Jeremy Bicha (jbicha) wrote :

This is fixed in Ubuntu 17.04 Alpha which compiles in Release Mode:

https://launchpad.net/ubuntu/+source/portmidi/1:217-6

Changed in portmidi (Ubuntu):
status: Confirmed → Fix Released
Changed in portmidi (Ubuntu Xenial):
importance: Undecided → High
Changed in portmidi (Ubuntu Yakkety):
importance: Undecided → High
Changed in portmidi (Ubuntu Xenial):
status: New → Confirmed
Changed in portmidi (Ubuntu Yakkety):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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