> On Apr 14, 2017, at 20:12, Peter Wemm <pe...@wemm.org> wrote: > > On Friday, April 14, 2017 07:36:55 PM Peter Wemm wrote: >> On Friday, April 14, 2017 02:14:16 PM Ngie Cooper wrote: >>>> On Apr 14, 2017, at 14:10, Maxim Sobolev <sobo...@sippysoft.com> wrote: >>>> >>>> Peter, Ngie, >>>> >>>> Looks like out of that refactoring came a logical bug that is present in >>>> the head, which causes syslod to first to shutdown the socket for >>>> reading >>>> and then try to select/recv on it (which is somewhat stupid). And that >>>> issue has been masked by shutdown() on datagram socket becoming >>>> effectively a NOP in 11 & head 20 months ago. It only affects head >>>> though, 11-stable still has the old code which does not include that >>>> half-closed socket into the select list. Attached patch is expected to >>>> fix head, Peter, it would be nice if you can give it a try (restoring >>>> latest changes into uipc_sockets.c) and let me know if it helps. >>>> >>>> Thanks! >>> >>> CCing hrs@ for input as he did the refactoring. >>> Thanks! >>> -Ngie >>> >>> PS LGTM with the change. Will wait for feedback from wemm@. >> >> This is definitely not working. I get ENOSPC and listen queue overflows on >> /var/run/logpriv now. >> >> Grabbing an old 10.3 /usr/sbin/syslogd and placing it on the top of the 12.x >> one worked fine, aside from the include statements. > > This can't be right: > if (SecureMode || res->ai_family == AF_LOCAL) { > /* Forbid communication in secure mode. */ > if (shutdown(s, SHUT_RD) < 0 && > errno != ENOTCONN) { > logerror("shutdown"); > if (!Debug) > die(0); > } > dprintf("listening on socket\n"); > sl_recv = NULL; > } > > This appears to disable unix domain sockets like /var/run/log and > /var/run/logpriv.
ACK. This looks like a fun bug. -Ngie
signature.asc
Description: Message signed with OpenPGP using GPGMail