PDA

View Full Version : Issues upgrading Ubuntu (9.10 to 10.04) and Qt (4.5.2 to 4.6.2)



bobrien
1st March 2011, 17:24
Good Morning,

I recently upgraded some development machines from Ubuntu 9.10 to 10.04 LTS, using both the standard Ubuntu upgrade route and a clean install. Qt appears to have been upgraded from the Ubuntu repositories from 4.5.2 to 4.6.2 during this process.

I've had no compilation issues at all, but during runtime I am receiving segmentation faults when trying to generate a file dialog window using the QFileDialog static methods. If I don't use the file dialog windows, the entire app (a qt based user interface) works flawlessly.

The offending calls are:

dirname = QFileDialog::getExistingDirectory(this, tr("Select Folder"), QDir::currentPath());

and

QStringList files = QFileDialog::getOpenFileNames(this, tr("Select Files"), QDir::currentPath(), tr("Images (*.png *.jpg)"));

The class that "this" refers to extends public QMainWindow, and has the Q_OBJECT macro in its definition. Please note that this code (and these calls) have been operating flawlessly for almost a year.

GDB is not a ton of help - I can see what its trying to do, but its not giving me any clues as to why its failing (see below).

I'm concerned this is a library issue, but I can't track down its source. I don't see anything glaring in the Qt change logs from 4.5.2 to 4.6.2 to indicate the root cause. Does anyone have any thoughts on where to look?

Thanks,
Barry


Program received signal SIGSEGV, Segmentation fault.
__strncmp_sse42 () at ../sysdeps/x86_64/multiarch/strcmp.S:130
130 ../sysdeps/x86_64/multiarch/strcmp.S: No such file or directory.
in ../sysdeps/x86_64/multiarch/strcmp.S
(gdb) bt
#0 __strncmp_sse42 () at ../sysdeps/x86_64/multiarch/strcmp.S:130
#1 0x00007fffeea4bcca in __xmlParserInputBufferCreateFilename () from /usr/lib/libxml2.so.2
#2 0x00007fffeead1075 in xmlNewTextReaderFilename () from /usr/lib/libxml2.so.2
#3 0x00007fffe2a7995e in ?? () from /usr/lib/libgnomevfs-2.so.0
#4 0x00007fffe2a79ef4 in gnome_vfs_mime_get_value () from /usr/lib/libgnomevfs-2.so.0
#5 0x00007fffe3a7f088 in gnome_icon_lookup () from /usr/lib/libgnomeui-2.so.0
#6 0x00007fffe3a7f61d in gnome_icon_lookup_sync () from /usr/lib/libgnomeui-2.so.0
#7 0x00007ffff4f04d54 in ?? () from /usr/lib/libQtGui.so.4
#8 0x00007ffff514aea8 in QFileIconProvider::icon(QFileInfo const&) const () from /usr/lib/libQtGui.so.4
#9 0x00007ffff50848b8 in ?? () from /usr/lib/libQtGui.so.4
#10 0x00007ffff507d54f in ?? () from /usr/lib/libQtGui.so.4
#11 0x00007ffff507e5b3 in QFileSystemModel::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#12 0x00007ffff46bcd49 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#13 0x00007ffff507796e in QFileSystemModel::event(QEvent*) () from /usr/lib/libQtGui.so.4
#14 0x00007ffff4b8022c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#15 0x00007ffff4b866fb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007ffff46ad06c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#17 0x00007ffff46af7e7 in QCoreApplicationPrivate::sendPostedEvents(QObject* , int, QThreadData*) () from /usr/lib/libQtCore.so.4
#18 0x00007ffff46d69d3 in ?? () from /usr/lib/libQtCore.so.4
#19 0x00007fffef4908c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#20 0x00007fffef494748 in ?? () from /lib/libglib-2.0.so.0
#21 0x00007fffef4948fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#22 0x00007ffff46d6513 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#23 0x00007ffff4c3046e in ?? () from /usr/lib/libQtGui.so.4
#24 0x00007ffff46ab992 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#25 0x00007ffff46abd6c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#26 0x00007ffff504a09e in QDialog::exec() () from /usr/lib/libQtGui.so.4
#27 0x00007ffff505dc3a in QFileDialog::getExistingDirectory(QWidget*, QString const&, QString const&, QFlags<QFileDialog::Option>) ()
from /usr/lib/libQtGui.so.4