If the nunc-stans listener is disabled, due to FDs being exhausted, the server will crash if it is stopped.
We should not have to check the internals of the prfd. Something odd is going on, like we are closing the prfd twice, so that the second closure causes the crash.
So does disabling a listener via ns_job_modify(listener->ns_job, NS_JOB_DISABLE_ONLY) close the listener fd? If so, where? If not, how do we close the disabled listener fd?
AFAICT, event_del does not close the fd - it just tells the event framework not to listen for events on this fd. I've looked at the source code for libevent - there is no call to close(ev->fd).
Ah, ok. Looks like we should call this: {{{ ns_disable_listener(listener_info *listener) ... ns_job_modify(listener->ns_job, NS_JOB_DISABLE_ONLY|NS_JOB_PRESERVE_FD); ... }}} That should tell nunc-stans not to close the fd.
revision 0001-Ticket-48040-preserve-the-FD-when-disabling-a-listen.patch
Replying to [comment:8 rmeggins]:
I was just looking into those flags :-) Very good, new patch attached.
To git+ssh://git.engineering.redhat.com/srv/git/users/mareynol/ds.git 9bef065..14d8059 nunc-stans -> nunc-stans commit 14d80591be13c82ca63248f18dbd6a6c45379792
Metadata Update from @mreynolds: - Issue assigned to mreynolds - Issue set to the milestone: 1.3.4 backlog
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/1371
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: Fixed)
Login to comment on this ticket.