java.lang.IllegalThreadStateException on distributed queue

54 views
Skip to first unread message

Abdülhakim Ünlü

unread,
Aug 9, 2016, 2:30:45 AM8/9/16
to Hazelcast
Hi,

There are several queues. Processes are polling from queues, and after processing putting into other queues. 

I am getting following error under load. I used a single hazelcast server for testing. Under which conditions following exception is thrown ?

SEVERE: [10.0.0.56]:5701 [NE_GROUP] [3.6.3] Operation 'com.hazelcast.collection.impl.queue.operations.PollOperation{identityHash=958700058, serviceName='hz:impl:queueService', partitionId=212, replicaIndex=0, callId=3077608, invocationTime=1470720355602 (Tue Aug 09 08:25:55 EEST 2016), waitTimeout=-57360001, callTimeout=60000}' cannot be run in current thread: Thread[hz._hzInstance_1_NE_GROUP.partition-operation.thread-39,5,_hzInstance_1_NE_GROUP]
java.lang.IllegalThreadStateException: Operation 'com.hazelcast.collection.impl.queue.operations.PollOperation{identityHash=958700058, serviceName='hz:impl:queueService', partitionId=212, replicaIndex=0, callId=3077608, invocationTime=1470720355602 (Tue Aug 09 08:25:55 EEST 2016), waitTimeout=-57360001, callTimeout=60000}' cannot be run in current thread: Thread[hz._hzInstance_1_NE_GROUP.partition-operation.thread-39,5,_hzInstance_1_NE_GROUP]
        at com.hazelcast.spi.impl.operationexecutor.classic.ClassicOperationExecutor.runOnCallingThread(ClassicOperationExecutor.java:387)
        at com.hazelcast.spi.impl.operationservice.impl.OperationServiceImpl.runOperationOnCallingThread(OperationServiceImpl.java:298)
        at com.hazelcast.spi.impl.waitnotifyservice.impl.WaitNotifyServiceImpl.notify(WaitNotifyServiceImpl.java:129)
        at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.afterRun(OperationRunnerImpl.java:290)
        at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:174)
        at com.hazelcast.spi.impl.operationexecutor.classic.ClassicOperationExecutor.runOnCallingThread(ClassicOperationExecutor.java:392)
        at com.hazelcast.spi.impl.operationexecutor.classic.ClassicOperationExecutor.runOnCallingThreadIfPossible(ClassicOperationExecutor.java:345)
        at com.hazelcast.spi.impl.operationservice.impl.Invocation.doInvokeLocal(Invocation.java:259)
        at com.hazelcast.spi.impl.operationservice.impl.Invocation.doInvoke(Invocation.java:243)
        at com.hazelcast.spi.impl.operationservice.impl.Invocation.invokeInternal(Invocation.java:210)
        at com.hazelcast.spi.impl.operationservice.impl.Invocation.invoke(Invocation.java:180)
        at com.hazelcast.spi.impl.operationservice.impl.InvocationBuilderImpl.invoke(InvocationBuilderImpl.java:46)
        at com.hazelcast.client.impl.protocol.task.AbstractPartitionMessageTask.processMessage(AbstractPartitionMessageTask.java:65)
        at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.initializeAndProcessMessage(AbstractMessageTask.java:118)
        at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.run(AbstractMessageTask.java:98)
        at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:127)
        at com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.processPartitionSpecificRunnable(OperationThread.java:159)
        at com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.process(OperationThread.java:142)
        at com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.doRun(OperationThread.java:124)
        at com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.run(OperationThread.java:99)


Jaromir Hamala

unread,
Aug 9, 2016, 2:53:47 AM8/9/16
to Hazelcast
Hello Abdülhakim,

this appears to be a bug. Do you have a reproducer? Are you using poll & offer operations only? Are you using transactions?

Cheers,
Jaromir

Abdülhakim Ünlü

unread,
Aug 9, 2016, 3:24:53 AM8/9/16
to Hazelcast
I do not have a reproducer that I can share with you.

I am using take and put operations only. 

I get this error when the initiator process (which puts the items into the first queue) is in another server. 

OS: Solaris 10
JVM: 1.7.0_80-ea

9 Ağustos 2016 Salı 09:53:47 UTC+3 tarihinde Jaromir Hamala yazdı:

akshay...@gmail.com

unread,
Dec 20, 2017, 7:58:14 AM12/20/17
to Hazelcast
Can you share that block of code
Reply all
Reply to author
Forward
0 new messages