Min,

MemDBConnection implements Closeable, the sockets are closed in close().

The asserts occur before executor.shutdown().  The following is a stack trace.

23:23:18.285 [main] INFO  o.s.m.TestFinchAPIThreaded - Finch API Collection Test
23:23:18.287 [main] INFO  o.s.m.TestFinchAPIThreaded - Working Directory = 
D:\github\tberkey\MemDB\api\java
23:23:18.288 [main] INFO  o.s.m.TestFinchAPIThreaded - Connecting to url: 
tcp://memdb-dev-1.aws.synthostech.com:5677
23:23:18.291 [pool-1-thread-1] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-1 Start
23:23:18.291 [pool-1-thread-2] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-2 Start
23:23:18.291 [pool-1-thread-3] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-3 Start
23:23:18.291 [pool-1-thread-4] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-4 Start
23:23:18.291 [pool-1-thread-5] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-5 Start
23:23:18.291 [pool-1-thread-6] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-6 Start
23:23:18.291 [pool-1-thread-7] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-7 Start
23:23:18.291 [pool-1-thread-8] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-8 Start
23:23:18.291 [pool-1-thread-9] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-9 Start
23:23:18.291 [pool-1-thread-10] INFO  o.s.m.TestFinchAPIThreaded - 
pool-1-thread-10 Start
Exception in thread "pool-1-thread-7" 23:23:21.568 [pool-1-thread-11] INFO  
o.s.m.TestFinchAPIThreaded - pool-1-thread-11 Start
java.lang.AssertionError
        at zmq.Signaler.recv(Signaler.java:173)
        at zmq.Mailbox.recv(Mailbox.java:101)
        at zmq.SocketBase.processCommands(SocketBase.java:864)
        at zmq.SocketBase.send(SocketBase.java:627)
        at org.zeromq.ZMQ$Socket.send(ZMQ.java:1302)
        at org.zeromq.ZFrame.send(ZFrame.java:150)
        at org.zeromq.ZFrame.sendAndKeep(ZFrame.java:165)
        at org.zeromq.ZMsg.send(ZMsg.java:210)
        at org.zeromq.ZMsg.send(ZMsg.java:182)
        at org.synthostech.memdb.MemdbMap.send(MemdbMap.java:973)
        at org.synthostech.memdb.MemDbConnection.<init>(MemDbConnection.java:88)
        at 
org.synthostech.memdb.MemDbConnection.getMemDbConnection(MemDbConnection.java:64)
        at 
org.synthostech.memdb.TestFinchAPIThreaded$Worker$1.initialValue(TestFinchAPIThreaded.java:38)
        at 
org.synthostech.memdb.TestFinchAPIThreaded$Worker$1.initialValue(TestFinchAPIThreaded.java:36)
        at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
        at java.lang.ThreadLocal.get(ThreadLocal.java:170)
        at 
org.synthostech.memdb.TestFinchAPIThreaded$Worker.processCommand(TestFinchAPIThreaded.java:86)
        at 
org.synthostech.memdb.TestFinchAPIThreaded$Worker.run(TestFinchAPIThreaded.java:46)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Telford Berkey
Software Architect
[email protected] 



Synthos Technologies, A Division of Qbase, LLC 
3800 Pentagon Blvd., Suite 110
Beavercreek, OH  45431

office: +937-521-4200 

www.synthostechnologies.com 

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Dongmin Yu
Sent: Tuesday, July 28, 2015 8:11 PM
To: ZeroMQ development list <[email protected]>
Subject: Re: [zeromq-dev] JeroMQ 0.3.5 - Purpose of assert on line 173 
Signaler.java

I was not able to reproduce the problem as I can compile without 
MemDBConnection class.

I have a quick question. Do you have any stack traces around the assert? Did 
the assert occurs before or after of executor.shutdown? And what explicitly 
closes the zeromq sockets?

Thanks
Min

> On Jul 28, 2015, at 2:04 PM, Telford Berkey <[email protected]> wrote:
> 
> Test case is at, http://pastebin.com/kP7ZDuEJ
> 
> MemDBConnection contains both ZContext and Socket as private attributes.  
> MemDBConnection is a ThreadLocal in the worker, therefore each thread should 
> get its own unique copy.
> 
>    private ZContext m_context;
>    private Socket m_routerSocket;
> 
> I've experimented with making the Socket a ThreadLocal, but this didn't 
> change the behavior.
> 
> When the assert trips, nbytes is always equal to zero.
> 
> Telford Berkey
> Software Architect
> [email protected] 
> 
> 
> 
> Synthos Technologies, A Division of Qbase, LLC 
> 3800 Pentagon Blvd., Suite 110
> Beavercreek, OH  45431
> 
> office: +937-521-4200 
> 
> www.synthostechnologies.com 
> 
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Dongmin Yu
> Sent: Tuesday, July 28, 2015 3:44 PM
> To: ZeroMQ development list <[email protected]>
> Subject: Re: [zeromq-dev] JeroMQ 0.3.5 - Purpose of assert on line 173 
> Signaler.java
> 
> That could happens if you share zeromq socket between threads or 
> Thread.interrupt is used.
> 
> Could you upload your test case?
> 
> Thanks
> Min
> 
>> On Jul 28, 2015, at 12:32 PM, Telford Berkey <[email protected]> wrote:
>> 
>> While running load tests with JeroMQ 0.3.5, I’ve periodically received an 
>> assertion error for line 173 in Signaler.java.
>> 
>> Other than the assert, there isn’t any error handling related to the number 
>> of bytes not being equal to 1.  If asserts are disabled for this class, 
>> everything runs correctly and messages are received fine.
>> 
>> …
>>            assert nbytes == 1;
>> …
>> 
>> Are there any issues with disabling asserts for Signaler.java?  If not, what 
>> is the purpose of line 173?
>> 
>> Regards.
>> 
>> Telford Berkey
>> Software Architect
>> [email protected]
>> 
>> <image001.jpg>
>> 
>> Synthos Technologies, A Division of Qbase, LLC
>> 3800 Pentagon Blvd., Suite 110
>> Beavercreek, OH  45431
>> 
>> office: +937-521-4200
>> 
>> www.synthostechnologies.com
>> 
>> _______________________________________________
>> zeromq-dev mailing list
>> [email protected]
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to