Ed Schouten
2018-Jun-17 17:27 UTC
syslogd became silent between 11.2-PRERELEASE r334874 and r335282
Hi Michael, 2018-06-17 17:52 GMT+02:00 Michael Grimm <trashcan at ellael.org>:> I do believe that this commit might be the cause: > https://svnweb.freebsd.org/base/stable/11/usr.sbin/syslogd/Makefile?revision=335059&view=markup&sortby=fileThanks for reporting this issue. I just did some debugging on my system and I think I was able to reproduce this issue. It seems as if I made a tiny mistake in how I implemented the RFC 5426 UDP message size limiting. Could you please give the following patch for syslogd a try? Index: usr.sbin/syslogd/syslogd.c ==================================================================--- usr.sbin/syslogd/syslogd.c (revision 334706) +++ usr.sbin/syslogd/syslogd.c (working copy) @@ -1613,8 +1613,8 @@ struct iovec *last; size_t diff; - while (size > il->totalsize) { - diff = size - il->totalsize; + while (il->totalsize > size) { + diff = il->totalsize - size; last = &il->iov[il->iovcnt - 1]; if (diff >= last->iov_len) { /* Remove the last iovec entirely. */ It should be sufficient to apply this to just the 'client' syslogd. There is no need to patch the central (storage) server. -- Ed Schouten <ed at nuxi.nl> Nuxi, 's-Hertogenbosch, the Netherlands
Michael Grimm
2018-Jun-17 20:04 UTC
syslogd became silent between 11.2-PRERELEASE r334874 and r335282
Hi Ed --> On 17. Jun 2018, at 19:27, Ed Schouten <ed at nuxi.nl> wrote: > > Hi Michael, > > 2018-06-17 17:52 GMT+02:00 Michael Grimm <trashcan at ellael.org>: >> I do believe that this commit might be the cause: >> https://svnweb.freebsd.org/base/stable/11/usr.sbin/syslogd/Makefile?revision=335059&view=markup&sortby=file > > Thanks for reporting this issue. I just did some debugging on my > system and I think I was able to reproduce this issue. It seems as if > I made a tiny mistake in how I implemented the RFC 5426 UDP message > size limiting. Could you please give the following patch for syslogd a > try? > > Index: usr.sbin/syslogd/syslogd.c > ==================================================================> --- usr.sbin/syslogd/syslogd.c (revision 334706) > +++ usr.sbin/syslogd/syslogd.c (working copy) > @@ -1613,8 +1613,8 @@ > struct iovec *last; > size_t diff; > > - while (size > il->totalsize) { > - diff = size - il->totalsize; > + while (il->totalsize > size) { > + diff = il->totalsize - size; > last = &il->iov[il->iovcnt - 1]; > if (diff >= last->iov_len) { > /* Remove the last iovec entirely. */ > > It should be sufficient to apply this to just the 'client' syslogd. > There is no need to patch the central (storage) server.Sorry for my late response, and: Thanks, your patch fixed it! I am not that much experienced, but that's what I did: #) svn update -r 335059 #) applied your patch #) recompiled world and kernel #) reinstalled world and kernel #) reinstalled my jail's basejail (ezjail technology) #) reboot -> return of syslogd clients being able to send syslog messages from jails to host's syslogd I hope that this is sufficient prove that your patch will work? Thank you very much and with kind regards, Michael