Page 1 of 1

QLC+ Segmentation Fault on Exit

Posted: Sun May 26, 2013 1:57 pm
by webdb22
QLC+ seems to work fine on Ubuntu 12.04.2 LTS, but core dumps on exit due to Segmentation Fault:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ qlcplus -d

Q Light Controller Plus version 4.3.3
This program is licensed under the terms of the GNU General Public License v2.
Copyright (c) Heikki Junnila (hjunnila@users.sf.net)
Copyright (c) Massimo Callegari (massimocallegari@yahoo.it)

IOPluginCache::IOPluginCache(QObject*)
bool QLCFixtureDefCache::load(const QDir&) "/home/sysadmin/.qlcplus/fixtures"
bool QLCFixtureDefCache::load(const QDir&) "/usr/share/qlcplus/fixtures"
void IOPluginCache::load(const QDir&) "/usr/lib/qt4/plugins/qlcplus"
Loaded I/O plugin "ArtNet" from "libartnet.so"
Loaded I/O plugin "DMX4Linux" from "libdmx4linux.so"
Loaded I/O plugin "DMX USB" from "libdmxusb.so"
Loaded I/O plugin "ENTTEC Wing" from "libenttecwing.so"
Loaded I/O plugin "HID" from "libhid.so"
Opened "/dev/input/js0" in read only mode
Loaded I/O plugin "MIDI" from "libmidiplugin.so"
virtual void MidiPlugin::init()
MidiEnumeratorPrivate::MidiEnumeratorPrivate(MidiEnumerator*)
void MidiEnumeratorPrivate::initAlsa()
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
Unable to open ALSA interface!
MidiEnumerator::MidiEnumerator(QObject*)
void MidiEnumerator::rescan()
void MidiEnumeratorPrivate::rescan()
Loaded I/O plugin "OSC" from "libosc.so"
Loaded I/O plugin "Peperoni" from "libpeperoni.so"
Loaded I/O plugin "uDMX" from "libudmx.so"
SimpleDeskEngine::SimpleDeskEngine(Doc*)
SimpleDesk::SimpleDesk(QWidget*, Doc*)
void SimpleDesk::initEngine()
void SimpleDesk::initView()
void SimpleDesk::initUniverseSliders()
void SimpleDesk::initUniversePager()
void SimpleDesk::slotUniversePageChanged(int)
void SimpleDesk::initPlaybackSliders()
void SimpleDesk::initCueStack()
void SimpleDesk::slotSelectPlayback(uint)
CueStack* SimpleDeskEngine::createCueStack()
CueStack::CueStack(Doc*) 0x88ffce8
void CueStackModel::setCueStack(CueStack*) old: 0x0 new: 0x88ffce8
void SimpleDesk::updateCueStackButtons()
[InputOutputPatchEditor] Fill tree for universe: 0
[InputOutputPatchEditor] Fill tree for universe: 0
virtual SimpleDesk::~SimpleDesk()
virtual SimpleDeskEngine::~SimpleDeskEngine()
void SimpleDeskEngine::clearContents()
void CueStack::stop()
virtual CueStack::~CueStack() 0x88ffce8
virtual IOPluginCache::~IOPluginCache()
virtual MidiPlugin::~MidiPlugin()
virtual MidiEnumerator::~MidiEnumerator()
virtual MidiEnumeratorPrivate::~MidiEnumeratorPrivate()
void AlsaMidiInputThread::stop()
Segmentation fault (core dumped)
$
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Don't know if this is an issue, at least it's weird!

QLC+ Segmentation Fault on Exit

Posted: Sun May 26, 2013 4:50 pm
by Massimo Callegari
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
Unable to open ALSA interface!

That should ring a bell...

QLC+ Segmentation Fault on Exit

Posted: Mon May 27, 2013 2:51 pm
by webdb22
Hmmm, maybe I didn't get it, QLC+ could not open the ALSA interface, fine (there is no sound card). But QLC+ shouldn't core dump on exit, should it?

QLC+ Segmentation Fault on Exit

Posted: Mon May 27, 2013 3:03 pm
by Massimo Callegari
It shouldn't.

If you compile from sources try to replace this function in alsamidienumerator.cpp with the following code:

MidiEnumeratorPrivate::~MidiEnumeratorPrivate()
{
qDebug() stop();

while (m_outputDevices.isEmpty() == false)
delete m_outputDevices.takeFirst();

while (m_inputDevices.isEmpty() == false)
delete m_inputDevices.takeFirst();

delete m_inputThread;
m_inputThread = NULL;
}
}

QLC+ Segmentation Fault on Exit

Posted: Mon May 27, 2013 3:17 pm
by webdb22
Thanks for the quick reply! Compiling from sources is unfortunately above my skills, I'd be happy if you would integrate this bugfix into the next version!

Please keep up your great work on QLC+! Thanks!