Build 11/16/2012 random crashes on Mint 13

woolworm's picture

Hi, I'm using Linux Mint 13 (Maya) and I've just updated to SoulseekQt Build 11/16/2012. Many crashes happen randomly when selecting the "expand folders" and the clear "completed and aborted" options in the uploads menu. It happens randomly, crashing the client instantly and with no error messages. I have to restart the client to keep the downloads and the uploads running again. Is this a known bug or something I have to work around with? Many thanks.

Please see the FAQ for information about getting a usable crash report.

Thanks, Nir

woolworm's picture

Hi Nir, sorry for the late reply. I've been busy with stuff and I had my time figuring out how to debug in Linux. So it crashed again (even with the last build 11/22/2012), and I managed to have a crash report. I will copy-paste here everything from the "run" command towards the end.

Starting program: /home/vincenzo/SoulseekQt-11-22-2012-64bit SoulseekQt-11-22-2012-64bit
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
"sni-qt/5030" WARN 23:22:29.828 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
[New Thread 0x7fffe54cc700 (LWP 5033)]
[New Thread 0x7fffe4ccb700 (LWP 5034)]
[New Thread 0x7fffdffff700 (LWP 5035)]
[New Thread 0x7fffded8a700 (LWP 5037)]
[Thread 0x7fffdffff700 (LWP 5035) exited]
[New Thread 0x7fffdffff700 (LWP 5045)]
[Thread 0x7fffdffff700 (LWP 5045) exited]
[Thread 0x7fffded8a700 (LWP 5037) exited]
[New Thread 0x7fffded8a700 (LWP 5069)]
[New Thread 0x7fffdffff700 (LWP 5070)]
[Thread 0x7fffdffff700 (LWP 5070) exited]
[New Thread 0x7fffdffff700 (LWP 5074)]
[Thread 0x7fffded8a700 (LWP 5069) exited]
[New Thread 0x7fffded8a700 (LWP 5075)]
[Thread 0x7fffdffff700 (LWP 5074) exited]
[New Thread 0x7fffdffff700 (LWP 5076)]
[Thread 0x7fffded8a700 (LWP 5075) exited]
[New Thread 0x7fffded8a700 (LWP 5077)]
[New Thread 0x7fffc7d9a700 (LWP 5078)]
[Thread 0x7fffdffff700 (LWP 5076) exited]
[New Thread 0x7fffdffff700 (LWP 5082)]
[Thread 0x7fffded8a700 (LWP 5077) exited]
[New Thread 0x7fffded8a700 (LWP 5084)]
[Thread 0x7fffdffff700 (LWP 5082) exited]
[New Thread 0x7fffdffff700 (LWP 5085)]
[Thread 0x7fffdffff700 (LWP 5085) exited]
[New Thread 0x7fffdffff700 (LWP 5086)]
[Thread 0x7fffded8a700 (LWP 5084) exited]
[New Thread 0x7fffded8a700 (LWP 5088)]
[Thread 0x7fffdffff700 (LWP 5086) exited]
[New Thread 0x7fffdffff700 (LWP 5097)]
[Thread 0x7fffdffff700 (LWP 5097) exited]
[Thread 0x7fffded8a700 (LWP 5088) exited]
[New Thread 0x7fffded8a700 (LWP 5099)]
[New Thread 0x7fffdffff700 (LWP 5100)]
[Thread 0x7fffded8a700 (LWP 5099) exited]
[New Thread 0x7fffded8a700 (LWP 5106)]
[Thread 0x7fffdffff700 (LWP 5100) exited]
[New Thread 0x7fffdffff700 (LWP 5107)]
[Thread 0x7fffded8a700 (LWP 5106) exited]
[New Thread 0x7fffded8a700 (LWP 5116)]
[Thread 0x7fffdffff700 (LWP 5107) exited]
[New Thread 0x7fffdffff700 (LWP 5117)]
[Thread 0x7fffdffff700 (LWP 5117) exited]
[New Thread 0x7fffdffff700 (LWP 5123)]
[Thread 0x7fffded8a700 (LWP 5116) exited]
[New Thread 0x7fffded8a700 (LWP 5124)]
[Thread 0x7fffdffff700 (LWP 5123) exited]
[New Thread 0x7fffdffff700 (LWP 5129)]
[Thread 0x7fffded8a700 (LWP 5124) exited]
[New Thread 0x7fffded8a700 (LWP 5130)]
[Thread 0x7fffdffff700 (LWP 5129) exited]
[New Thread 0x7fffdffff700 (LWP 5132)]
[Thread 0x7fffded8a700 (LWP 5130) exited]
[New Thread 0x7fffded8a700 (LWP 5133)]
[Thread 0x7fffdffff700 (LWP 5132) exited]
[New Thread 0x7fffdffff700 (LWP 5140)]
[Thread 0x7fffded8a700 (LWP 5133) exited]
[New Thread 0x7fffded8a700 (LWP 5141)]
[Thread 0x7fffdffff700 (LWP 5140) exited]
[New Thread 0x7fffdffff700 (LWP 5143)]
[Thread 0x7fffdffff700 (LWP 5143) exited]
[New Thread 0x7fffdffff700 (LWP 5144)]
[Thread 0x7fffdffff700 (LWP 5144) exited]
[New Thread 0x7fffdffff700 (LWP 5145)]
[Thread 0x7fffdffff700 (LWP 5145) exited]
[New Thread 0x7fffdffff700 (LWP 5146)]
[Thread 0x7fffdffff700 (LWP 5146) exited]
[Thread 0x7fffded8a700 (LWP 5141) exited]
[New Thread 0x7fffded8a700 (LWP 5147)]
[Thread 0x7fffded8a700 (LWP 5147) exited]
[New Thread 0x7fffded8a700 (LWP 5152)]
[Thread 0x7fffc7d9a700 (LWP 5078) exited]
[New Thread 0x7fffc7d9a700 (LWP 5156)]
[Thread 0x7fffded8a700 (LWP 5152) exited]
[New Thread 0x7fffded8a700 (LWP 5157)]
[Thread 0x7fffded8a700 (LWP 5157) exited]
[New Thread 0x7fffded8a700 (LWP 5159)]
[Thread 0x7fffded8a700 (LWP 5159) exited]
[New Thread 0x7fffded8a700 (LWP 5167)]
[Thread 0x7fffded8a700 (LWP 5167) exited]
[New Thread 0x7fffded8a700 (LWP 5170)]
[Thread 0x7fffded8a700 (LWP 5170) exited]
[New Thread 0x7fffded8a700 (LWP 5173)]
[Thread 0x7fffded8a700 (LWP 5173) exited]
[New Thread 0x7fffded8a700 (LWP 5176)]
[Thread 0x7fffded8a700 (LWP 5176) exited]
[New Thread 0x7fffded8a700 (LWP 5189)]
[Thread 0x7fffded8a700 (LWP 5189) exited]
[New Thread 0x7fffded8a700 (LWP 5191)]
[Thread 0x7fffc7d9a700 (LWP 5156) exited]
[New Thread 0x7fffc7d9a700 (LWP 5192)]
[Thread 0x7fffded8a700 (LWP 5191) exited]
[New Thread 0x7fffded8a700 (LWP 5198)]
[Thread 0x7fffded8a700 (LWP 5198) exited]
[New Thread 0x7fffded8a700 (LWP 5227)]
[Thread 0x7fffded8a700 (LWP 5227) exited]
[New Thread 0x7fffded8a700 (LWP 5315)]
[Thread 0x7fffc7d9a700 (LWP 5192) exited]
[New Thread 0x7fffc7d9a700 (LWP 5317)]
[Thread 0x7fffc7d9a700 (LWP 5317) exited]
[New Thread 0x7fffc7d9a700 (LWP 5323)]
[Thread 0x7fffc7d9a700 (LWP 5323) exited]
[New Thread 0x7fffc7d9a700 (LWP 5332)]
[Thread 0x7fffded8a700 (LWP 5315) exited]
[New Thread 0x7fffded8a700 (LWP 5339)]
[Thread 0x7fffc7d9a700 (LWP 5332) exited]
[New Thread 0x7fffc7d9a700 (LWP 5343)]
[Thread 0x7fffc7d9a700 (LWP 5343) exited]
[New Thread 0x7fffc7d9a700 (LWP 5354)]
[Thread 0x7fffc7d9a700 (LWP 5354) exited]
[New Thread 0x7fffc7d9a700 (LWP 5389)]
[Thread 0x7fffded8a700 (LWP 5339) exited]
[New Thread 0x7fffded8a700 (LWP 5402)]
[Thread 0x7fffc7d9a700 (LWP 5389) exited]
[New Thread 0x7fffc7d9a700 (LWP 5403)]
[Thread 0x7fffc7d9a700 (LWP 5403) exited]
[New Thread 0x7fffc7d9a700 (LWP 5406)]
[Thread 0x7fffded8a700 (LWP 5402) exited]
[Thread 0x7fffc7d9a700 (LWP 5406) exited]
[New Thread 0x7fffc7d9a700 (LWP 5414)]
[New Thread 0x7fffded8a700 (LWP 5415)]
[Thread 0x7fffc7d9a700 (LWP 5414) exited]
[New Thread 0x7fffc7d9a700 (LWP 5420)]
[Thread 0x7fffc7d9a700 (LWP 5420) exited]
[New Thread 0x7fffc7d9a700 (LWP 5430)]
[Thread 0x7fffc7d9a700 (LWP 5430) exited]
[New Thread 0x7fffc7d9a700 (LWP 5431)]
[Thread 0x7fffc7d9a700 (LWP 5431) exited]
[New Thread 0x7fffc7d9a700 (LWP 5432)]
[Thread 0x7fffc7d9a700 (LWP 5432) exited]
[New Thread 0x7fffc7d9a700 (LWP 5435)]
[Thread 0x7fffc7d9a700 (LWP 5435) exited]
[New Thread 0x7fffc7d9a700 (LWP 5437)]
[Thread 0x7fffc7d9a700 (LWP 5437) exited]
[New Thread 0x7fffc7d9a700 (LWP 5439)]
[Thread 0x7fffc7d9a700 (LWP 5439) exited]
[New Thread 0x7fffc7d9a700 (LWP 5440)]

Program received signal SIGSEGV, Segmentation fault.
0x000000000000000a in ?? ()
(gdb) bt
#0 0x000000000000000a in ?? ()
#1 0x00007ffff7807215 in QAbstractItemView::updateEditorGeometries() ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#2 0x00007ffff77fb334 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3 0x00007ffff784359f in QTreeView::rowsRemoved(QModelIndex const&, int, int)
() from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#4 0x00007ffff6a7d281 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5 0x00007ffff6ac96e4 in QAbstractItemModel::rowsRemoved(QModelIndex const&, int, int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6 0x00007ffff6a62f1d in QAbstractItemModel::endRemoveRows() ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7 0x00007ffff787eb2f in QTreeWidgetItem::~QTreeWidgetItem() ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8 0x00007ffff787ed49 in QTreeWidgetItem::~QTreeWidgetItem() ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9 0x00000000005092a7 in TransfersForm::OnUploadEntryRemoved ()
#10 0x00000000005160f3 in EventHandler::Handle ()
#11 0x000000000045266f in Event::Notify ()
#12 0x000000000044da9c in Item::Remove ()
#13 0x00000000004d5049 in TransferQueueManager::RemoveUpload ()
#14 0x000000000050cf52 in TransfersForm::OnActionBarTriggered ()
#15 0x00000000005b97b6 in TransfersForm::qt_metacall ()
---Type to continue, or q to quit---
#16 0x00007ffff6a7d489 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00000000005b6cb2 in ActionSetToolBar::ActionTriggered ()
#18 0x000000000048da6b in ActionSetToolBar::OnActionTriggered ()
#19 0x00000000005b6dcf in ActionSetToolBar::qt_metacall ()
#20 0x00007ffff6a7d489 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#21 0x00007ffff72d1132 in QAction::triggered(bool) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007ffff72d131f in QAction::activate(QAction::ActionEvent) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007ffff76a6d4a in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007ffff76a6ffc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007ffff77645da in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007ffff7328144 in QWidget::event(QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007ffff72d7894 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#28 0x00007ffff72dd0bf in QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007ffff6a68e9c in QCoreApplication::notifyInternal(QObject*, QEvent*)
---Type to continue, or q to quit---
() from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x00007ffff72d8862 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007ffff7357bf5 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007ffff7356bae in QApplication::x11ProcessEvent(_XEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#33 0x00007ffff73800d2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#34 0x00007ffff51edd53 in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff51ee0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff51ee164 in g_main_context_iteration ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff6a983bf in QEventDispatcherGlib::processEvents(QFlags) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#38 0x00007ffff737fd5e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#39 0x00007ffff6a67c82 in QEventLoop::processEvents(QFlags) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#40 0x00007ffff6a67ed7 in QEventLoop::exec(QFlags) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#41 0x00007ffff6a6cf67 in QCoreApplication::exec() ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#42 0x0000000000419c7a in main ()

Thank you Nir and keep up with your awesome work.

Hi woolworm,

I think I got the same bug on Windows when I was using the 4.8.* Qt libraries. The crash does not occur with 4.7.*, which is what SoulseekQt is originally compiled against. Can you check the version of the Qt libraries on your Linux machine?

woolworm's picture

Hi Nir,

I checked on my synaptics package administration panel, and it seems I have this exact version of the Qt libraries installed: 4:4.8.1-0ubuntu4.3.

Yeah, that's 4.8.1 there. That's a bug in the library, and I haven't found a way to get around it. If you have the option of downgrading to 4.7.4, I'd recommend that as it's generally more stable than the 4.8.* variety.

woolworm's picture

It seems that the 4.7.4 is the version used in the Mint 12 (Lisa) distro, and since I have the version 13 (Maya) it happened that the Qt libraries have upgraded to 4.8.1 (I actually read that in the actual Mint version 14 (Nadia) it's automatically upgraded to 4.8.3 as seen here http://distrowatch.com/table.php?distribution=mint). So it seems not a real bug, just a normal process of library upgrades that comes with the Mint distros.

So I searched a bit around the web looking for a legit 4.7.4 package, but it appears there's no way to get it. I tried to look in the Qt releases page, but there's no sign of the 4.7.4 (http://releases.qt-project.org/qt4/source/).

What do you recommend? There's a Soulseek build I can use at the moment that has a compatible library with the one I'm using?

Are you using a 32-bit or 64-bit version of Linux? I can try statically linking Qt to the SoulseekQt executable.

woolworm's picture

I am using a 64-bit version of Linux.

Try this one:

http://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-11-22-2012-64bit-stat...

Unfortunately, it appears I'm not allowed to distribute SoulseekQt with Qt statically linked without a commercial license, so I'm not going to be able to provide those on a regular basis...

woolworm's picture

Thank you Nir, I will use it and keep you updated about the crashes. But I have a few questions: what is really changed in this version you gave me? Does it mean that Soulseek Qt will not work properly in the most recent versions of Linux Mint?

Thank you again.

The executable I linked you to actually contains a copy of the 4.7.4 Qt libraries to be used instead of whatever Qt libraries you happen to have on your system. That's why it's considerably bigger. According to the Qt license, I'm not allowed to distribute statically-linked versions of my program without a commercial license, which I don't have.

woolworm's picture

I see. I hope that the developing of Soulseek Qt for Linux will not be put aside because of these libraries issues.

Anyway, thanks for your help Nir, you are an awesome dude.

Thank you woolworm! I have no plans of giving up on SoulseekQt for Linux, it's just that it'll have to use whatever Qt libraries happen to be on the machine, compatibility problems and all. Hopefully the particular bug you reported will be fixed in a future version of 4.8.*.

Turns out it was something I was doing after all. It has to do with the way the progress bar on the user line is removed when expanding a user who only has one download folder from them. I delete the progress bar object but do not officially remove it from the user line. For some reason this works fine with Qt 4.7.4 but not 4.8.*. This should hopefully let you use SoulseekQt with your existing libraries, and will apply to all future releases:

http://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-11-26-2012-64bit.tgz

Thanks, Nir