> On May 16, 2015, 7:13 p.m., Andreas Hartmetz wrote:
> > Sorry, this has a major flaw: KNotification may pop up a window which is 
> > clearly not what you want as a login "sound". Worse, this window is created 
> > from a secondary thread which will cause an assertion to fail and kill 
> > ksmserver, preventing session startup.
> > You have to be REALLY careful with multi-threading in Qt and especially KDE 
> > applications if you do anything but number crunching in a non-GUI thread.
> > (I think I have disabled all sounds or something because I don't like 
> > system sounds)
> > Here is the backtrace:
> > 
> > 
> > root@rechenplan:/cores# gdb /opt/kde5/bin/kdeinit5 
> > core.NotificationThr.9529 
> > GNU gdb (Ubuntu 7.9-1ubuntu1) 7.9
> > Copyright (C) 2015 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later 
> > <http://gnu.org/licenses/gpl.html>
> > This is free software: you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> > and "show warranty" for details.
> > This GDB was configured as "x86_64-linux-gnu".
> > Type "show configuration" for configuration details.
> > For bug reporting instructions, please see:
> > <http://www.gnu.org/software/gdb/bugs/>.
> > Find the GDB manual and other documentation resources online at:
> > <http://www.gnu.org/software/gdb/documentation/>.
> > For help, type "help".
> > Type "apropos word" to search for commands related to "word"...
> > Reading symbols from /opt/kde5/bin/kdeinit5...done.
> > 
> > warning: core file may not match specified executable file.
> > [New LWP 9681]
> > [New LWP 9533]
> > [New LWP 9532]
> > [New LWP 9529]
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> > Core was generated by `ksmserver [kdeinit5]                                 
> >       '.
> > Program terminated with signal SIGABRT, Aborted.
> > #0  0x00007f1259dfa267 in __GI_raise (sig=6) at 
> > ../sysdeps/unix/sysv/linux/raise.c:55
> > 55      ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht 
> > gefunden.
> > (gdb) thread apply all bt
> > 
> > Thread 4 (Thread 0x7f125af63780 (LWP 9529)):
> > #0  0x00007f1259ec08dd in poll () at ../sysdeps/unix/syscall-template.S:81
> > #1  0x00007f125736eebc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > #2  0x00007f125736efcc in g_main_context_iteration () from 
> > /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > #3  0x00007f125a46bcec in QEventDispatcherGlib::processEvents 
> > (this=0x953c90, flags=...)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:418
> > #4  0x00007f124c2ed242 in QPAEventDispatcherGlib::processEvents 
> > (this=<optimized out>, flags=...)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:115
> > #5  0x00007f125a4143b0 in QEventLoop::processEvents 
> > (this=this@entry=0x7fffd24ff0f0, flags=..., flags@entry=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:128
> > #6  0x00007f125a4147bd in QEventLoop::exec (this=this@entry=0x7fffd24ff0f0, 
> > flags=..., flags@entry=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:204
> > #7  0x00007f125a41c17a in QCoreApplication::exec () at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qcoreapplication.cpp:1188
> > #8  0x00007f125a756a4a in QGuiApplication::exec () at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/gui/kernel/qguiapplication.cpp:1507
> > #9  0x00007f125914e301 in QApplication::exec () at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qapplication.cpp:2956
> > #10 0x00007f124e338bfe in kdemain (argc=1, argv=<optimized out>)
> >     at 
> > /home/horst/ksrc5/kde/workspace/plasma-workspace/ksmserver/main.cpp:330
> > #11 0x0000000000407d17 in launch (argc=argc@entry=1, 
> > _name=_name@entry=0x8e1ad8 "ksmserver", args=<optimized out>, 
> >     args@entry=0x8e1ae2 "/home/horst", cwd=cwd@entry=0x8e1ae2 
> > "/home/horst", envc=envc@entry=51, envs=<optimized out>, 
> >     envs@entry=0x8e1af6 
> > "QML_IMPORT_PATH=/opt/kde5/lib/qml:/opt/kde5/lib64/qml:/opt/kde5/lib/x86_64-linux-gnu/qml:/opt/kde5/qml",
> >  
> >     reset_env=true, tty=0x8e239e "", avoid_loops=false, 
> > startup_id_str=0x8e23a7 "")
> >     at /home/horst/ksrc5/frameworks/kinit/src/kdeinit/kinit.cpp:741
> > #12 0x00000000004087ca in handle_launcher_request (sock=sock@entry=5, 
> > who=who@entry=0x40bc09 "wrapper")
> >     at /home/horst/ksrc5/frameworks/kinit/src/kdeinit/kinit.cpp:1180
> > #13 0x0000000000409127 in handle_requests (waitForPid=waitForPid@entry=0)
> >     at /home/horst/ksrc5/frameworks/kinit/src/kdeinit/kinit.cpp:1361
> > #14 0x000000000040ab88 in main (argc=5, argv=<optimized out>) at 
> > /home/horst/ksrc5/frameworks/kinit/src/kdeinit/kinit.cpp:1860
> > 
> > Thread 3 (Thread 0x7f124a6d7700 (LWP 9532)):
> > #0  0x00007f1259ec08dd in poll () at ../sysdeps/unix/syscall-template.S:81
> > #1  0x00007f12598a0b72 in poll (__timeout=-1, __nfds=1, 
> > __fds=0x7f124a6d6d50) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
> > #2  _xcb_conn_wait (c=c@entry=0x921ba0, cond=cond@entry=0x921be0, 
> > vector=vector@entry=0x0, count=count@entry=0x0)
> >     at ../../src/xcb_conn.c:447
> > #3  0x00007f12598a264f in xcb_wait_for_event (c=0x921ba0) at 
> > ../../src/xcb_in.c:622
> > #4  0x00007f124c2bfa31 in QXcbEventReader::run (this=0x92fff0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1105
> > #5  0x00007f125a231643 in QThreadPrivate::start (arg=0x92fff0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread_unix.cpp:337
> > #6  0x00007f12589c66aa in start_thread (arg=0x7f124a6d7700) at 
> > pthread_create.c:333
> > #7  0x00007f1259ecbeed in clone () at 
> > ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
> > 
> > Thread 2 (Thread 0x7f12499e3700 (LWP 9533)):
> > #0  0x00007f1259ec2743 in select () at ../sysdeps/unix/syscall-template.S:81
> > #1  0x00007f125a3be87a in QProcessManager::run (this=0x963650)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/io/qprocess_unix.cpp:264
> > #2  0x00007f125a231643 in QThreadPrivate::start (arg=0x963650)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread_unix.cpp:337
> > #3  0x00007f12589c66aa in start_thread (arg=0x7f12499e3700) at 
> > pthread_create.c:333
> > #4  0x00007f1259ecbeed in clone () at 
> > ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
> > 
> > Thread 1 (Thread 0x7f1243fff700 (LWP 9681)):
> > #0  0x00007f1259dfa267 in __GI_raise (sig=6) at 
> > ../sysdeps/unix/sysv/linux/raise.c:55
> > #1  0x00007f125b0d5c15 in KCrash::defaultCrashHandler (sig=6) at 
> > /home/horst/ksrc5/frameworks/kcrash/src/kcrash.cpp:409
> > #2  <signal handler called>
> > #3  0x00007f1259dfa267 in __GI_raise (sig=sig@entry=6) at 
> > ../sysdeps/unix/sysv/linux/raise.c:55
> > #4  0x00007f1259dfbeca in __GI_abort () at abort.c:89
> > #5  0x00007f125a21f8f6 in qt_message_fatal (message=..., context=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qlogging.cpp:1422
> > #6  QMessageLogger::fatal (this=this@entry=0x7f1243ffe530, 
> >     msg=msg@entry=0x7f125a4b7720 "ASSERT failure in %s: \"%s\", file %s, 
> > line %d")
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qlogging.cpp:643
> > ---Type <return> to continue, or q <return> to quit---
> > #7  0x00007f125a21b078 in qt_assert_x (where=where@entry=0x7f12594f580b 
> > "QWidget", 
> >     what=what@entry=0x7f12594ea5f8 "Widgets must be created in the GUI 
> > thread.", 
> >     file=file@entry=0x7f12594e9b30 
> > "/opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qwidget.cpp", 
> > line=line@entry=1126)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qglobal.cpp:2876
> > #8  0x00007f125919cf69 in QWidgetPrivate::init (this=0x7f1238003a20, 
> > parentWidget=<optimized out>, parentWidget@entry=0x0, 
> >     f=f@entry=...) at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qwidget.cpp:1125
> > #9  0x00007f125919d41a in QWidget::QWidget (this=0x7f12380039e0, dd=..., 
> > parent=0x0, f=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qwidget.cpp:1026
> > #10 0x00007f12591afaf3 in QDesktopWidget::QDesktopWidget 
> > (this=0x7f12380039e0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qdesktopwidget.cpp:131
> > #11 0x00007f125914e276 in QApplication::desktop () at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qapplication.cpp:2849
> > #12 0x00007f12526a4e2a in NotifyByPopup::NotifyByPopup 
> > (this=0x7f12380038b0, parent=<optimized out>)
> >     at /home/horst/ksrc5/frameworks/knotifications/src/notifybypopup.cpp:162
> > #13 0x00007f1252691b9e in KNotificationManager::KNotificationManager (
> >     this=0x7f12526c7490 <(anonymous 
> > namespace)::Q_QGS_s_self::innerFunction()::holder>)
> >     at 
> > /home/horst/ksrc5/frameworks/knotifications/src/knotificationmanager.cpp:72
> > #14 0x00007f12526925de in KNotificationManagerSingleton (this=<optimized 
> > out>)
> >     at 
> > /home/horst/ksrc5/frameworks/knotifications/src/knotificationmanager.cpp:53
> > #15 Holder (this=<optimized out>) at 
> > /home/horst/ksrc5/frameworks/knotifications/src/knotificationmanager.cpp:59
> > #16 innerFunction () at 
> > /home/horst/ksrc5/frameworks/knotifications/src/knotificationmanager.cpp:59
> > #17 operator() (this=<optimized out>) at 
> > /opt/kde5/include/QtCore/qglobalstatic.h:129
> > #18 KNotificationManager::self () at 
> > /home/horst/ksrc5/frameworks/knotifications/src/knotificationmanager.cpp:63
> > #19 0x00007f125268eee4 in KNotification::sendEvent (this=0x7f12380013a0)
> >     at /home/horst/ksrc5/frameworks/knotifications/src/knotification.cpp:397
> > #20 0x00007f12526b2101 in KNotification::qt_static_metacall (_o=<optimized 
> > out>, _c=<optimized out>, _id=<optimized out>, 
> >     _a=<optimized out>) at src/moc_knotification.cpp:130
> > #21 0x00007f125a441487 in QMetaCallEvent::placeMetaCall 
> > (this=0x7f1238003460, object=0x7f12380013a0)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:485
> > #22 0x00007f125a4425c4 in QObject::event (this=0x7f12380013a0, e=<optimized 
> > out>)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:1245
> > #23 0x00007f1259152778 in QApplicationPrivate::notify_helper 
> > (this=this@entry=0x913330, receiver=receiver@entry=0x7f12380013a0, 
> >     e=e@entry=0x7f1238003460) at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qapplication.cpp:3720
> > #24 0x00007f1259157bb6 in QApplication::notify (this=0x913280, 
> > receiver=0x7f12380013a0, e=0x7f1238003460)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/widgets/kernel/qapplication.cpp:3164
> > #25 0x00007f125a41538d in QCoreApplication::notifyInternal (this=0x913280, 
> > receiver=receiver@entry=0x7f12380013a0, 
> >     event=event@entry=0x7f1238003460) at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qcoreapplication.cpp:935
> > #26 0x00007f125a419014 in sendEvent (event=0x7f1238003460, 
> > receiver=0x7f12380013a0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qcoreapplication.h:228
> > #27 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, 
> > event_type=event_type@entry=0, data=0x991fe0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qcoreapplication.cpp:1552
> > #28 0x00007f125a4194c4 in QCoreApplication::sendPostedEvents 
> > (receiver=receiver@entry=0x0, event_type=event_type@entry=0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qcoreapplication.cpp:1410
> > #29 0x00007f125a46bbd2 in postEventSourceDispatch (s=0x7f12380012d0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:271
> > #30 0x00007f125736ec3d in g_main_context_dispatch () from 
> > /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > #31 0x00007f125736ef20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > #32 0x00007f125736efcc in g_main_context_iteration () from 
> > /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > #33 0x00007f125a46bcec in QEventDispatcherGlib::processEvents 
> > (this=0x7f12380008c0, flags=...)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:418
> > #34 0x00007f125a4143b0 in QEventLoop::processEvents 
> > (this=this@entry=0x7f1243ffedc0, flags=..., flags@entry=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:128
> > #35 0x00007f125a4147bd in QEventLoop::exec (this=this@entry=0x7f1243ffedc0, 
> > flags=..., flags@entry=...)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:204
> > #36 0x00007f125a22c47c in QThread::exec (this=this@entry=0x9910b0)
> >     at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread.cpp:503
> > #37 0x00007f124e34a60f in NotificationThread::run (this=0x9910b0)
> >     at 
> > /home/horst/ksrc5/kde/workspace/plasma-workspace/ksmserver/startup.cpp:99
> > #38 0x00007f125a231643 in QThreadPrivate::start (arg=0x9910b0)
> >     at 
> > /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread_unix.cpp:337
> > #39 0x00007f12589c66aa in start_thread (arg=0x7f1243fff700) at 
> > pthread_create.c:333
> > #40 0x00007f1259ecbeed in clone () at 
> > ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Yes, I'm aware of this and I have a pending patch to fix this.

Thanks


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123770/#review80468
-----------------------------------------------------------


On May 14, 2015, 8:03 p.m., Martin Klapetek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123770/
> -----------------------------------------------------------
> 
> (Updated May 14, 2015, 8:03 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> This feature was reverted back in the days as somehow it was blocking with 
> PulseAudio startup which delayed the startup sequence quite considerably. 
> This moves the sound playing into its own thread, which should prevent the 
> blocking.
> 
> 
> Diffs
> -----
> 
>   ksmserver/startup.cpp 4155347 
> 
> Diff: https://git.reviewboard.kde.org/r/123770/diff/
> 
> 
> Testing
> -------
> 
> I was never able to reproduce the blocking, so I'm not sure if this actually 
> fixes the problem.
> 
> 
> Thanks,
> 
> Martin Klapetek
> 
>

_______________________________________________
Plasma-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to