[ 
https://issues.apache.org/jira/browse/PROTON-1499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16051967#comment-16051967
 ] 

Alan Conway commented on PROTON-1499:
-------------------------------------

Theory: the epoll proactor creates a socket and a timer FD per connection. 
Possible your tests are running out of FDs on one and mine on the other - can't 
think why though. I've tried fiddling with odd/even numbered limits and my 
tests still pass. PROTON-1504 changes the behavior here - there is special 
treatment for ENFILE/EMFILE only at the accept(), and we suppress the 
PN_LISTENER_ACCEPT event in that case. Failing to create the timer (including 
ENFILE/EMFILE) is now treated as a  normal connection failure and not given 
special treatmet as part of pn_proactor_accept().

> c-fdlimit-test fails for epoll proactor
> ---------------------------------------
>
>                 Key: PROTON-1499
>                 URL: https://issues.apache.org/jira/browse/PROTON-1499
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.18.0
>         Environment: fedora 25
>            Reporter: Andrew Stitcher
>            Assignee: Alan Conway
>             Fix For: 0.18.0
>
>
> The c-fdlmit-test consistently fails when using the epoll proactor. The libuv 
> proactor does not fail.
> {noformat}
> 26: Test command: /usr/bin/python 
> "/home/andrew/Work/proton/src/proton-c/src/tests/fdlimit.py"
> 26: Environment variables: 
> 26:  
> PATH=/home/andrew/Work/proton/bld-c++11/proton-c/src/tests:/home/andrew/Work/proton/bld-c++11/examples/c/proactor:/home/andrew/.opam/4.03.0/bin:/home/andrew/bin:/home/andrew/.local/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/andrew/.golang/bin
> 26:  PYTHONPATH=/home/andrew/Work/proton/src/tools/py
> 26: Test timeout computed to be: 1500
> 26: E
> 26: ======================================================================
> 26: ERROR: test_fd_limit_broker (__main__.FdLimitTest)
> 26: Check behaviour when running out of file descriptors on accept
> 26: ----------------------------------------------------------------------
> 26: Traceback (most recent call last):
> 26:   File "/home/andrew/Work/proton/src/proton-c/src/tests/fdlimit.py", line 
> 82, in test_fd_limit_broker
> 26:     self.assertIn("10 messages received", self.proc(["receive", "", 
> b.port]).wait_exit())
> 26:   File "/home/andrew/Work/proton/src/proton-c/src/tests/fdlimit.py", line 
> 39, in __exit__
> 26:     raise ProcError(b, "broker crash")
> 26: ProcError: ['prlimit', '-n256', 'broker', '', '44785'] broker crash, 
> code=-6
> 26: vvvvvvvvvvvvvvvv
> 26: listening
> 26: PN_TRANSPORT_CLOSED: proton:io: Too many open files - accepting from :5672
> 26: broker: /home/andrew/Work/proton/src/proton-c/src/core/transport.c:2950: 
> pn_transport_pending: Assertion `transport' failed.
> 26: ^^^^^^^^^^^^^^^^
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to