NullPointerException: Cannot invoke "zmq.IMailbox.send(zmq.Command)" because "this.slots[tid]" is null
inad9300 opened this issue · 4 comments
inad9300 commented
Using version 0.5.4, after having interrupted a thread in which an open subscription was running, followed by calls to ZMonitor.close()
and ZContext.close()
, I got the following NPE (the first exception is to help understand the context):
Exception in thread "Thread-244" org.zeromq.ZMQException: Errno 4 : Interrupted function
at org.zeromq.ZMQ$Socket.mayRaise(ZMQ.java:3732)
at org.zeromq.ZMQ$Socket.recv(ZMQ.java:3530)
at org.zeromq.ZMQ$Socket.recv(ZMQ.java:3502)
...
at java.base/java.lang.Thread.run(Thread.java:840)
...
java.lang.NullPointerException: Cannot invoke "zmq.IMailbox.send(zmq.Command)" because "this.slots[tid]" is null
at zmq.Ctx.sendCommand(Ctx.java:615)
at zmq.ZObject.sendCommand(ZObject.java:410)
at zmq.ZObject.sendPipeTermAck(ZObject.java:260)
at zmq.pipe.Pipe.processPipeTermAck(Pipe.java:421)
at zmq.ZObject.processCommand(ZObject.java:91)
at zmq.Command.process(Command.java:79)
at zmq.SocketBase.processCommands(SocketBase.java:1198)
at zmq.SocketBase.inEvent(SocketBase.java:1365)
at zmq.poll.Poller.run(Poller.java:276)
at java.base/java.lang.Thread.run(Thread.java:840)
It is worth noting that this exception is a rare occurrence, having shown up only after many similar executions of the same code.
fbacchella commented
Did you try with release 0.6.0 ?
inad9300 commented
I confirm this exception can occur in 0.6.0 (this happens sometimes in a scenario like the one described in #984; both issues may be due to the same underlying problem):
Exception in thread "ZMonitor-Sub[56]" java.lang.NullPointerException: Cannot invoke "zmq.IMailbox.send(zmq.Command)" because "this.slots[tid]" is null
at zmq.Ctx.sendCommand(Ctx.java:662)
at zmq.ZObject.sendCommand(ZObject.java:410)
at zmq.ZObject.sendReapAck(ZObject.java:290)
at zmq.SocketBase.processCommands(SocketBase.java:1183)
at zmq.SocketBase.send(SocketBase.java:854)
at zmq.SocketBase.send(SocketBase.java:792)
at org.zeromq.ZMQ$Socket.send(ZMQ.java:3445)
at org.zeromq.ZMQ$Socket.send(ZMQ.java:3359)
at org.zeromq.ZStar$Plateau.run(ZStar.java:503)
at org.zeromq.ZThread$ShimThread.run(ZThread.java:57)