<div dir="ltr">Great, nice to have a test case.<div><br></div><div>I think this is a very old issue: <a href="https://zeromq.jira.com/browse/LIBZMQ-76">https://zeromq.jira.com/browse/LIBZMQ-76</a></div><div><br></div><div>

I'll put Richard's test case into the issues repository, and update issue 76.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 6, 2013 at 12:47 PM,  <span dir="ltr"><<a href="mailto:Richard_Newton@waters.com" target="_blank">Richard_Newton@waters.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<p><font face="sans-serif">Hi,</font><br>
<br>
<font face="sans-serif">I managed to reproduce something that looks like this, seen it on both Linux and windows.</font><br>
<br>
<font face="sans-serif">I modified test_inproc_connect to run the tests in a tight loop (except for test_connect_before_bind_pub_sub as that has a sleep in it), so the main looks like:</font><br>
<br>
<font face="sans-serif">        while (true)</font><br>
<font face="sans-serif">        {</font><br>
<font face="sans-serif">                test_bind_before_connect();</font><br>
<font face="sans-serif">                test_connect_before_bind();</font><br>
<font face="sans-serif">                //test_connect_before_bind_pub_sub();</font><br>
<font face="sans-serif">                test_multiple_connects();</font><br>
<font face="sans-serif">                test_multiple_threads();</font><br>
<font face="sans-serif">                test_identity();</font><br>
<font face="sans-serif">        }</font><br>
<br>
<font face="sans-serif">This gave me the output:</font><br>
<br>
<font face="sans-serif">Bad file descriptor (/home/richard/code/libzmq/src/epoll.cpp:79)</font><br>
<font face="sans-serif">Aborted</font><br>
<br>
<font face="sans-serif">On todays master.</font><br>
<br>
<font face="sans-serif">It does take a few hours to occur on my machine.</font><br>
<br>
<font face="sans-serif">Ric.</font><br>
<br>
<br>
<img width="16" height="16" border="0" alt="Inactive hide details for MinRK ---05/11/2013 10:44:47 PM---Once in a while, when running either the IPython or PyZMQ test suit"><font color="#424282" face="sans-serif">MinRK ---05/11/2013 10:44:47 PM---Once in a while, when running either the IPython or PyZMQ test suite, I still get this error:</font><br>


<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">MinRK <<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif">"0MQ development list" <<a href="mailto:zeromq-dev@lists.zeromq.org" target="_blank">zeromq-dev@lists.zeromq.org</a>>, </font><br>


<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">05/11/2013 10:44 PM</font></p><div class="im"><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">[zeromq-dev] Bad file descriptor in rm_fd()</font><br>
</div><font size="1" color="#5F5F5F" face="sans-serif">Sent by:       </font><font size="1" face="sans-serif"><a href="mailto:zeromq-dev-bounces@lists.zeromq.org" target="_blank">zeromq-dev-bounces@lists.zeromq.org</a></font><br>


<hr width="100%" size="2" align="left" noshade style="color:#8091a5"><div><div class="h5"><br>
<br>
<br>
<font size="3" face="serif">Once in a while, when running either the IPython or PyZMQ test suite, I still get this error:</font><br>
<br>
<font size="3" face="serif">    Bad file descriptor (kqueue.cpp:77)</font><br>
<br>
<font size="3" face="serif">or</font>
</div></div><p></p><div><div class="h5"><font size="3" face="serif">    Bad file descriptor (epoll.cpp:81)</font>
</div></div><p></p><div><div class="h5"><font size="3" face="serif">Stack trace suggests that this happens when destroying a context:</font><br>
<br>
<font size="3" face="serif">Thread 0:</font><br>
<font size="3" face="serif">1   libzmq.3.dylib                 0x000000010f26b170 zmq::signaler_t::send() + 52</font><br>
<font size="3" face="serif">2   libzmq.3.dylib                 0x000000010f261b2f zmq::object_t::send_stop() + 35</font><br>
<font size="3" face="serif">3   libzmq.3.dylib                 0x000000010f2534a7 zmq::ctx_t::~ctx_t() + 59</font><br>
<font size="3" face="serif">4   libzmq.3.dylib                 0x000000010f253a29 zmq::ctx_t::terminate() + 439</font><br>
<font size="3" face="serif">5   libzmq.3.dylib                 0x000000010f27c071 zmq_ctx_term + 35</font><br>
<br>
<br>
<font size="3" face="serif">Thread 6 Crashed:</font><br>
<font size="3" face="serif">0   libsystem_kernel.dylib         0x00007fff94a4d866 __pthread_kill + 10</font><br>
<font size="3" face="serif">1   libsystem_pthread.dylib       0x00007fff8cac835c pthread_kill + 92</font><br>
<font size="3" face="serif">2   libsystem_c.dylib             0x00007fff97570bba abort + 125</font><br>
<font size="3" face="serif">3   libzmq.3.dylib                 0x000000010f25a9e1 zmq::zmq_abort(char const*) + 9</font><br>
<font size="3" face="serif">4   libzmq.3.dylib                 0x000000010f25d0fe zmq::kqueue_t::kevent_delete(int, short) + 142</font><br>
<font size="3" face="serif">5   libzmq.3.dylib                 0x000000010f25d1b0 zmq::kqueue_t::rm_fd(void*) + 42</font><br>
<font size="3" face="serif">6   libzmq.3.dylib                 0x000000010f2687a3 zmq::reaper_t::process_stop() + 59</font><br>
<font size="3" face="serif">7   libzmq.3.dylib                 0x000000010f26862b zmq::reaper_t::in_event() + 161</font><br>
<font size="3" face="serif">8   libzmq.3.dylib                 0x000000010f25d40c zmq::kqueue_t::loop() + 362</font><br>
<br>
<br>
<font size="3" face="serif">I am still seeing this error once in a while with libzmq-master as of today. I don't think it's a recent regression.  A minimal test case is difficult, since it only seems to raise after at least a hundred tests, and only a small fraction of the time even then.  Given that it is always late in the process that the assert is hit, I have always assumed that it is FD exhaustion that is causing the problem, but I am not actually sure, and I am fairly careful about cleaning up sockets.</font><br>


<br>
<font size="3" face="serif">Properties of the test suite that sees the issue:</font><br>
<br>
<font size="3" face="serif">- create and destroy many contexts and sockets</font><br>
<font size="3" face="serif">- the previous test's context should always be destroyed before the next test starts</font><br>
<font size="3" face="serif">- it is not reliably the same test where the assert is hit</font><br>
<br>
<font size="3" face="serif">I'm afraid I don't know enough about the internals to really tell what's going on here, or figure out why the deleted FD is invalid (maybe it was already closed, and the error should be ignored?).</font><br>


<br>
<font size="3" face="serif">Anyone have insight on what might be causing the problem, or how I might dig deeper into more useful information?</font><br>
<br>
</div></div><font size="3" face="serif">-MinRK</font><tt><font>_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org" target="_blank">zeromq-dev@lists.zeromq.org</a><br>
</font></tt><tt><font><a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a></font></tt><tt><font><br>
</font></tt><br>

<p></p><pre>===========================================================
The information in this email is confidential, and is intended solely for the addressee(s). 
Access to this email by anyone else is unauthorized and therefore prohibited.  If you are 
not the intended recipient you are notified that disclosing, copying, distributing or taking 
any action in reliance on the contents of this information is strictly prohibited and may be unlawful.
===========================================================</pre><p></p><p></p><p></p><p></p></div>
<br>_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
<a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>-<br>Pieter Hintjens<br>CEO of iMatix.com<br>Founder of ZeroMQ community<br>blog: <a href="http://hintjens.com" target="_blank">http://hintjens.com</a>
</div>