Bug 375332 - KWin crashed after closing my wine application.
Summary: KWin crashed after closing my wine application.
Status: RESOLVED DUPLICATE of bug 363224
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.8.5
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-01-20 09:43 UTC by x-user
Modified: 2017-01-22 08:54 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Binary windows application and sources related to crash. (12.07 KB, application/octet-stream)
2017-01-20 09:46 UTC, x-user
Details
Backtrace (10.78 KB, text/plain)
2017-01-22 02:53 UTC, x-user
Details

Note You need to log in before you can comment on or make changes to this bug.
Description x-user 2017-01-20 09:43:56 UTC
Application: kwin_x11 (5.8.5)

Qt Version: 5.7.1
Frameworks Version: 5.30.0
Operating System: Linux 4.9.4-1-ck x86_64
Distribution: "Arch Linux"

-- Information about the crash:
Confirm exit from my dialog based windows application running in wine.

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9b08342840 (LWP 387))]

Thread 5 (Thread 0x7f9ac77fe700 (LWP 404)):
#0  0x00007f9b0100310f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f9b043791f4 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007f9b04379239 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007f9b00ffd454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f9b07d8e7df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f9acec9a700 (LWP 399)):
#0  0x00007f9b05435ab8 in  () at /usr/lib/libQt5Core.so.5
#1  0x00007f9b05434f9a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#2  0x00007f9b053e1e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007f9b05204053 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#4  0x00007f9affd55e75 in  () at /usr/lib/libQt5Qml.so.5
#5  0x00007f9b05208ce8 in  () at /usr/lib/libQt5Core.so.5
#6  0x00007f9b00ffd454 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007f9b07d8e7df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f9adbfff700 (LWP 398)):
#0  0x00007f9b07d9b03b in __libc_enable_asynccancel () at /usr/lib/libc.so.6
#1  0x00007f9b07d85533 in ppoll () at /usr/lib/libc.so.6
#2  0x00007f9b054337b9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#3  0x00007f9b054350ba in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f9b053e1e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f9b05204053 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007f9affd55e75 in  () at /usr/lib/libQt5Qml.so.5
#7  0x00007f9b05208ce8 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007f9b00ffd454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007f9b07d8e7df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f9ae244b700 (LWP 395)):
#0  0x00007f9b07d85551 in ppoll () at /usr/lib/libc.so.6
#1  0x00007f9b054337b9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007f9b054350ba in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007f9b053e1e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f9b05204053 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007f9afef1ede5 in  () at /usr/lib/libQt5DBus.so.5
#6  0x00007f9b05208ce8 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007f9b00ffd454 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007f9b07d8e7df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f9b08342840 (LWP 387)):
[KCrash Handler]
#6  0x0000000000000000 in  ()
#7  0x00007f9b054158e0 in QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) () at /usr/lib/libQt5Core.so.5
#8  0x00007f9b043bb70f in  () at /usr/lib/libQt5Script.so.5
#9  0x00007f9b043bb7d4 in  () at /usr/lib/libQt5Script.so.5
#10 0x00007f9b043bba52 in QScriptEngine::newQObject(QObject*, QScriptEngine::ValueOwnership, QFlags<QScriptEngine::QObjectWrapOption> const&) () at /usr/lib/libQt5Script.so.5
#11 0x00007f9b0798fbbc in  () at /usr/lib/libkwin.so.5
#12 0x00007f9b043bbd05 in  () at /usr/lib/libQt5Script.so.5
#13 0x00007f9b043e4756 in  () at /usr/lib/libQt5Script.so.5
#14 0x00007f9b043eca21 in  () at /usr/lib/libQt5Script.so.5
#15 0x00007f9b0540f3d4 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#16 0x00007f9b04bc3fc8 in KWin::EffectsHandler::desktopPresenceChanged(KWin::EffectWindow*, int, int) () at /usr/lib/libkwineffects.so.9
#17 0x00007f9b04bc5981 in  () at /usr/lib/libkwineffects.so.9
#18 0x00007f9b05410099 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#19 0x00007f9b060bd35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f9b060c4ad1 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#21 0x00007f9b053e3a40 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#22 0x00007f9b053e61cd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#23 0x00007f9b05434ee7 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#24 0x00007f9aee6ebdbd in  () at /usr/lib/libQt5XcbQpa.so.5
#25 0x00007f9b053e1e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007f9b053ea39c in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#27 0x00007f9b0804d495 in kdemain () at /usr/lib/libkdeinit5_kwin_x11.so
#28 0x00007f9b07cc6291 in __libc_start_main () at /usr/lib/libc.so.6
#29 0x000000000040069a in _start ()

Reported using DrKonqi
Comment 1 x-user 2017-01-20 09:46:29 UTC
Created attachment 103558 [details]
Binary windows application and sources related to crash.
Comment 2 Martin Flöser 2017-01-20 13:51:32 UTC
Unfortunately the backtrace is lacking debug symbols. If you are able to 
reproduce please install the debug packages provided by your 
distribution (please ask the distribution support channel on how to 
install them) and attach a new backtrace.
Comment 3 x-user 2017-01-21 02:31:10 UTC
(In reply to Martin Gräßlin from comment #2)
> Unfortunately the backtrace is lacking debug symbols. If you are able to 
> reproduce please install the debug packages provided by your 
> distribution (please ask the distribution support channel on how to 
> install them) and attach a new backtrace.
Unfortunely there are no debug packages in ArchLinux. The only way to obtain debug symbols is recompile all packages manually with editing PKGBUILD's. Sorry for my bad english.
Comment 4 x-user 2017-01-22 02:53:03 UTC
Created attachment 103581 [details]
Backtrace
Comment 5 x-user 2017-01-22 02:54:52 UTC
Added new backtrace in attachments.
Comment 6 Martin Flöser 2017-01-22 08:54:36 UTC
From attachement:

Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fac01ed7840 (LWP 933))]

Thread 5 (Thread 0x7fabcb2ab700 (LWP 1049)):
#0  0x00007fabfaa364b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007fabfed623a8 in QWaitConditionPrivate::wait_relative(unsigned long) (time=30000, this=0x1a85a80) at thread/qwaitcondition_unix.cpp:133
#2  0x00007fabfed623a8 in QWaitConditionPrivate::wait(unsigned long) (time=30000, this=0x1a85a80) at thread/qwaitcondition_unix.cpp:141
#3  0x00007fabfed623a8 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x1a7c5f0, mutex=mutex@entry=0x11f1dc0, time=30000) at thread/qwaitcondition_unix.cpp:215
#4  0x00007fabfed5da8a in QThreadPoolThread::run() (this=0x1a7c5e0) at thread/qthreadpool.cpp:133
#5  0x00007fabfed61cdd in QThreadPrivate::start(void*) (arg=0x1a7c5e0) at thread/qthread_unix.cpp:368
#6  0x00007fabfaa30454 in start_thread (arg=0x7fabcb2ab700) at pthread_create.c:333
#7  0x00007fac0192472f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7fabd9f28700 (LWP 1042)):
#0  0x00007fac0191b4a1 in __GI_ppoll (fds=fds@entry=0x7fabd0000ac8, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#1  0x00007fabfef715b9 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7fabd0000ac8) at kernel/qcore_unix.cpp:81
#2  0x00007fabfef715b9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7fabd0000ac8, nfds=nfds@entry=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:102
#3  0x00007fabfef732e4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500
#4  0x00007fabfef1d562 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fabd9f27d60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007fabfed5c42e in QThread::exec() (this=this@entry=0x12fbba0) at thread/qthread.cpp:507
#6  0x00007fabf970fd35 in QQmlThreadPrivate::run() (this=0x12fbba0) at /tmp/pacbuilder/build/qt5-declarative/src/qtdeclarative-opensource-src-5.7.1/src/qml/qml/ftw/qqmlthread.cpp:147
#7  0x00007fabfed61cdd in QThreadPrivate::start(void*) (arg=0x12fbba0) at thread/qthread_unix.cpp:368
#8  0x00007fabfaa30454 in start_thread (arg=0x7fabd9f28700) at pthread_create.c:333
#9  0x00007fac0192472f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7fabdac3f700 (LWP 1026)):
#0  0x00007fabfaa364b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007fabfed623a8 in QWaitConditionPrivate::wait_relative(unsigned long) (time=30000, this=0x11fcb70) at thread/qwaitcondition_unix.cpp:133
#2  0x00007fabfed623a8 in QWaitConditionPrivate::wait(unsigned long) (time=30000, this=0x11fcb70) at thread/qwaitcondition_unix.cpp:141
#3  0x00007fabfed623a8 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x11f10f0, mutex=mutex@entry=0x11f1dc0, time=30000) at thread/qwaitcondition_unix.cpp:215
#4  0x00007fabfed5da8a in QThreadPoolThread::run() (this=0x11f10e0) at thread/qthreadpool.cpp:133
#5  0x00007fabfed61cdd in QThreadPrivate::start(void*) (arg=0x11f10e0) at thread/qthread_unix.cpp:368
#6  0x00007fabfaa30454 in start_thread (arg=0x7fabdac3f700) at pthread_create.c:333
#7  0x00007fac0192472f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7fabdbe50700 (LWP 1021)):
#0  0x00007fac0191b4a1 in __GI_ppoll (fds=fds@entry=0x7fabd400acf8, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#1  0x00007fabfef715b9 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7fabd400acf8) at kernel/qcore_unix.cpp:81
#2  0x00007fabfef715b9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7fabd400acf8, nfds=nfds@entry=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:102
#3  0x00007fabfef732e4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500
#4  0x00007fabfef1d562 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fabdbe4fd50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007fabfed5c42e in QThread::exec() (this=this@entry=0x7fabf8b15d40 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507
#6  0x00007fabf88921e5 in QDBusConnectionManager::run() (this=0x7fabf8b15d40 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#7  0x00007fabfed61cdd in QThreadPrivate::start(void*) (arg=0x7fabf8b15d40 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368
#8  0x00007fabfaa30454 in start_thread (arg=0x7fabdbe50700) at pthread_create.c:333
#9  0x00007fac0192472f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7fac01ed7840 (LWP 933)):
[KCrash Handler]
#6  0x0000000001045090 in  ()
#7  0x00007fabfef523d8 in QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (sender=0x257a250, signal=0x7fabfdf7c480 "2destroyed(QObject*)", receiver=receiver@entry=0x19022c0, method=method@entry=0x7fabfdf7c3f8 "1_q_objectDestroyed(QObject*)", type=type@entry=Qt::AutoConnection) at kernel/qobject.cpp:2649
#8  0x00007fabfde888dd in QScriptEnginePrivate::qobjectData(QObject*) (this=this@entry=0x15ffb70, object=<optimized out>, object@entry=0x257a250) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/api/qscriptengine.cpp:1573
#9  0x00007fabfde8899f in QScriptEnginePrivate::newQObject(QObject*, QScriptEngine::ValueOwnership, QFlags<QScriptEngine::QObjectWrapOption> const&) (this=this@entry=0x15ffb70, object=object@entry=0x257a250, ownership=ownership@entry=QScriptEngine::QtOwnership, options=...) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/api/qscriptengine.cpp:1504
#10 0x00007fabfde88ba2 in QScriptEngine::newQObject(QObject*, QScriptEngine::ValueOwnership, QFlags<QScriptEngine::QObjectWrapOption> const&) (this=<optimized out>, object=0x257a250, ownership=ownership@entry=QScriptEngine::QtOwnership, options=...) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/api/qscriptengine.cpp:2281
#11 0x00007fac0151ac7c in KWin::effectWindowToScriptValue(QScriptEngine*, KWin::EffectWindow* const&) (eng=<optimized out>, window=<optimized out>) at /tmp/pacbuilder/build/kwin/src/kwin-5.8.5/scripting/scriptedeffect.cpp:417
#12 0x00007fabfde88e64 in QScriptEnginePrivate::create(QTJSC::ExecState*, int, void const*) (exec=exec@entry=0x1600998, type=<optimized out>, ptr=ptr@entry=0x7ffe5d553898) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/api/qscriptengine.cpp:3081
#13 0x00007fabfdebb1ed in QScript::QObjectConnectionManager::execute(int, void**) (this=<optimized out>, slotIndex=<optimized out>, argv=0x7ffe5d5538a0) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/bridge/qscriptqobject.cpp:2173
#14 0x00007fabfdebe143 in QScript::QObjectConnectionManager::qt_metacall(QMetaObject::Call, int, void**) (this=0x1bb0ec0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffe5d5538a0) at /tmp/pacbuilder/build/qt5-script/src/qtscript-opensource-src-5.7.1/src/script/bridge/qscriptqobject.cpp:2099
#15 0x00007fabfef4c3c7 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x1aaae30, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffe5d5538a0) at kernel/qobject.cpp:3755
#16 0x00007fabfef4ca17 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7fabfe92aa60 <KWin::EffectsHandler::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffe5d5538a0) at kernel/qobject.cpp:3602
#17 0x00007fabfe71a8f8 in KWin::EffectsHandler::desktopPresenceChanged(KWin::EffectWindow*, int, int) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>) at /tmp/pacbuilder/build/kwin/src/build/libkwineffects/kwineffects_automoc.dir/moc_kwineffects_PVP5SFYDEXY3HW.cpp:1319
#18 0x00007fabfe71bf3c in KWin::EffectsHandler::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /tmp/pacbuilder/build/kwin/src/build/libkwineffects/kwineffects_automoc.dir/moc_kwineffects_PVP5SFYDEXY3HW.cpp:589
#19 0x00007fabfef4d229 in QObject::event(QEvent*) (this=0x1aaae30, e=<optimized out>) at kernel/qobject.cpp:1263
#20 0x00007fabffbee914 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x1aaae30, e=0x2259740) at kernel/qapplication.cpp:3799
#21 0x00007fabffbf64c0 in QApplication::notify(QObject*, QEvent*) (this=0x7ffe5d5540b0, receiver=0x1aaae30, e=0x2259740) at kernel/qapplication.cpp:3159
#22 0x00007fabfef1ee6a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1aaae30, event=event@entry=0x2259740) at kernel/qcoreapplication.cpp:988
#23 0x00007fabfef21bb6 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x2259740, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 0x00007fabfef21bb6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0xee9e90) at kernel/qcoreapplication.cpp:1649
#25 0x00007fabfef7313b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xf408f0, flags=...) at kernel/qeventdispatcher_unix.cpp:466
#26 0x00007fabe801bb0d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:68
#27 0x00007fabfef1d562 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe5d553f70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#28 0x00007fabfef2614c in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1261
#29 0x00007fabff471e8c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1633
#30 0x00007fabffbee865 in QApplication::exec() () at kernel/qapplication.cpp:2975
#31 0x00007fac01be35f9 in kdemain(int, char**) (argc=<optimized out>, argv=0x7ffe5d554238) at /tmp/pacbuilder/build/kwin/src/kwin-5.8.5/main_x11.cpp:466
#32 0x00007fac0185c291 in __libc_start_main (main=0x400690 <main>, argc=1, argv=0x7ffe5d554238, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe5d554228) at ../csu/libc-start.c:289
#33 0x00000000004006ca in _start () at ../sysdeps/x86_64/start.S:120

*** This bug has been marked as a duplicate of bug 363224 ***