Welcome to NeoOffice developer notes and announcements
NeoOffice
Developer notes and announcements
 
 

This website is an archive and is no longer active
NeoOffice announcements have moved to the NeoOffice News website


Support
· Forums
· NeoOffice Support
· NeoWiki


Announcements
· Twitter @NeoOffice


Downloads
· Download NeoOffice


  
NeoOffice :: View topic - Patch 6 DnD Deadlock
Patch 6 DnD Deadlock
 
   NeoOffice Forum Index -> NeoOffice Testing
View previous topic :: View next topic  
Author Message
OPENSTEP
The One
The One


Joined: May 25, 2003
Posts: 4752
Location: Santa Barbara, CA

PostPosted: Thu Dec 02, 2004 12:54 pm    Post subject: Patch 6 DnD Deadlock

This may be related to the ones reported in the other patch-6 thread but am unsure, and yes, bugzilla is down. I'll try to touch base with Dan on that.

This was a drag-and-drop of text within the same Writer window. I normally don't do this but figured I'd give it a test. Anyway, I can't look more in-depth into it right now (I'm at my real job Wink ) but I did attach to it with gdb and got stack traces. It seems as if it's deadlocked on a semaphore in thread 10:

Code:

(gdb) thread 1
[Switching to thread 1 (process 740 thread 0x613)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x9249ed44 in JVM_GetClassName ()
#4  0x924fb96c in JVM_Close ()
#5  0x924fd2d0 in JVM_GetClassContext ()
#6  0x005d79a0 in SVMainThread::run() ()
#7  0x06a37e58 in ?? ()
#8  0x06a37c50 in ?? ()
#9  0x0691368c in ?? ()
#10 0x0691368c in ?? ()
#11 0x0691368c in ?? ()
#12 0x0691368c in ?? ()
#13 0x0691368c in ?? ()
#14 0x0691368c in ?? ()
#15 0x0691368c in ?? ()
#16 0x0691368c in ?? ()
#17 0xa24a3720 in typeinfo name for std::bad_exception ()
#18 0x9249808c in JVM_CurrentTimeMillis ()
#19 0x924cd518 in JVM_GetCPClassNameUTF ()
#20 0x924d4408 in JVM_GetCPMethodModifiers ()
#21 0x925e24a8 in jio_vsnprintf ()
#22 0x005e26d0 in vcl::com_sun_star_vcl_VCLFrame::setPointer(unsigned short) ()
#23 0x005874b8 in ImplHandleMouseEvent(Window*, unsigned short, unsigned char, long, long, unsigned long, unsigned short, unsigned short) ()
#24 0x00579970 in Window::ImplGenerateMouseMoveHdl(void*) ()
#25 0x00589e9c in ImplHandleClose(Window*) ()
#26 0x0058a75c in ImplWindowFrameProc(void*, SalFrame*, unsigned short, void const*) ()
#27 0x005ddd68 in vcl::com_sun_star_vcl_VCLEvent::dispatchEvent(unsigned short, SalFrame*, void*) ()
#28 0x005ddccc in vcl::com_sun_star_vcl_VCLEvent::dispatch() ()
#29 0x005d9100 in SalInstance::Yield(unsigned char) ()
#30 0x0047bd38 in Application::Yield() ()
#31 0x0047bc20 in Application::Execute() ()
#32 0x00008cbc in desktop::Desktop::Main() ()
#33 0x005d7788 in SVMainThread::run() ()
#34 0x005d8bcc in ExecuteApplicationMain(Application*) ()
#35 0x0047fe2c in SVMain() ()
#36 0x005d7390 in main ()
#37 0x00002898 in start ()
#38 0x00002718 in start ()
(gdb) thread 2
[Switching to thread 2 (process 740 thread 0x130b)]
#0  0x9004354c in accept ()
(gdb) bt
#0  0x9004354c in accept ()
#1  0x01850624 in osl_acceptPipe ()
#2  0x00089574 in vos::OPipe::accept(vos::OStreamPipe&) ()
#3  0x00011a34 in desktop::OfficeIPCThread::run() ()
#4  0x00084d60 in vos::_cpp_OThread_WorkerFunction(void*) ()
#5  0x01847290 in _imp_setProcessLocale ()
#6  0x900246e8 in _pthread_body ()
(gdb) thread 3
[Switching to thread 3 (process 740 thread 0x2e03)]
#0  0x90018be8 in semaphore_timedwait_signal_trap ()
(gdb) bt
#0  0x90018be8 in semaphore_timedwait_signal_trap ()
#1  0x9000e788 in _pthread_cond_wait ()
#2  0x01843b1c in osl_waitCondition ()
#3  0x00087794 in vos::OTimerManager::run() ()
#4  0x00084d60 in vos::_cpp_OThread_WorkerFunction(void*) ()
#5  0x01847290 in _imp_setProcessLocale ()
#6  0x900246e8 in _pthread_body ()
(gdb) thread 4
[Switching to thread 4 (process 740 thread 0x7e03)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9253c68c in JNI_CreateJavaVM_Impl ()
#3  0x9253c624 in JNI_CreateJavaVM_Impl ()
#4  0x924fdc9c in JVM_GetClassMethodsCount ()
#5  0x900246e8 in _pthread_body ()
(gdb) thread 5
[Switching to thread 5 (process 740 thread 0x8603)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a89c in JVM_NewInstance ()
#3  0x924b9f18 in JVM_FillInStackTrace ()
#4  0x924bf948 in JVM_Send ()
#5  0x9255173c in JNI_CreateJavaVM_Impl ()
#6  0x924fdc9c in JVM_GetClassMethodsCount ()
#7  0x900246e8 in _pthread_body ()
(gdb) thread 6
[Switching to thread 6 (process 740 thread 0x8903)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x0691368c in ?? ()
#9  0xa24a3720 in typeinfo name for std::bad_exception ()
#10 0x9249808c in JVM_CurrentTimeMillis ()
#11 0x924cd518 in JVM_GetCPClassNameUTF ()
#12 0x924d2ce4 in JVM_FindClassFromClass ()
#13 0x924ec170 in JVM_IsSameClassPackage ()
#14 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#15 0x92577054 in JVM_UnloadLibrary ()
#16 0x924fdc9c in JVM_GetClassMethodsCount ()
#17 0x900246e8 in _pthread_body ()
(gdb) thread 7
[Switching to thread 7 (process 740 thread 0x8d03)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a4e908 in ?? ()
#8  0x06a4e688 in ?? ()
#9  0x069135cc in ?? ()
#10 0xa24a3720 in typeinfo name for std::bad_exception ()
#11 0x9249808c in JVM_CurrentTimeMillis ()
#12 0x924cd518 in JVM_GetCPClassNameUTF ()
#13 0x924d2ce4 in JVM_FindClassFromClass ()
#14 0x924ec170 in JVM_IsSameClassPackage ()
#15 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#16 0x92577054 in JVM_UnloadLibrary ()
#17 0x924fdc9c in JVM_GetClassMethodsCount ()
#18 0x900246e8 in _pthread_body ()
(gdb) thread 8
[Switching to thread 8 (process 740 thread 0x9203)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a89c in JVM_NewInstance ()
#3  0x924a1a04 in JVM_GetClassLoader ()
#4  0x924a17a4 in JVM_GetClassLoader ()
#5  0x924fdc9c in JVM_GetClassMethodsCount ()
#6  0x900246e8 in _pthread_body ()
(gdb) thread 9
[Switching to thread 9 (process 740 thread 0x9503)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924b9f70 in JVM_FillInStackTrace ()
#4  0x924e22b0 in JVM_StartThread ()
#5  0x924d0e04 in JVM_FindLoadedClass ()
#6  0x92577054 in JVM_UnloadLibrary ()
#7  0x924fdc9c in JVM_GetClassMethodsCount ()
#8  0x900246e8 in _pthread_body ()
(gdb) thread 10
[Switching to thread 10 (process 740 thread 0x9903)]
#0  0x90016f48 in semaphore_wait_signal_trap ()
(gdb) bt
#0  0x90016f48 in semaphore_wait_signal_trap ()
#1  0x900021e0 in pthread_mutex_lock ()
#2  0x018467a8 in osl_acquireMutex ()
#3  0x005da038 in SalYieldMutex::acquire() ()
#4  0x0058d148 in DNDEventDispatcher::fireDragEnterEvent(Window*, com::sun::star::uno::Reference<com::sun::star::datatransfer::dnd::XDropTargetDragContext> const&, signed char, Point const&, signed char, com::sun::star::uno::Sequence<com::sun::star::datatransfer::DataFlavor> const&) ()
#5  0x0058cb88 in DNDEventDispatcher::dragOver(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&) ()
#6  0x0b661d98 in java::JavaDropTarget::handleDragExit(long, long) ()
#7  0x0b65f2f4 in non-virtual thunk to java::JavaClipboardFactory::createInstanceWithArguments(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) ()
#8  0x928a02dc in InvokeDragTrackingHandlerUPP ()
#9  0x92861f90 in CarbonTrackingMapper ()
#10 0x92d3816c in DoTrackingMessage ()
#11 0x92d420d0 in SendTrackingMessage ()
#12 0x92d3cf28 in DragInApplication ()
#13 0x92d4bc7c in DragLoop ()
#14 0x92d4b16c in CoreDragStartDragging ()
#15 0x92918948 in TrackDrag ()
#16 0x0b66071c in java::JavaDragSource::runDragExecute() ()
#17 0x90194620 in __CFRunLoopDoTimer ()
#18 0x90191980 in __CFRunLoopRun ()
#19 0x90195e94 in CFRunLoopRunSpecific ()
#20 0x927d5f88 in RunCurrentEventLoopInMode ()
#21 0x927dc6f0 in ReceiveNextEventCommon ()
#22 0x927fe1c8 in AcquireNextEventInMode ()
#23 0x927fb698 in RunApplicationEventLoop ()
#24 0x940e1518 in initializeStandaloneThread(int) ()
#25 0x900246e8 in _pthread_body ()
(gdb) thread 11
[Switching to thread 11 (process 740 thread 0xd703)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06915668 in ?? ()
#7  0x0691368c in ?? ()
#8  0x0691368c in ?? ()
#9  0x069135cc in ?? ()
#10 0x069135cc in ?? ()
#11 0x0691368c in ?? ()
#12 0x0691368c in ?? ()
#13 0xa24a3720 in typeinfo name for std::bad_exception ()
#14 0x9249808c in JVM_CurrentTimeMillis ()
#15 0x924cd518 in JVM_GetCPClassNameUTF ()
#16 0x924d2ce4 in JVM_FindClassFromClass ()
#17 0x924ec170 in JVM_IsSameClassPackage ()
#18 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#19 0x92577054 in JVM_UnloadLibrary ()
#20 0x924fdc9c in JVM_GetClassMethodsCount ()
#21 0x900246e8 in _pthread_body ()
(gdb) thread 12
[Switching to thread 12 (process 740 thread 0xda03)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x0691368c in ?? ()
#9  0xa24a3720 in typeinfo name for std::bad_exception ()
#10 0x9249808c in JVM_CurrentTimeMillis ()
#11 0x924cd518 in JVM_GetCPClassNameUTF ()
#12 0x924d2ce4 in JVM_FindClassFromClass ()
#13 0x924ec170 in JVM_IsSameClassPackage ()
#14 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#15 0x92577054 in JVM_UnloadLibrary ()
#16 0x924fdc9c in JVM_GetClassMethodsCount ()
#17 0x900246e8 in _pthread_body ()
(gdb) thread 13
[Switching to thread 13 (process 740 thread 0xdf03)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x06a71908 in ?? ()
#9  0x069135cc in ?? ()
#10 0x069135cc in ?? ()
#11 0x0691368c in ?? ()
#12 0x0691368c in ?? ()
#13 0xa24a3720 in typeinfo name for std::bad_exception ()
#14 0x9249808c in JVM_CurrentTimeMillis ()
#15 0x924cd518 in JVM_GetCPClassNameUTF ()
#16 0x924d2ce4 in JVM_FindClassFromClass ()
#17 0x924ec170 in JVM_IsSameClassPackage ()
#18 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#19 0x92577054 in JVM_UnloadLibrary ()
#20 0x924fdc9c in JVM_GetClassMethodsCount ()
#21 0x900246e8 in _pthread_body ()
(gdb) thread 14
[Switching to thread 14 (process 740 thread 0xe703)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x0691368c in ?? ()
#9  0x069135cc in ?? ()
#10 0xa24a3720 in typeinfo name for std::bad_exception ()
#11 0x9249808c in JVM_CurrentTimeMillis ()
#12 0x924cd518 in JVM_GetCPClassNameUTF ()
#13 0x924d2ce4 in JVM_FindClassFromClass ()
#14 0x924ec170 in JVM_IsSameClassPackage ()
#15 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#16 0x92577054 in JVM_UnloadLibrary ()
#17 0x924fdc9c in JVM_GetClassMethodsCount ()
#18 0x900246e8 in _pthread_body ()
(gdb) thread 15
[Switching to thread 15 (process 740 thread 0xe903)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x0691368c in ?? ()
#9  0xa24a3720 in typeinfo name for std::bad_exception ()
#10 0x9249808c in JVM_CurrentTimeMillis ()
#11 0x924cd518 in JVM_GetCPClassNameUTF ()
#12 0x924d2ce4 in JVM_FindClassFromClass ()
#13 0x924ec170 in JVM_IsSameClassPackage ()
#14 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#15 0x92577054 in JVM_UnloadLibrary ()
#16 0x924fdc9c in JVM_GetClassMethodsCount ()
#17 0x900246e8 in _pthread_body ()
(gdb) thread 16
[Switching to thread 16 (process 740 thread 0xf103)]
#0  0x900074c8 in mach_msg_trap ()
(gdb) bt
#0  0x900074c8 in mach_msg_trap ()
#1  0x90007018 in mach_msg ()
#2  0x9249a808 in JVM_NewInstance ()
#3  0x924a2a20 in JVM_ArrayCopy ()
#4  0x924b8b48 in JVM_MonitorNotify ()
#5  0x924b97a8 in JVM_MonitorWait ()
#6  0x06a728bc in ?? ()
#7  0x06a7e880 in ?? ()
#8  0x0691368c in ?? ()
#9  0x069135cc in ?? ()
#10 0xa24a3720 in typeinfo name for std::bad_exception ()
#11 0x9249808c in JVM_CurrentTimeMillis ()
#12 0x924cd518 in JVM_GetCPClassNameUTF ()
#13 0x924d2ce4 in JVM_FindClassFromClass ()
#14 0x924ec170 in JVM_IsSameClassPackage ()
#15 0x924e66d8 in JVM_GetMethodIxExceptionTableEntry ()
#16 0x92577054 in JVM_UnloadLibrary ()
#17 0x924fdc9c in JVM_GetClassMethodsCount ()
#18 0x900246e8 in _pthread_body ()
(gdb) thread 17
Thread ID 17 not known.


Will debug it more this evening when I get home, but wanted to put the stack traces here so I don't lose them.

For other testers...if you have developer tools installed on your machine and you experience freezes you can still get the stack traces. Those traces are really what's needed to figure out where the app is deadlocking. Here's what I usually do when an app freezes (NeoJ, or the ones I develop at work, etc.):

1) Launch a Terminal
2) top
3) Search for the process in the list to get its pid (soffice.bin in NeoJ's case). There are probably better ways to do this then top, but usually my spinning apps are also sucking CPU.
4) Exit top
5) gdb --pid=pid
(replace pid with the ID from step 3)
6) thread 1
7) bt
8 ) thread 2
9) bt

... and so on until gdb reports a "Thread not found" ...
... then I kill the app (think "force quit") and exit gdb ...

20 (or whatever) ) kill
21) quit

ed
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Thu Dec 02, 2004 1:20 pm    Post subject: Re: Patch 6 DnD Deadlock

I have been able to reproduce this same deadlock easily now. It is the same one reported earlier this morning.

I am working on a fix right now. As soon as I can eliminate the deadlocking, I will post a new patch. Hopefully this will be sometime today.

Patrick
Back to top
sardisson
Town Crier
Town Crier


Joined: Feb 01, 2004
Posts: 4588

PostPosted: Thu Dec 02, 2004 5:37 pm    Post subject: Re: Patch 6 DnD Deadlock

OPENSTEP wrote:
For other testers...if you have developer tools installed on your machine and you experience freezes you can still get the stack traces. Those traces are really what's needed to figure out where the app is deadlocking. Here's what I usually do when an app freezes (NeoJ, or the ones I develop at work, etc.):

1) Launch a Terminal
2) top
3) Search for the process in the list to get its pid (soffice.bin in NeoJ's case). There are probably better ways to do this then top, but usually my spinning apps are also sucking CPU.
4) Exit top
5) gdb --pid=pid
(replace pid with the ID from step 3)
6) thread 1
7) bt
8 ) thread 2
9) bt

... and so on until gdb reports a "Thread not found" ...
... then I kill the app (think "force quit") and exit gdb ...

20 (or whatever) ) kill
21) quit

ed


Is that the same thing as doing a sample via the Activity Monitor? If so, then that's probably an easier way for an average user to do it Smile If not, maybe someone with copious free time and solid programming ability (ha ha!) should write a GUI app to do it Smile

Smokey
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Thu Dec 02, 2004 6:43 pm    Post subject:

FYI. "Patch-7" is now available with a fix for the deadlocking.

Patrick
Back to top
OPENSTEP
The One
The One


Joined: May 25, 2003
Posts: 4752
Location: Santa Barbara, CA

PostPosted: Thu Dec 02, 2004 8:13 pm    Post subject:

Wow, how in the H do you manage to work so fast? I just got home and was getting ready to fire up the CVS update and build Smile

You amaze me.

ed
Back to top
Max_Barel
Oracle


Joined: May 31, 2003
Posts: 219
Location: French Alps

PostPosted: Fri Dec 03, 2004 6:26 am    Post subject:

OPENSTEP wrote:
You amaze me.

Me too.
Max
Back to top
Display posts from previous:   
   NeoOffice Forum Index -> NeoOffice Testing All times are GMT - 7 Hours
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

Powered by phpBB © 2001, 2005 phpBB Group

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © Planamesa Inc.
NeoOffice is a registered trademark of Planamesa Inc. and may not be used without permission.
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.