[Bug] Deadlock in shark occurs

David Delbecq <[email protected]> Wed, 7 Sep 2005 15:59:33 +0200
Newsgroups gmane.comp.java.enhydra.shark
Organization Institut Royal Météorologique
Message-ID <[email protected]>
Hello

While running some unit testing to use the shark corba api, i noticed a test was taking
quite a big amount of time to finish. In fact, it didn't seem keen on finishing.
I suspended the whole test using the eclipse debug interface.
The client part is stuck in a call to get_next_object():

		WfAssignmentIterator iterator = resource.get_iterator_work_item(); // specs
		iterator.set_query_expression("activityId.equals(\""+activity+"\")");
		return iterator.get_next_object();

This is not called in a loop nor is it reproducable after stopping / rerunning unit test.
The unit test always start on a fresh new hsql database, so environnemental conditions
of test are well controlled and always the same. As this test non finishing is random, this is
why i think this can be a deadlock somewhere.
Complete stack trace of all threads present in process follows.
Please also note the shark client and server are both in same process (separate threads) for
the purpose of unit testing.

Am providing full stacktrace as i think this might interest the shark devels.
(Code of unit test can also be provided to shark devels on demand but i won't send it to mailing list)

Wish you a good headache :)

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:33033 (Suspended)
	System Thread [Finalizer] (Suspended)
		Object.wait(long) line: not available [native method]
		ReferenceQueue.remove(long) line: 111
		ReferenceQueue.remove() line: 127
		Finalizer$FinalizerThread.run() line: 159
	System Thread [Reference Handler] (Suspended)
		Object.wait(long) line: not available [native method]
		Reference$Lock(Object).wait() line: 429
		Reference$ReferenceHandler.run() line: 115
	Thread [main] (Suspended)
		Object.wait(long) line: not available [native method]
		Object.wait() line: 429
		IIOPConnection.getResponse(boolean, int) line: 646
		ClientRequestImpl(IIOPOutputStream).invoke(boolean) line: 121
		ClientRequestImpl.invoke() line: 76
		ClientDelegate.invoke(ClientRequest) line: 235
		ClientDelegate.invoke(Object, OutputStream) line: 282
		_WfAssignmentIteratorStub(ObjectImpl)._invoke(OutputStream) line: 457
		_WfAssignmentIteratorStub.get_next_object() line: 19
		WorkflowTaskTest.getAssignment(WfResource, String) line: 210
		WorkflowTaskTest.testManageValues() line: 224
		NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
		NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
		DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
		Method.invoke(Object, Object[]) line: 324
		WorkflowTaskTest(TestCase).runTest() line: 154
		WorkflowTaskTest(TestCase).runBare() line: 127
		TestResult$1.protect() line: 106
		TestResult.runProtected(Test, Protectable) line: 124
		TestResult.run(TestCase) line: 109
		WorkflowTaskTest(TestCase).run(TestResult) line: 118
		TestSuite.runTest(Test, TestResult) line: 208
		TestSuite.run(TestResult) line: 203
		TestHelper$1(TestDecorator).basicRun(TestResult) line: 22
		TestSetup$1.protect() line: 19
		TestResult.runProtected(Test, Protectable) line: 124
		TestHelper$1(TestSetup).run(TestResult) line: 23
		RemoteTestRunner.runTests(String[], String) line: 421
		RemoteTestRunner.run() line: 305
		RemoteTestRunner.main(String[]) line: 186
	System Thread [Signal Dispatcher] (Suspended)
	Thread [ReaderThread] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		StreamDecoder$CharsetSD.readBytes() line: 408
		StreamDecoder$CharsetSD.implRead(char[], int, int) line: 450
		StreamDecoder$CharsetSD(StreamDecoder).read(char[], int, int) line: 182
		InputStreamReader.read(char[], int, int) line: 167
		BufferedReader.fill() line: 136
		BufferedReader.readLine(boolean) line: 299
		BufferedReader.readLine() line: 362
		RemoteTestRunner$ReaderThread.run() line: 139
	Thread [HSQLDB Timer @e183e9] (Suspended)
		Object.wait(long) line: not available [native method]
		HsqlTimer.nextTask() line: not available
		HsqlTimer$TaskRunner.run() line: not available
		Thread.run() line: 534
	Thread [Thread-3] (Suspended)
		Object.wait(long) line: not available [native method]
		Object.wait() line: 429
		PIORB(ORB).run() line: 2521
		SharkCORBAServer.startCORBAServer() line: 141
		TestHelper$ServerThread.run() line: 49
	System Thread [JavaIDL Reader for localhost:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Listener] (Suspended)
		PlainSocketImpl.socketAccept(SocketImpl) line: not available [native method]
		PlainSocketImpl.accept(SocketImpl) line: 353
		ServerSocket.implAccept(Socket) line: 448
		ServerSocket.accept() line: 419
		ListenerThread.run() line: 58
	System Thread [JavaIDL Listener] (Suspended)
		PlainSocketImpl.socketAccept(SocketImpl) line: not available [native method]
		PlainSocketImpl.accept(SocketImpl) line: 353
		ServerSocket.implAccept(Socket) line: 448
		ServerSocket.accept() line: 419
		ListenerThread.run() line: 58
	System Thread [JavaIDL Reader for localhost:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:33038] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for CAL-12.oma.be:33042] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [RequestProcessor[0]] (Suspended)
		Parser.jj_scan_token(int) line: not available
		Parser.jj_3R_40() line: not available
		Parser.jj_3_22() line: not available
		Parser.jj_3R_45() line: not available
		Parser.jj_3_28() line: not available
		Parser.jj_2_28(int) line: not available
		Parser.BlockStatement() line: not available
		Parser.Line() line: not available
		Interpreter.Line() line: not available
		Interpreter.eval(Reader, NameSpace, String) line: not available
		Interpreter.eval(String, NameSpace) line: not available
		Interpreter.eval(String) line: not available
		BshEvaluator.evaluateExpression(SharkTransaction, String, Map, Class) line: 67
		BshEvaluator.evaluateCondition(SharkTransaction, String, Map) line: 40
		WfAssignmentIteratorWrapper.fillObjectList(SharkTransaction) line: 189
		WfAssignmentIteratorWrapper(BaseIteratorWrapper).getNextObject(SharkTransaction) line: 223
		WfAssignmentIteratorWrapper.get_next_object(SharkTransaction) line: 60
		WfAssignmentIteratorWrapper.get_next_object() line: 44
		WfAssignmentIteratorCORBA.get_next_object() line: 110
		WfAssignmentIteratorCORBA(_WfAssignmentIteratorImplBase)._invoke(String, InputStream, ResponseHandler) line: 53
		ServerDelegate.dispatch(ServerRequest) line: 353
		PIORB(ORB).process(ServerRequest) line: 280
		RequestProcessor.process() line: 81
		ThreadPool$PooledThread.run() line: 106
	System Thread [JavaIDL Listener] (Suspended)
		PlainSocketImpl.socketAccept(SocketImpl) line: not available [native method]
		PlainSocketImpl.accept(SocketImpl) line: 353
		ServerSocket.implAccept(Socket) line: 448
		ServerSocket.accept() line: 419
		ListenerThread.run() line: 58
	System Thread [JavaIDL Reader for localhost:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:33038] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for CAL-12.oma.be:33046] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Listener] (Suspended)
		PlainSocketImpl.socketAccept(SocketImpl) line: not available [native method]
		PlainSocketImpl.accept(SocketImpl) line: 353
		ServerSocket.implAccept(Socket) line: 448
		ServerSocket.accept() line: 419
		ListenerThread.run() line: 58
	System Thread [JavaIDL Reader for localhost:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:33038] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for CAL-12.oma.be:33050] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Listener] (Suspended)
		PlainSocketImpl.socketAccept(SocketImpl) line: not available [native method]
		PlainSocketImpl.accept(SocketImpl) line: 353
		ServerSocket.implAccept(Socket) line: 448
		ServerSocket.accept() line: 419
		ListenerThread.run() line: 58
	System Thread [JavaIDL Reader for localhost:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:10123] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for 193.190.249.120:33038] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60
	System Thread [JavaIDL Reader for CAL-12.oma.be:33054] (Suspended)
		SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
		SocketInputStream.read(byte[], int, int) line: 129
		MessageBase.readFully(InputStream, byte[], int, int) line: 518
		MessageBase.createFromStream(ORB, InputStream) line: 55
		MessageMediator.processRequest() line: 107
		IIOPConnection.processInput() line: 336
		ReaderThread.run() line: 60


-- 
David Delbecq
Royal Meteorological Institute of Belgium

-
Is there life after /sbin/halt -p?
message-footer.txt (text/plain, 271 B)
--
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws