Summary: | vlc crashes on opening file (open file browser) | ||
---|---|---|---|
Product: | [Unmaintained] kdelibs | Reporter: | Hans Reisner <hans> |
Component: | kdecore | Assignee: | kdelibs bugs <kdelibs-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aacid, bcooksley, fabo, frank78ac, hans, jb, martin.sandsmark, myriam |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.6.5 | |
Sentry Crash Report: | |||
Attachments: |
logfile from valgrind vlc
Valgrind log for VLC run on KDE master logfile from valgrind --num-callers=12 logfile from valgrind --num-callers=20 |
Description
Hans Reisner
2011-05-26 08:33:37 UTC
Created attachment 60342 [details]
logfile from valgrind vlc
This is the output of
valgrind vlc
maybe it can help; but the crash does not happen in valgrind
I'm sorry, another information: If I run vlc in valgrind I get some messages (not included in logfile): [0x6418fd0] signals interface error: signal 17 overriden (0x189a4450) [0x6418fd0] signals interface error: /usr/lib/libQtCore.so.4(?)[(nil)] [0x6418fd0] signals interface error: signal 17 overriden (0x189a4450) [0x6418fd0] signals interface error: /usr/lib/libQtCore.so.4(?)[(nil)] This happens on opening file dialog. Another test: This happens only with the actual version of kde/kdm (from natty repositories). I tried this with xdm/xfce, there it works like it should (file browser opens to select a file) Hans Thanks for the bug report! I can confirm with VLC 1.1.9 (on OpenSuse 11.4) with KDE from master. Just like you, I get the crash only when not running VLC with Valgrind (Valgrind reports lots of errors though). Note that there is another bug report about VLC and the file open dialog (bug 234484), but that crash happens when closing VLC. Backtrace: (gdb) bt #0 0x00007ffff717dab5 in raise () from /lib64/libc.so.6 #1 0x00007ffff717efb6 in abort () from /lib64/libc.so.6 #2 0x00007ffff71b8dd3 in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff71be3b6 in malloc_printerr () from /lib64/libc.so.6 #4 0x00007ffff71c0f13 in _int_malloc () from /lib64/libc.so.6 #5 0x00007ffff71c2d99 in malloc () from /lib64/libc.so.6 #6 0x00007fffe0da1950 in qMalloc (size=239) at global/qmalloc.cpp:55 #7 0x00007fffe0dad7e7 in QByteArray::resize (this=0x7fffb5fa9d70, size=207) at tools/qbytearray.cpp:1386 #8 0x00007fffe0f0be74 in QUtf8::convertFromUnicode (uc=0xce14fa, len=69, state=0x0) at codecs/qutfcodec.cpp:79 #9 0x00007fffe0f0d469 in QUtf8Codec::convertFromUnicode (this=0x936970, uc=0xce14fa, len=69, state=0x0) at codecs/qutfcodec.cpp:522 #10 0x00007fffe0f0908f in QTextCodec::fromUnicode (this=0x936970, str=...) at codecs/qtextcodec.cpp:1382 #11 0x00007fffe0e0384c in QString::toLocal8Bit (this=0x7fffb5fa9e50) at tools/qstring.cpp:3677 #12 0x00007fffe0e4b82e in locale_encode (f=...) at io/qfile.cpp:71 #13 0x00007fffe0e4c23e in QFile::encodeName (fileName=...) at io/qfile.cpp:482 #14 0x00007fffb3c168f9 in KStandardDirs::exists (fullPath=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kstandarddirs.cpp:590 #15 0x00007fffb3c1681f in KStandardDirs::findResourceDir (this=0xccfe80, type=0x7fffb3d5b87f "locale", _filename=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kstandarddirs.cpp:566 #16 0x00007fffb3c15eee in KStandardDirs::findResource (this=0xccfe80, type=0x7fffb3d5b87f "locale", _filename=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kstandarddirs.cpp:474 #17 0x00007fffb3c1f048 in KStandardDirs::locate (type=0x7fffb3d5b87f "locale", filename=..., cData=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kstandarddirs.cpp:2101 #18 0x00007fffb3cbf74f in KLocalizedStringPrivate::notifyCatalogsUpdated (languages=..., catalogs=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/localization/klocalizedstring.cpp:1001 #19 0x00007fffb3cbf42b in KLocalizedString::notifyCatalogsUpdated (languages=..., catalogs=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/localization/klocalizedstring.cpp:974 #20 0x00007fffb3cab938 in KLocalePrivate::updateCatalogs (this=0xc8f4b0) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/localization/klocale_kde.cpp:857 #21 0x00007fffb3cabac6 in KLocalePrivate::setActiveCatalog (this=0xc8f4b0, catalog=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/localization/klocale_kde.cpp:886 #22 0x00007fffb3ca3a20 in KLocale::setActiveCatalog (this=0xc94940, catalog=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/localization/klocale.cpp:148 #23 0x00007fffb3c130a7 in KGlobal::setActiveComponent (c=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kglobal.cpp:241 #24 0x00007fffb3c13108 in KGlobal::newComponentData (c=...) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kglobal.cpp:252 #25 0x00007fffb3c13e87 in KComponentData::KComponentData (this=0x7fffb5faa440, name=..., catalog=..., registerAsMain=KComponentData::RegisterAsMainComponent) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/kernel/kcomponentdata.cpp:86 #26 0x00007fffb3cfe414 in KPluginFactory::KPluginFactory (this=0xcca830, componentName=0x7fffaa761c6b "kfilemodule", catalogName=0x0, parent=0x0) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/util/kpluginfactory.cpp:40 #27 0x00007fffaa7611f4 in KFileModuleFactory::KFileModuleFactory (this=0xcca830, componentName=0x7fffaa761c6b "kfilemodule", catalogName=0x0, parent=0x0) at /home/kde-devel/kde/src/KDE/kdelibs/kfile/kfilemodule.cpp:26 #28 0x00007fffaa761457 in qt_plugin_instance () at /home/kde-devel/kde/src/KDE/kdelibs/kfile/kfilemodule.cpp:27 #29 0x00007fffe0ea916b in QPluginLoader::instance (this=0x7fffb5faa5e0) at plugin/qpluginloader.cpp:204 #30 0x00007fffb3d01102 in KPluginLoader::factory (this=0x7fffb5faa5e0) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/util/kpluginloader.cpp:201 #31 0x00007fffb4e39c88 in KService::createInstance<KAbstractFileModule> (this=0xccb470, parentWidget=0x0, parent=0x0, args=..., error=0x0) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/services/kservice.h:549 #32 0x00007fffb4e39907 in KService::createInstance<KAbstractFileModule> (this=0xccb470, parent=0x0, args=..., error=0x0) at /home/kde-devel/kde/src/KDE/kdelibs/kdecore/services/kservice.h:528 #33 0x00007fffb4e33da8 in loadFileModule (moduleName=...) at /home/kde-devel/kde/src/KDE/kdelibs/kio/kfile/kfiledialog.cpp:146 #34 0x00007fffb4e33eb1 in fileModule () at /home/kde-devel/kde/src/KDE/kdelibs/kio/kfile/kfiledialog.cpp:156 #35 0x00007fffb4e3410e in KFileDialog::KFileDialog (this=0x7fffb5faa970, startDir=..., filter=..., parent=0x0, customWidget=0x0) at /home/kde-devel/kde/src/KDE/kdelibs/kio/kfile/kfiledialog.cpp:269 #36 0x00007fffb4e39335 in KFileDialogQtOverride::getOpenFileNames (parent=0x0, caption=..., dir=..., filter=..., selectedFilter=0x0, options=...) at /home/kde-devel/kde/src/KDE/kdelibs/kio/kfile/kfiledialog.cpp:1224 #37 0x00007fffe1ade851 in QFileDialog::getOpenFileNames (parent=0x0, caption=..., dir=..., filter=..., selectedFilter=0x0, options=...) at dialogs/qfiledialog.cpp:1789 #38 0x00007fffe2301401 in DialogsProvider::showSimpleOpen(QString const&, int, QString const&) () from /usr/lib64/vlc/plugins/gui/libqt4_plugin.so #39 0x00007fffe2302000 in DialogsProvider::addFromSimple(bool, bool) () from /usr/lib64/vlc/plugins/gui/libqt4_plugin.so #40 0x00007fffe23cc9e2 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/vlc/plugins/gui/libqt4_plugin.so #41 0x00007fffe0eceba7 in QMetaObject::metacall (object=0xa6f510, cl=QMetaObject::InvokeMetaMethod, idx=23, argv=0x7fffb5fab040) at kernel/qmetaobject.cpp:237 #42 0x00007fffe0ee3c83 in QMetaObject::activate (sender=0xb35120, m=0x7fffe21f6be0, local_signal_index=1, argv=0x7fffb5fab040) at kernel/qobject.cpp:3278 #43 0x00007fffe14af4ce in QAction::triggered (this=0xb35120, _t1=false) at .moc/debug-shared/moc_qaction.cpp:263 #44 0x00007fffe14ae7d0 in QAction::activate (this=0xb35120, event=QAction::Trigger) at kernel/qaction.cpp:1257 #45 0x00007fffe1a2e7a4 in QMenuPrivate::activateCausedStack (this=0xb615e0, causedStack=..., action=0xb35120, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:993 #46 0x00007fffe1a2ec6d in QMenuPrivate::activateAction (this=0xb615e0, action=0xb35120, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1085 According to the valgrind log, there is something fishy going on when the file dialog initializes the KDE main component and sets up translation stuff there. I do not see anything in my valgrind log regarding i18n in master, what i see is this crash at destruction #0 0xb230f9a5 in ?? () from /usr/lib/libQtDBus.so.4 #1 0xb230fd9b in ?? () from /usr/lib/libQtDBus.so.4 #2 0xb39554cd in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #3 0xb396428a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #4 0xb3964725 in QObject::destroyed(QObject*) () from /usr/lib/libQtCore.so.4 #5 0xb39677fd in QObject::~QObject() () from /usr/lib/libQtCore.so.4 #6 0xb29556d3 in KIO::Scheduler::~Scheduler (this=0x8463188, __in_chrg=<value optimized out>) at /home/kdesvn/kdelibs/kio/kio/scheduler.cpp:773 #7 0xb295570d in KIO::Scheduler::~Scheduler (this=0x8463188, __in_chrg=<value optimized out>) at /home/kdesvn/kdelibs/kio/kio/scheduler.cpp:775 #8 0xb2959c91 in KIO::SchedulerPrivate::~SchedulerPrivate (this=0x84630f0, __in_chrg=<value optimized out>) at /home/kdesvn/kdelibs/kio/kio/scheduler.cpp:669 #9 0xb29553f2 in destroy () at /home/kdesvn/kdelibs/kio/kio/scheduler.cpp:737 #10 0xb28ae487 in KCleanUpGlobalStatic::~KCleanUpGlobalStatic (this=0xb2ac4350, __in_chrg=<value optimized out>) at /home/kdesvn/kdelibs/kdecore/kernel/kglobal.h:62 #11 0xb7d52c31 in ?? () from /lib/libc.so.6 #12 0xb7d52cbd in exit () from /lib/libc.so.6 #13 0xb7d3b10b in __libc_start_main () from /lib/libc.so.6 #14 0x080491bd in ?? () ==12139== Thread 1: ==12139== Invalid read of size 4 ==12139== at 0xBD029A5: ??? (in /usr/lib/libQtDBus.so.4.7.3) ==12139== by 0xBD02D9A: ??? (in /usr/lib/libQtDBus.so.4.7.3) ==12139== by 0x94314CC: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0x9440289: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0x9440724: QObject::destroyed(QObject*) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0xB6AA70C: KIO::Scheduler::~Scheduler() (scheduler.cpp:775) ==12139== by 0xB6AEC90: KIO::SchedulerPrivate::~SchedulerPrivate() (scheduler.cpp:669) ==12139== by 0xB6AA3F1: ._226::destroy() (scheduler.cpp:737) ==12139== by 0xB603486: KCleanUpGlobalStatic::~KCleanUpGlobalStatic() (kglobal.h:62) ==12139== by 0x41B1C30: ??? (in /lib/libc-2.13.so) ==12139== by 0x41B1CBC: exit (in /lib/libc-2.13.so) ==12139== by 0x419A10A: (below main) (in /lib/libc-2.13.so) ==12139== Address 0x4 is not stack'd, malloc'd or (recently) free'd ==12139== ==12139== ==12139== Process terminating with default action of signal 11 (SIGSEGV) ==12139== Access not within mapped region at address 0x4 ==12139== at 0xBD029A5: ??? (in /usr/lib/libQtDBus.so.4.7.3) ==12139== by 0xBD02D9A: ??? (in /usr/lib/libQtDBus.so.4.7.3) ==12139== by 0x94314CC: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0x9440289: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0x9440724: QObject::destroyed(QObject*) (in /usr/lib/libQtCore.so.4.7.3) ==12139== by 0xB6AA70C: KIO::Scheduler::~Scheduler() (scheduler.cpp:775) ==12139== by 0xB6AEC90: KIO::SchedulerPrivate::~SchedulerPrivate() (scheduler.cpp:669) ==12139== by 0xB6AA3F1: ._226::destroy() (scheduler.cpp:737) ==12139== by 0xB603486: KCleanUpGlobalStatic::~KCleanUpGlobalStatic() (kglobal.h:62) ==12139== by 0x41B1C30: ??? (in /lib/libc-2.13.so) ==12139== by 0x41B1CBC: exit (in /lib/libc-2.13.so) ==12139== by 0x419A10A: (below main) (in /lib/libc-2.13.so) Created attachment 60473 [details] Valgrind log for VLC run on KDE master Albert, the crash you're seeing looks like it might be bug 234484. My attached Valgrind log (VLC 1.1.9 run with yesterday's KDE master) shows some localization-related stuff (I've pasted the first reported issue below). Note that the following warning message is output before the Valgrind warning: KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work ==27944== Invalid read of size 8 ==27944== at 0x1BC71B66: QString::length() const (qstring.h:700) ==27944== by 0x1BCB76D0: QtPrivate::QStringList_contains(QStringList const*, QString const&, Qt::CaseSensitivity) (qstringlist.cpp:318) ==27944== by 0x4B8D8980: QStringList::contains(QString const&, Qt::CaseSensitivity) const (qstringlist.h:171) ==27944== by 0x4BA4778F: KLocalizedStringPrivate::notifyCatalogsUpdated(QStringList const&, QList<KCatalogName> const&) (klocalizedstring.cpp:1005) ==27944== by 0x4BA4742A: KLocalizedString::notifyCatalogsUpdated(QStringList const&, QList<KCatalogName> const&) (klocalizedstring.cpp:974) ==27944== by 0x4BA33937: KLocalePrivate::updateCatalogs() (klocale_kde.cpp:857) ==27944== by 0x4BA33AC5: KLocalePrivate::setActiveCatalog(QString const&) (klocale_kde.cpp:886) ==27944== by 0x4BA2BA1F: KLocale::setActiveCatalog(QString const&) (klocale.cpp:148) ==27944== by 0x4B99B0A6: KGlobal::setActiveComponent(KComponentData const&) (kglobal.cpp:241) ==27944== by 0x4B99B107: KGlobal::newComponentData(KComponentData const&) (kglobal.cpp:252) ==27944== by 0x4B99BE86: KComponentData::KComponentData(QByteArray const&, QByteArray const&, KComponentData::MainComponentRegistration) (kcomponentdata.cpp:86) ==27944== by 0x4BA863F7: KPluginFactory::KPluginFactory(char const*, char const*, QObject*) (kpluginfactory.cpp:40) ==27944== Address 0x4856dae0 is 0 bytes inside a block of size 16 free'd ==27944== at 0x4C2562E: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==27944== by 0x4BA41B80: QList<KCatalogName>::node_destruct(QList<KCatalogName>::Node*, QList<KCatalogName>::Node*) (qlist.h:418) ==27944== by 0x4BA40DD6: QList<KCatalogName>::free(QListData::Data*) (qlist.h:742) ==27944== by 0x4BA3F8F9: QList<KCatalogName>::~QList() (qlist.h:717) ==27944== by 0x4BA2F004: KLocalePrivate::~KLocalePrivate() (klocale_kde.cpp:219) ==27944== by 0x4BA8E513: KLocaleUnixPrivate::~KLocaleUnixPrivate() (klocale_unix.cpp:47) ==27944== by 0x4BA8E545: KLocaleUnixPrivate::~KLocaleUnixPrivate() (klocale_unix.cpp:49) ==27944== by 0x4BA2B659: KLocale::~KLocale() (klocale.cpp:72) ==27944== by 0x4BA2B68B: KLocale::~KLocale() (klocale.cpp:73) ==27944== by 0x4B99ACF0: KGlobal::locale() (kglobal.cpp:183) ==27944== by 0x4B99DFD2: KStandardDirs::findResource(char const*, QString const&) const (kstandarddirs.cpp:479) ==27944== by 0x4B9A7047: KStandardDirs::locate(char const*, QString const&, KComponentData const&) (kstandarddirs.cpp:2101) " KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work " is "harmless" as in it should not make your app crash The valgrind trace looks ugly though. Can you please run valgrind with a higher num-callers so i might try to understand the crash better? Hey Albert, here is the output (std) of valgrind --num-callers=12 --log-file=/home/hans/vlc_crash.log vlc VLC media player 1.1.9 The Luggage (revision exported) Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS") Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE") [0x61bb7b0] main libvlc: VLC wird mit dem Standard-Interface ausgeführt. Benutzen Sie 'cvlc', um VLC ohne Interface zu verwenden. Blocked: call to setlocale(6, "") Blocked: call to setlocale(6, "") Blocked: call to putenv("LANGUAGE=") KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work Warning: call to srand(1157411441) Warning: call to rand() [0x6455c20] signals interface error: signal 17 overriden (0x13282450) [0x6455c20] signals interface error: /usr/lib/libQtCore.so.4(?)[(nil)] [0x6455c20] signals interface error: signal 17 overriden (0x13282450) [0x6455c20] signals interface error: /usr/lib/libQtCore.so.4(?)[(nil)] QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: Datei oder Verzeichnis nicht gefunden QFileSystemWatcher: failed to add paths: /home/hans/.config/ibus/bus ^C[0x6455c20] signals interface error: Caught Unterbrechung signal, exiting... Getötet I will attach the logfile of valgrind with num-callers=12 Created attachment 60629 [details]
logfile from valgrind --num-callers=12
This is the logfile described in my last post (valgrind num-callers=12)
12 is the default, i need a few more, can you run it with 20? Albert, I'm sorry, I'm not really firm with valgrind... You'll get the log in a few minutes. Created attachment 60630 [details]
logfile from valgrind --num-callers=20
logfile from valgrind --num-callers=20
Ok, got it t reproduce now :-) Looking at your trace realized I actually needed to have more than one language configured and use the qplatformintregration_kde loaded Will have a look in the coming days https://git.reviewboard.kde.org/r/101509/ for the patch Commited |