You are here

Weston and Qt5

I've built qtractor with qt5. When I launch on weston using

qtractor -platform wayland

I get a segfault. Any help is appreciated.

AttachmentSize
Plain text icon debug.txt1.79 KB
Forums: 
rncbc's picture

this debug output:
...

#3  0x00007f8742f9f510 in QMimeData::hasUrls() const () from /usr/lib64/libQt5Core.so.5
#4  0x00000000004a1170 in qtractorFiles::stabilizeSlot (this=0x248fc10) at qtractorFiles.cpp:428

...
actually points to src/qtractorFiles.cpp, lines 427-8:

	m_pPasteItemAction->setEnabled(
		(QApplication::clipboard()->mimeData())->hasUrls());

which might be QApplication::clipboard()->mimeData() that is returning an invalid pointer, possibly NULL. if it is so, it's a bug in your specific Qt5 version on Weston: QClipboard::mimeData() should always return a valid pointer.

ok, just to be sure, would you be so kind and edit src/qtractorFiles.cpp, lines 427-8 as above, and rewrite/paste the following instead?

	const QMimeData *pMimeData = QApplication::clipboard()->mimeData();
	m_pPasteItemAction->setEnabled(pMimeData && pMimeData->hasUrls());

if it works or gets it through and beyond, then it's confirmed as a Qt5 bug, specific to your version on Weston perhaps. it has come to my knowledge that Qt5 on Android suffered from the same a while ago. maybe it's the same on Weston, maybe not. you're my eyes and ears over there ;)

hth.
cheers.

It crashes again. XCB platform works fine.

rncbc's picture

It crashes again. XCB platform works fine.

but now you missed the debug crash stacktrace output.

is it still possible to replicate the segfault?

byee

  
  [New LWP 30018]
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib64/libthread_db.so.1".
  0x00007f69eec4e8a9 in waitpid () from /lib64/libpthread.so.0

  Thread 2 (Thread 0x7f69e4ffd700 (LWP 30018)):
  #0  0x00007f69ee18bac3 in select () from /lib64/libc.so.6
  #1  0x00007f69ef3aff31 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) () from /usr/lib64/libQt5Core.so.5
  #2  0x00007f69ef3b1965 in QEventDispatcherUNIXPrivate::doSelect(QFlags, timespec*) () from /usr/lib64/libQt5Core.so.5
  #3  0x00007f69ef3b1ead in QEventDispatcherUNIX::processEvents(QFlags) () from /usr/lib64/libQt5Core.so.5
  #4  0x00007f69ef35dbe2 in QEventLoop::exec(QFlags) () from /usr/lib64/libQt5Core.so.5
  #5  0x00007f69ef18028c in QThread::exec() () from /usr/lib64/libQt5Core.so.5
  #6  0x00007f69ef184fef in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
  #7  0x00007f69eec47194 in start_thread () from /lib64/libpthread.so.0
  #8  0x00007f69ee1929dd in clone () from /lib64/libc.so.6

  Thread 1 (Thread 0x7f69f274e7c0 (LWP 30017)):
  #0  0x00007f69eec4e8a9 in waitpid () from /lib64/libpthread.so.0
  #1  0x00000000004347f6 in stacktrace (signo=11) at qtractor.cpp:305
  #2  <signal handler called>
  #3  0x00007f69ef388510 in QMimeData::hasUrls() const () from /usr/lib64/libQt5Core.so.5
  #4  0x00000000005f00c2 in qtractorMainForm::stabilizeForm (this=0x7fff182d3550) at qtractorMainForm.cpp:5696
  #5  0x00000000004a12c0 in qtractorFiles::stabilizeSlot (this=0x1848930) at qtractorFiles.cpp:444
  #6  0x000000000049fef1 in qtractorFiles::qtractorFiles (this=0x1848930, pParent=0x7fff182d3550) at qtractorFiles.cpp:161
  #7  0x00000000005de5b0 in qtractorMainForm::setup (this=0x7fff182d3550, pOptions=0x7fff182d3300) at qtractorMainForm.cpp:1193
  #8  0x0000000000436f69 in main (argc=1, argv=0x7fff182d3f18) at qtractor.cpp:535
rncbc's picture

#3  0x00007f69ef388510 in QMimeData::hasUrls() const () from /usr/lib64/libQt5Core.so.5

so it's most probably the same issue as before, QClipboard::mimeData() returning a NULL pointer, when it shouldn't--just on a different spot.

please try new build from todays git head (>= qtractor-0.6.5.8git.bb78c3).

hth.
cheers

Add new comment