This is the patch for v4-devel (master will follow soon): http://git.adiscon.com/?p=rsyslog.git;a=commitdiff;h=d19806431653e6575a002ab4 8206c16d3041e465
While I make such changes only to the latest devel, you should be able to apply the patch without problems to almost all versions. Rainer > -----Original Message----- > From: [email protected] [mailto:rsyslog- > [email protected]] On Behalf Of Rainer Gerhards > Sent: Monday, April 26, 2010 11:46 AM > To: rsyslog-users > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID non-root. > > While I agree that it is ugly, it sounds like a good idea ;) > > Rainer > > > -----Original Message----- > > From: [email protected] [mailto:rsyslog- > > [email protected]] On Behalf Of George Bonser > > Sent: Monday, April 26, 2010 11:44 AM > > To: rsyslog-users > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID non- > root. > > > > Maybe a quick fix would be a "sleep" directive you could place on the > > main thread to cause it to delay a bit? That would not be expected to > > be > > a permanent "fix" but simply a work-around. If I could place > something > > like "sleep 5" that would cause the main thread to wait a little > while, > > that could work around the race. > > > > > > > > > -----Original Message----- > > > From: [email protected] [mailto:rsyslog- > > > [email protected]] On Behalf Of Rainer Gerhards > > > Sent: Monday, April 26, 2010 2:32 AM > > > To: rsyslog-users > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > > non-root. > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:rsyslog- > > > > [email protected]] On Behalf Of George Bonser > > > > Sent: Monday, April 26, 2010 10:52 AM > > > > To: rsyslog-users > > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > non- > > > root. > > > > > > > > I think the problem is that it spawns a new thread to load the > udp > > > and > > > > tcp modules and that should be done by the main thread so that it > > > gets > > > > done in sequence before the privs are processed. > > > > > > I think your analysis is right, this is where the race happens. > > > However, the > > > cure is far from being as simple as it sounds: you are actually > > > recommending > > > a full redesign of the input plugin interface. It would also have > > other > > > implications, including a potential unacceptable startup delay. > > > > > > This is what I quoted with "a lot of work to do". So, > unfortunately, > > it > > > does > > > not look like something I can fix quickly. Let me once again > > reiterate > > > that > > > the priv drop code is far from being a complete solution. I added > the > > > current > > > code when I saw that it was easy to do and useful for some > > situations. > > > We > > > once had someone who was interested in sponsoring a complete > > > implementation, > > > but that did unfortunately not materialize. As I am currently short > > on > > > time > > > due to other work to do, I do not find sufficient time to look at > > this. > > > It is > > > far from being a trivial task, even though I hope to be able to do > it > > > without > > > a full redesign. I still think it is 2+ weeks worth of work. > > > > > > Rainer > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: [email protected] [mailto:rsyslog- > > > > > [email protected]] On Behalf Of Rainer Gerhards > > > > > Sent: Monday, April 26, 2010 1:37 AM > > > > > To: rsyslog-users > > > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > > > > non-root. > > > > > > > > > > No problem -- the mailing list processor held it due to size > > > > > constrainst (and > > > > > I rejected it now). The size restriction was actually the prime > > > issue > > > > > why I > > > > > requested it to go to my private mail. So: nothing bad has > > happened > > > > ;) > > > > > > > > > > I'll try to look at the log asap and let you know what I find. > > > > > > > > > > Rainer > > > > > > > > > > > -----Original Message----- > > > > > > From: [email protected] [mailto:rsyslog- > > > > > > [email protected]] On Behalf Of George Bonser > > > > > > Sent: Monday, April 26, 2010 10:10 AM > > > > > > To: rsyslog-users > > > > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > > > non- > > > > > root. > > > > > > > > > > > > Oops, sorry, I did not mean to send that attachment to the > > list. > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: [email protected] [mailto:rsyslog- > > > > > > > [email protected]] On Behalf Of Rainer Gerhards > > > > > > > Sent: Sunday, April 25, 2010 11:18 PM > > > > > > > To: rsyslog-users > > > > > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after > UID > > > > > > non-root. > > > > > > > > > > > > > > The privilege drop code is still a hack. It needs proper > > > > > engineering > > > > > > > (as > > > > > > > stated in the doc). So it could very well be a race in this > > > > regard. > > > > > > On > > > > > > > the > > > > > > > other hand, it does not look so. Could you send me complete > > > debug > > > > > > logs > > > > > > > to my > > > > > > > private email address both with and without privilege drop > > > inside > > > > > > your > > > > > > > config. Maybe it is a simple thing, then I could fix it > > without > > > > the > > > > > > > large > > > > > > > effort really required. > > > > > > > > > > > > > > Rainer > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: [email protected] [mailto:rsyslog- > > > > > > > > [email protected]] On Behalf Of George Bonser > > > > > > > > Sent: Monday, April 26, 2010 2:24 AM > > > > > > > > To: rsyslog-users > > > > > > > > Subject: [rsyslog] Problem with 4.6.2 TCP binds after UID > > > non- > > > > > root. > > > > > > > > > > > > > > > > Can't bind to TCP socket. The tcp module loads but I > > noticed > > > > > that > > > > > > it > > > > > > > > only tries to bind the socket AFTER it has dropped is > privs > > > so > > > > it > > > > > > can > > > > > > > > not bind to a socket less than 1024. UDP bind works as > > that > > > > > seems > > > > > > to > > > > > > > > bind immediately after module load while the prog is > still > > > > > running > > > > > > as > > > > > > > > root. If I set a tcp port >1024, it works. Could this be > a > > > > race > > > > > > > > between > > > > > > > > two threads where a different thread is setting the > UID/GID > > > and > > > > a > > > > > > > > different one is binding the connections and the UID gets > > > > changed > > > > > > > > before > > > > > > > > the binding thread has a chance to get the socket? > > > > > > > > > > > > > > > > Modules being loaded: > > > > > > > > > > > > > > > > 9572.648625421:7f07c0a216f0: cfline: '$ModLoad imudp' > > > > > > > > 9572.648636228:7f07c0a216f0: Requested to load module > > 'imudp' > > > > > > > > 9572.648645873:7f07c0a216f0: loading module > > > > > > > '/usr/lib/rsyslog/imudp.so' > > > > > > > > 9572.648713628:7f07c0a216f0: source file imudp.c > requested > > > > > > reference > > > > > > > > for > > > > > > > > module 'lmnet', reference count now 4 > > > > > > > > 9572.648734955:7f07c0a216f0: module of type 0 being > loaded. > > > > > > > > 9572.648747037:7f07c0a216f0: cfline: '$UDPServerRun 514' > > > > > > > > 9572.648759295:7f07c0a216f0: Trying to open syslog UDP > > ports > > > at > > > > > > > *:514. > > > > > > > > 9572.648845036:7f07c0a216f0: cfline: '$ModLoad imtcp' > > > > > > > > 9572.648859626:7f07c0a216f0: Requested to load module > > 'imtcp' > > > > > > > > 9572.648869611:7f07c0a216f0: loading module > > > > > > > '/usr/lib/rsyslog/imtcp.so' > > > > > > > > 9572.648938665:7f07c0a216f0: source file imtcp.c > requested > > > > > > reference > > > > > > > > for > > > > > > > > module 'lmnet', reference count now 5 > > > > > > > > 9572.648953892:7f07c0a216f0: caller requested object > > > 'netstrm', > > > > > not > > > > > > > > found (iRet -3003) > > > > > > > > 9572.648968610:7f07c0a216f0: Requested to load module > > > > > 'lmnetstrms' > > > > > > > > 9572.648979310:7f07c0a216f0: loading module > > > > > > > > '/usr/lib/rsyslog/lmnetstrms.so' > > > > > > > > 9572.649053366:7f07c0a216f0: module of type 2 being > loaded. > > > > > > > > 9572.649068131:7f07c0a216f0: source file imtcp.c > requested > > > > > > reference > > > > > > > > for > > > > > > > > module 'lmnetstrms', reference count now 1 > > > > > > > > 9572.649079163:7f07c0a216f0: caller requested object > > > > 'tcps_sess', > > > > > > not > > > > > > > > found (iRet -3003) > > > > > > > > 9572.649095086:7f07c0a216f0: Requested to load module > > > > 'lmtcpsrv' > > > > > > > > 9572.649105485:7f07c0a216f0: loading module > > > > > > > > '/usr/lib/rsyslog/lmtcpsrv.so' > > > > > > > > 9572.649188177:7f07c0a216f0: source file tcps_sess.c > > > requested > > > > > > > > reference > > > > > > > > for module 'lmnetstrms', reference count now 2 > > > > > > > > 9572.649206712:7f07c0a216f0: source file tcpsrv.c > requested > > > > > > reference > > > > > > > > for module 'lmnet', reference count now 6 > > > > > > > > 9572.649217297:7f07c0a216f0: source file tcpsrv.c > requested > > > > > > reference > > > > > > > > for module 'lmnetstrms', reference count now 3 > > > > > > > > 9572.649231362:7f07c0a216f0: module of type 2 being > loaded. > > > > > > > > 9572.649241801:7f07c0a216f0: source file imtcp.c > requested > > > > > > reference > > > > > > > > for > > > > > > > > module 'lmtcpsrv', reference count now 1 > > > > > > > > 9572.649252009:7f07c0a216f0: source file imtcp.c > requested > > > > > > reference > > > > > > > > for > > > > > > > > module 'lmtcpsrv', reference count now 2 > > > > > > > > 9572.649287366:7f07c0a216f0: module of type 0 being > loaded. > > > > > > > > 9572.649299663:7f07c0a216f0: cfline: '$InputTCPServerRun > > 514' > > > > > > > > 9572.649321373:7f07c0a216f0: cfline: > > > > '$ActionFileDefaultTemplate > > > > > > > > RSYSLOG_TraditionalFileFormat' > > > > > > > > 9572.649334345:7f07c0a216f0: cfline: > '$RepeatedMsgReduction > > > on' > > > > > > > > 9572.649382777:7f07c0a216f0: cfline: '$FileOwner syslog' > > > > > > > > 9572.649703828:7f07c0a216f0: uid 101 obtained for user > > > 'syslog' > > > > > > > > 9572.649720763:7f07c0a216f0: cfline: '$FileGroup adm' > > > > > > > > 9572.649790575:7f07c0a216f0: gid 4 obtained for group > 'adm' > > > > > > > > 9572.649805222:7f07c0a216f0: cfline: '$FileCreateMode > 0640' > > > > > > > > 9572.649816505:7f07c0a216f0: cfline: '$DirCreateMode > 0755' > > > > > > > > 9572.649827020:7f07c0a216f0: cfline: '$Umask 0022' > > > > > > > > 9572.649840237:7f07c0a216f0: umask set to 0022. > > > > > > > > 9572.649850064:7f07c0a216f0: cfline: '$PrivDropToUser > > syslog' > > > > > > > > 9572.649885709:7f07c0a216f0: uid 101 obtained for user > > > 'syslog' > > > > > > > > 9572.649898391:7f07c0a216f0: cfline: '$PrivDropToGroup > > > syslog' > > > > > > > > 9572.649934688:7f07c0a216f0: gid 103 obtained for group > > > > 'syslog' > > > > > > > > 9572.649948278:7f07c0a216f0: cfline: '$IncludeConfig > > > > > > > > /etc/rsyslog.d/*.conf' > > > > > > > > 9572.650017305:7f07c0a216f0: requested to include config > > file > > > > > > > > '/etc/rsyslog.d/50-default.conf' > > > > > > > > 9572.650045382:7f07c0a216f0: cfline: 'auth,authpriv.* > > > > > > > > /var/log/auth.log' > > > > > > > > > > > > > > > > GID and UID being changed: > > > > > > > > > > > > > > > > 9572.671888467:7f07be402910: doWrite, pData->pStrm > > 0x1e11d60, > > > > > > lenBuf > > > > > > > 78 > > > > > > > > 9572.671902407:7f07c0a216f0: logmsg: flags 1, from > > > 'trebuchet', > > > > > msg > > > > > > > > rsyslogd's groupid changed to 103 > > > > > > > > 9572.671920644:7f07c0a216f0: Message has legacy syslog > > > format. > > > > > > > > 9572.671933956:7f07be402910: testing filter, f_pmask 1 > > > > > > > > 9572.671947526:7f07be402910: testing filter, f_pmask 240 > > > > > > > > 9572.671957623:7f07be402910: Called action, logging to > > > builtin- > > > > > pipe > > > > > > > > 9572.671969801:7f07be402910: extend buf to at least 16, > > done > > > > 128 > > > > > > > > 9572.671982061:7f07be402910: (/dev/xconsole) > > > > > > > > 9572.671999956:7f07c0a216f0: main Q: entry added, size > now > > 2 > > > > > > entries > > > > > > > > 9572.672025520:7f07c0a216f0: wtpAdviseMaxWorkers signals > > busy > > > > > > > > 9572.672041633:7f07c0a216f0: main Q: EnqueueMsg advised > > > worker > > > > > > start > > > > > > > > 9572.672059720:7f07be402910: Action requested to be > > > suspended, > > > > > done > > > > > > > > that. > > > > > > > > 9572.672085037:7f07be402910: main Q: entry deleted, state > > 0, > > > > size > > > > > > now > > > > > > > 1 > > > > > > > > entries > > > > > > > > 9572.672099142:7f07c0a216f0: setuid(101): 0 > > > > > > > > 9572.672122289:7f07be402910: testing filter, f_pmask 0 > > > > > > > > 9572.672136161:7f07be402910: testing filter, f_pmask 255 > > > > > > > > 9572.672147659:7f07be402910: Called action, logging to > > > builtin- > > > > > file > > > > > > > > 9572.672162158:7f07c0a216f0: logmsg: flags 1, from > > > 'trebuchet', > > > > > msg > > > > > > > > rsyslogd's userid changed to 101 > > > > > > > > 9572.672179992:7f07c0a216f0: Message has legacy syslog > > > format. > > > > > > > > 9572.672192329:7f07be402910: extend buf to at least 138, > > done > > > > 256 > > > > > > > > 9572.672200766:7f07be402910: file to log to: > > /var/log/syslog > > > > > > > > > > > > > > > > UDP socket bind succeeded but TCP bind fails: > > > > > > > > > > > > > > > > 9572.672546363:7f07c0a216f0: initialization completed, > > > > > > transitioning > > > > > > > to > > > > > > > > regular run mode > > > > > > > > 9572.672557359:7f07bc3fe910: Listening on UDP syslogd > > socket > > > 4 > > > > > > > > (IPv4/port 514). > > > > > > > > 9572.672576606:7f07bc3fe910: --------imUDP calling > select, > > > > active > > > > > > > file > > > > > > > > descriptors (max 4): 4 > > > > > > > > 9572.672594858:7f07bdc01910: --------imuxsock calling > > select, > > > > > > active > > > > > > > > file descriptors (max 5): 3 5 > > > > > > > > 9572.672630154:7f07bd400910: wtpAdviseMaxWorkers signals > > busy > > > > > > > > 9572.672646478:7f07bbbfd910: caller requested object > > > > 'nsd_ptcp', > > > > > > not > > > > > > > > found (iRet -3003) > > > > > > > > 9572.672663716:7f07bbbfd910: Requested to load module > > > > > 'lmnsd_ptcp' > > > > > > > > 9572.672671184:7f07bbbfd910: loading module > > > > > > > > '/usr/lib/rsyslog/lmnsd_ptcp.so' > > > > > > > > 9572.672745761:7f07bbbfd910: source file nsd_ptcp.c > > requested > > > > > > > reference > > > > > > > > for module 'lmnetstrms', reference count now 4 > > > > > > > > 9572.672757197:7f07bbbfd910: module of type 2 being > loaded. > > > > > > > > 9572.672763826:7f07bbbfd910: source file netstrms.c > > requested > > > > > > > reference > > > > > > > > for module 'lmnsd_ptcp', reference count now 1 > > > > > > > > 9572.672770522:7f07bbbfd910: creating tcp listen socket > on > > > port > > > > > 514 > > > > > > > > 9572.672803781:7f07bbbfd910: error 13 while binding tcp > > > > socketWe > > > > > > > could > > > > > > > > initialize 0 TCP listen sockets out of 1 we recei > > > > > > > > ved - this may or may not be an error indication. > > > > > > > > 9572.672824933:7f07bbbfd910: No TCP listen sockets could > > > > > > successfully > > > > > > > > be > > > > > > > > initializedCalled LogError, msg: Could not crea > > > > > > > > te tcp listener, ignoring port 514. > > > > > > > > 9572.672844597:7f07bbbfd910: logmsg: flags 1, from > > > 'trebuchet', > > > > > msg > > > > > > > > Could not create tcp listener, ignoring port 514. [t > > > > > > > > ry http://www.rsyslog.com/e/2077 ] > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > rsyslog mailing list > > > > > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > > > > > http://www.rsyslog.com > > > > > > > _______________________________________________ > > > > > > > rsyslog mailing list > > > > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > > > > http://www.rsyslog.com > > > > > > _______________________________________________ > > > > > > rsyslog mailing list > > > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > > > http://www.rsyslog.com > > > > > _______________________________________________ > > > > > rsyslog mailing list > > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > > http://www.rsyslog.com > > > > _______________________________________________ > > > > rsyslog mailing list > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > http://www.rsyslog.com > > > _______________________________________________ > > > rsyslog mailing list > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > http://www.rsyslog.com > > _______________________________________________ > > rsyslog mailing list > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > http://www.rsyslog.com > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com

