Bug 282665 - Plasma crashed on wakeup after suspend
Summary: Plasma crashed on wakeup after suspend
Status: RESOLVED DUPLICATE of bug 271566
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-24 10:15 UTC by Jens Seidel
Modified: 2011-09-29 13:36 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jens Seidel 2011-09-24 10:15:06 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.6.5 (4.6.5) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 3.0.1+ i686

-- Information about the crash:
The crash happens immediatly after wakeup.

Could not compare with other bug reports as the crash guard does not provide the
crash log an further dialogs ... So it could be a duplicate (but has full debug info)

-- Backtrace:
Application: Plasma-Desktop-Umgebung (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb5a5c710 (LWP 2521))]

Thread 6 (Thread 0xa97ffb70 (LWP 2525)):
#0  g_main_context_prepare (context=0x9b1b5a8, priority=0xa97ff14c) at gmain.c:2711
#1  0xb5c02193 in g_main_context_iterate (context=0x9b1b5a8, block=<value optimized out>, dispatch=1, self=0xa9800a88) at gmain.c:3072
#2  0xb5c024c1 in g_main_context_iteration (context=0x9b1b5a8, may_block=1) at gmain.c:3155
#3  0xb6f040c9 in QEventDispatcherGlib::processEvents (this=0x9ae11e0, flags=) at kernel/qeventdispatcher_glib.cpp:424
#4  0xb6ed6c9a in QEventLoop::processEvents (this=0xa97ff290, flags=) at kernel/qeventloop.cpp:149
#5  0xb6ed70a9 in QEventLoop::exec (this=0xa97ff290, flags=) at kernel/qeventloop.cpp:201
#6  0xb6de672c in QThread::exec (this=0x9aeccd0) at thread/qthread.cpp:492
#7  0xb6eb8aa1 in QInotifyFileSystemWatcherEngine::run (this=0x9aeccd0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0xb6de96fb in QThreadPrivate::start (arg=0x9aeccd0) at thread/qthread_unix.cpp:320
#9  0xb6d6ecf2 in start_thread (arg=0xa97ffb70) at pthread_create.c:301
#10 0xb615484e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 5 (Thread 0xa8770b70 (LWP 3368)):
#0  0xb777e424 in __kernel_vsyscall ()
#1  0xb6d7344c in pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb6dea32a in wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb2454781 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9e295f0, th=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb2457730 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9e26f60, th=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb2453853 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9e295f0, th=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb2457806 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e26f60, th=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb24548e2 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9e295f0, th=0xa103f48, previous=0x9f58b60) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb2455a4d in ThreadWeaver::ThreadRunHelper::run (this=0xa87702f4, parent=0x9e295f0, th=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:87
#10 0xb2456111 in ThreadWeaver::Thread::run (this=0xa103f48) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:142
#11 0xb6de96fb in QThreadPrivate::start (arg=0xa103f48) at thread/qthread_unix.cpp:320
#12 0xb6d6ecf2 in start_thread (arg=0xa8770b70) at pthread_create.c:301
#13 0xb615484e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 4 (Thread 0xa8ffeb70 (LWP 3369)):
#0  0xb777e424 in __kernel_vsyscall ()
#1  0xb6d7344c in pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb6dea32a in wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb2454781 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9e295f0, th=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb2457730 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9e26f60, th=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb2453853 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9e295f0, th=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb2457806 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e26f60, th=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb24548e2 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9e295f0, th=0xa9801f00, previous=0xa9801e78) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb2455a4d in ThreadWeaver::ThreadRunHelper::run (this=0xa8ffe2f4, parent=0x9e295f0, th=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:87
#10 0xb2456111 in ThreadWeaver::Thread::run (this=0xa9801f00) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:142
#11 0xb6de96fb in QThreadPrivate::start (arg=0xa9801f00) at thread/qthread_unix.cpp:320
#12 0xb6d6ecf2 in start_thread (arg=0xa8ffeb70) at pthread_create.c:301
#13 0xb615484e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 3 (Thread 0xa7f0fb70 (LWP 3370)):
#0  0xb777e424 in __kernel_vsyscall ()
#1  0xb6d7344c in pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb6dea32a in wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb2454781 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9e295f0, th=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb2457730 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9e26f60, th=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb2453853 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9e295f0, th=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb2457806 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e26f60, th=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb24548e2 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9e295f0, th=0x9ed1290, previous=0xa9802a90) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb2455a4d in ThreadWeaver::ThreadRunHelper::run (this=0xa7f0f2f4, parent=0x9e295f0, th=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:87
#10 0xb2456111 in ThreadWeaver::Thread::run (this=0x9ed1290) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:142
#11 0xb6de96fb in QThreadPrivate::start (arg=0x9ed1290) at thread/qthread_unix.cpp:320
#12 0xb6d6ecf2 in start_thread (arg=0xa7f0fb70) at pthread_create.c:301
#13 0xb615484e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 2 (Thread 0xa770eb70 (LWP 3371)):
#0  0xb777e424 in __kernel_vsyscall ()
#1  0xb6d7344c in pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb6dea32a in wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9e29608, mutex=0x9e12898, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb2454781 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9e295f0, th=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb2457730 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9e26f60, th=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb2453853 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9e295f0, th=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb2457806 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e26f60, th=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb24548e2 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9e295f0, th=0xa0740a8, previous=0xa0cf930) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb2455a4d in ThreadWeaver::ThreadRunHelper::run (this=0xa770e2f4, parent=0x9e295f0, th=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:87
#10 0xb2456111 in ThreadWeaver::Thread::run (this=0xa0740a8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/threadweaver/Weaver/Thread.cpp:142
#11 0xb6de96fb in QThreadPrivate::start (arg=0xa0740a8) at thread/qthread_unix.cpp:320
#12 0xb6d6ecf2 in start_thread (arg=0xa770eb70) at pthread_create.c:301
#13 0xb615484e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 1 (Thread 0xb5a5c710 (LWP 2521)):
[KCrash Handler]
#7  0xb538280b in ~QExplicitlySharedDataPointer (this=0x9d3e3ec, __in_chrg=<value optimized out>) at /usr/include/qt4/QtCore/qshareddata.h:161
#8  Solid::Device::~Device (this=0x9d3e3ec, __in_chrg=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/solid/solid/device.cpp:87
#9  0xaf382928 in ~QHashNode (this=0x9b144dc, akey=...) at /usr/include/qt4/QtCore/qhash.h:217
#10 deleteNode2 (this=0x9b144dc, akey=...) at /usr/include/qt4/QtCore/qhash.h:519
#11 deleteNode (this=0x9b144dc, akey=...) at /usr/include/qt4/QtCore/qhash.h:507
#12 QHash<QString, Solid::Device>::remove (this=0x9b144dc, akey=...) at /usr/include/qt4/QtCore/qhash.h:795
#13 0xaf37f3af in HotplugEngine::onDeviceRemoved (this=0x9b144c8, udi=...) at /var/tmp/portage/kde-base/plasma-workspace-4.6.5/work/plasma-workspace-4.6.5/plasma/generic/dataengines/hotplug/hotplugengine.cpp:243
#14 0xaf381a3e in HotplugEngine::qt_metacall (this=0x9b144c8, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbf87b968) at /var/tmp/portage/kde-base/plasma-workspace-4.6.5/work/plasma-workspace-4.6.5_build/plasma/generic/dataengines/hotplug/hotplugengine.moc:81
#15 0xb6edd70d in QMetaObject::metacall (object=0x9b144c8, cl=QMetaObject::ReadProperty, idx=0, argv=0xbf87b968) at kernel/qmetaobject.cpp:237
#16 0xb6eef25c in QMetaObject::activate (sender=0x96ad2a8, m=0xb540ec48, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3278
#17 0xb5383f69 in Solid::DeviceNotifier::deviceRemoved (this=0x96ad2a8, _t1=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/solid/solid/devicenotifier.moc:94
#18 0xb5386464 in Solid::DeviceManagerPrivate::_k_deviceRemoved (this=0x96ad2a8, udi=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/solid/solid/devicemanager.cpp:207
#19 0xb5386688 in Solid::DeviceManagerPrivate::qt_metacall (this=0x96ad2a8, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbf87baf8) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/solid/solid/devicemanager_p.moc:80
#20 0xb6edd70d in QMetaObject::metacall (object=0x96ad2a8, cl=QMetaObject::ReadProperty, idx=0, argv=0xbf87baf8) at kernel/qmetaobject.cpp:237
#21 0xb6eef25c in QMetaObject::activate (sender=0x9ae0a90, m=0xb540fd20, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3278
#22 0xb539b137 in Solid::Ifaces::DeviceManager::deviceRemoved (this=0x9ae0a90, _t1=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/solid/solid/ifaces/devicemanager.moc:94
#23 0xb53dee5a in Solid::Backends::UPower::UPowerManager::slotDeviceRemoved (this=0x9ae0a90, opath=...) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/solid/solid/backends/upower/upowermanager.cpp:164
#24 0xb53def06 in Solid::Backends::UPower::UPowerManager::qt_metacall (this=0x9ae0a90, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbf87bd38) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5_build/solid/solid/backends/upower/upowermanager.moc:78
#25 0xb6edd70d in QMetaObject::metacall (object=0x9ae0a90, cl=QMetaObject::ReadProperty, idx=0, argv=0xbf87bd38) at kernel/qmetaobject.cpp:237
#26 0xb6eef25c in QMetaObject::activate (sender=0x9ae0a9c, m=0x96aeb30, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3278
#27 0xb5d8abfb in ?? () from /usr/lib/qt4/libQtDBus.so.4
#28 0xb5d759d9 in ?? () from /usr/lib/qt4/libQtDBus.so.4
#29 0xb5d80267 in ?? () from /usr/lib/qt4/libQtDBus.so.4
#30 0xb6ee9d9a in QObject::event (this=0x9ae0a9c, e=0x1) at kernel/qobject.cpp:1217
#31 0xb641173c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#32 0xb6416f6e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#33 0xb7591c00 in KApplication::notify (this=0x964d758, receiver=0x9ae0a9c, event=0xa27d198) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kdeui/kernel/kapplication.cpp:311
#34 0xb6ed800c in QCoreApplication::notifyInternal (this=0x964d758, receiver=0x9ae0a9c, event=0xa27d198) at kernel/qcoreapplication.cpp:731
#35 0xb6eda8d8 in sendEvent (receiver=0x0, event_type=0, data=0x95e2f20) at kernel/qcoreapplication.h:215
#36 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x95e2f20) at kernel/qcoreapplication.cpp:1372
#37 0xb6edab0b in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1265
#38 0xb6f044ab in sendPostedEvents (s=0x9672300) at kernel/qcoreapplication.h:220
#39 postEventSourceDispatch (s=0x9672300) at kernel/qeventdispatcher_glib.cpp:277
#40 0xb5bfe522 in g_main_dispatch (context=0x9672270) at gmain.c:2441
#41 g_main_context_dispatch (context=0x9672270) at gmain.c:3014
#42 0xb5c023c5 in g_main_context_iterate (context=0x9672270, block=<value optimized out>, dispatch=1, self=0x9670278) at gmain.c:3092
#43 0xb5c024c1 in g_main_context_iteration (context=0x9672270, may_block=1) at gmain.c:3155
#44 0xb6f040a6 in QEventDispatcherGlib::processEvents (this=0x966d860, flags=) at kernel/qeventdispatcher_glib.cpp:422
#45 0xb64d1355 in ?? () from /usr/lib/qt4/libQtGui.so.4
#46 0xb6ed6c9a in QEventLoop::processEvents (this=0xbf87c5c4, flags=) at kernel/qeventloop.cpp:149
#47 0xb6ed70a9 in QEventLoop::exec (this=0xbf87c5c4, flags=) at kernel/qeventloop.cpp:201
#48 0xb6edabed in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#49 0xb6410457 in QApplication::exec() () from /usr/lib/qt4/libQtGui.so.4
#50 0xb1bff964 in kdemain (argc=1, argv=0x9626c88) at /var/tmp/portage/kde-base/plasma-workspace-4.6.5/work/plasma-workspace-4.6.5/plasma/desktop/shell/main.cpp:120
#51 0x0804e8de in launch (argc=<value optimized out>, _name=<value optimized out>, args=0x0, cwd=0x0, envc=0, envs=0x96374b8 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x8051ad7 "0") at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kinit/kinit.cpp:734
#52 0x0804f1a5 in handle_launcher_request (sock=<value optimized out>, who=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kinit/kinit.cpp:1226
#53 0x0804f738 in handle_requests (waitForPid=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kinit/kinit.cpp:1419
#54 0x080508d4 in main (argc=2, argv=0xbf87ce44, envp=0xbf87ce50) at /var/tmp/portage/kde-base/kdelibs-4.6.5-r1/work/kdelibs-4.6.5/kinit/kinit.cpp:1907

Possible duplicates by query: bug 281300, bug 281285, bug 279287, bug 278141, bug 277964.

Reported using DrKonqi
Comment 1 Dario Andres 2011-09-29 13:36:26 UTC
[Comment from a bug triager]
This issue is being tracked at bug 271566 / bug 273075, merging.
Thanks

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