Thanks Rainer. I'll see whether I can strip down the code to have a repro. For the plugin to be open source, we didn't make a decision yet. I need to get permission from my manager.
On Wed, Oct 8, 2014 at 12:25 AM, Rainer Gerhards <[email protected]> wrote: > 2014-10-08 2:33 GMT+02:00 Liwei Peng <[email protected]>: > > > I did more debugging, not root cause yet. but it could be related to the > > fact that my new thread is created in the BEGINcreateInstance. > > > > > I don't think so. > > > > Is this the right place to create a helper thread? If not, what other > place > > is best? > > > > I only need to create one helper thread. it will run forever. > > > > > Here is one place which is used by omfile when additional threads are > created: > > https://github.com/rsyslog/rsyslog/blob/master/runtime/stream.c#L874 > > maybe this is useful to look at. > > Would it be possible that you strip down your plugin so that it only does > dbgprintf's and nothing else. And add the autotools plumbing so that I can > build it together with rsyslog. If so, I'd build it and see what happens on > my machine. > > As a related note, would you be willing to contribute the plugin to the > rsyslog community? If so, I could integrate it into the source tree (with > full credits, of course). > > Rainer > > > > On Tue, Oct 7, 2014 at 1:00 PM, David Lang <[email protected]> wrote: > > > > > On Tue, 7 Oct 2014, Liwei Peng wrote: > > > > > > Once I ran rsyslog with "-dn" mode, everything works as expected. > > >> > > > > > > ouch, that makes things hard :-( > > > > > > just to be sure we're on the same page, you were running it with -dn > as a > > > service, right? > > > > > > the new > > >> thread is created and running properly. With only "-d", the thread > will > > >> exit within 2 seconds, just like in service mode. in the '-dn' mode, > > the > > >> rsyslog is running as the proper user (syslog/syslog), so that > shouldn't > > >> be > > >> the problem. > > >> > > >> I also made my new thread very simple by making it a do a dummy() > > while(1) > > >> loop. In the loop, just print out some msg, sleep for X seconds. then > do > > >> the doop again. > > >> > > >> What could cause this behaviour difference? > > >> > > > > > > if it works when you run it as root, but not when the system runs it, > > that > > > means that there is something different between the two. On RHEL > systems > > > this is typically SELinux, which is why we looked there first. > > > > > > Please take a very close look at the system startup scripts and > > > parameters, there has got to be something different there compared to > > when > > > you start it manually. > > > > > > -d says to spit out debug output, -n says to not go into the background > > as > > > a daemon, but also ends up changing timing of some things > > > > > > if -n makes it work, then look for oddities or race conditions related > to > > > your thread. > > > > > > if -d spits out data all the way until it dies, look through that > output > > > to see if it says why it's dieing. > > > > > > David Lang > > > > > > > > > Thanks, > > >> > > >> Liwei > > >> > > >> > > >> On Tue, Oct 7, 2014 at 10:45 AM, David Lang <[email protected]> wrote: > > >> > > >> can you configure the startup to start it in debug mode (-dn) and > dump > > >>> the > > >>> output to a file? that could give us a clue about what's failing. > > >>> > > >>> David Lang > > >>> > > >>> On Tue, 7 Oct 2014, Liwei Peng wrote: > > >>> > > >>> Date: Tue, 7 Oct 2014 10:42:55 -0700 > > >>> > > >>>> From: Liwei Peng <[email protected]> > > >>>> Reply-To: rsyslog-users <[email protected]> > > >>>> To: rsyslog-users <[email protected]> > > >>>> Subject: Re: [rsyslog] output plugin: new thread is not running > > properly > > >>>> in > > >>>> service mode > > >>>> > > >>>> > > >>>> Thanks David. > > >>>> > > >>>> I found that rsyslogd is in the disabled profile directory. Also, > even > > >>>> after I totally stop and teardown the apparmor service, my new > thread > > >>>> still > > >>>> has trouble to start up. > > >>>> > > >>>> /etc/apparmor.d/disable$ ls > > >>>> usr.bin.firefox usr.sbin.rsyslogd > > >>>> > > >>>> > > >>>> On Tue, Oct 7, 2014 at 8:43 AM, David Lang <[email protected]> wrote: > > >>>> > > >>>> Ubuntu uses AppArmor instead of SELinux > > >>>> > > >>>>> > > >>>>> /etc/apparmor.d/usr.sbin.rsyslogd controls the AA config for > rsyslog. > > >>>>> > > >>>>> I don't know exactly what your additional thread is trying to > access, > > >>>>> but > > >>>>> you probably just need to add the permissions here to grant it the > > >>>>> access. > > >>>>> > > >>>>> David Lang > > >>>>> > > >>>>> > > >>>>> On Tue, 7 Oct 2014, Liwei Peng wrote: > > >>>>> > > >>>>> Thanks David and Rainer. > > >>>>> > > >>>>> > > >>>>>> I am using Ubuntu 14.04 LTS 64-bit. However, when I ran > 'getenforce' > > >>>>>> on > > >>>>>> my > > >>>>>> computer, it showed "Disabled". SeLinux package was not installed > on > > >>>>>> my > > >>>>>> computer either. > > >>>>>> > > >>>>>> > > >>>>>> On Tue, Oct 7, 2014 at 12:31 AM, Rainer Gerhards < > > >>>>>> [email protected]> > > >>>>>> wrote: > > >>>>>> > > >>>>>> 2014-10-07 5:04 GMT+02:00 David Lang <[email protected]>: > > >>>>>> > > >>>>>> > > >>>>>>> Are you using a system that has SELinux installed? on such > systems > > >>>>>>> the > > >>>>>>> > > >>>>>>> permissions that rsyslog has when started as a service are > > different > > >>>>>>>> than > > >>>>>>>> when you run it manually as root. > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> Yeah, as David says, it's most probably SELinux or something > > along > > >>>>>>>> > > >>>>>>>> these > > >>>>>>> lines. Rsyslog does not impose any limits on additional threads a > > >>>>>>> plugin > > >>>>>>> uses internally. For example, omfile uses multiple helper threads > > >>>>>>> when > > >>>>>>> async writes are configured. Also, there is no real difference > from > > >>>>>>> rsyslog's PoV between running in a console session vs. as > > background > > >>>>>>> service. With systemd, the code path is actually the same, as > > systemd > > >>>>>>> uses > > >>>>>>> -n itself. So if it runs in a console session but not as service, > > the > > >>>>>>> reason most probably is somewhere in the system config. > > >>>>>>> > > >>>>>>> HTH > > >>>>>>> Rainer > > >>>>>>> > > >>>>>>> > > >>>>>>> David Lang > > >>>>>>> > > >>>>>>> > > >>>>>>>> > > >>>>>>>> On Mon, 6 Oct 2014, Liwei Peng wrote: > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> In my output plugin (see attached code), because I need to > > process > > >>>>>>>> and > > >>>>>>>> > > >>>>>>>> send > > >>>>>>>>> the messages to some other daemon, I created a new pthread to > > >>>>>>>>> > > >>>>>>>>> listen/read > > >>>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> response from that daemon. All the code works well when I ran > by > > >>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>>> starting > > >>>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> rsyslog in manual mode. > > >>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>>> /usr/sbin/rsyslogd -f/etc/rsyslog.conf -u2 -n -irsyslog.pid > > >>>>>>>>> -M/usr/lib/rsyslog > > >>>>>>>>> > > >>>>>>>>> However, when I ran my plugin with rsyslogd as service, it > seems > > >>>>>>>>> that > > >>>>>>>>> my > > >>>>>>>>> new thread is started but it is not running properly. I saw the > > >>>>>>>>> thread > > >>>>>>>>> print out a startup msg but it didn't continue printing new msg > > as > > >>>>>>>>> expected. > > >>>>>>>>> > > >>>>>>>>> What's wrong with my code? is there limitation on using new > > >>>>>>>>> pthread? > > >>>>>>>>> > > >>>>>>>>> Liwei > > >>>>>>>>> > > >>>>>>>>> _______________________________________________ > > >>>>>>>>> > > >>>>>>>>> rsyslog mailing list > > >>>>>>>>> > > >>>>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>>>>> http://www.rsyslog.com/professional-services/ > > >>>>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by > a > > >>>>>>>> myriad > > >>>>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST > if > > >>>>>>>> you > > >>>>>>>> DON'T LIKE THAT. > > >>>>>>>> > > >>>>>>>> _______________________________________________ > > >>>>>>>> > > >>>>>>>> rsyslog mailing list > > >>>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>>>> http://www.rsyslog.com/professional-services/ > > >>>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>>>> myriad > > >>>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST > if > > >>>>>>> you > > >>>>>>> DON'T LIKE THAT. > > >>>>>>> > > >>>>>>> _______________________________________________ > > >>>>>>> > > >>>>>>> rsyslog mailing list > > >>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>>> http://www.rsyslog.com/professional-services/ > > >>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>>> myriad > > >>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > > you > > >>>>>> DON'T LIKE THAT. > > >>>>>> > > >>>>>> _______________________________________________ > > >>>>>> > > >>>>>> rsyslog mailing list > > >>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>>> http://www.rsyslog.com/professional-services/ > > >>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > >>>>> myriad > > >>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > > you > > >>>>> DON'T LIKE THAT. > > >>>>> > > >>>>> _______________________________________________ > > >>>>> > > >>>> rsyslog mailing list > > >>>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>>> http://www.rsyslog.com/professional-services/ > > >>>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > myriad > > >>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > you > > >>>> DON'T LIKE THAT. > > >>>> > > >>>> _______________________________________________ > > >>>> > > >>> rsyslog mailing list > > >>> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >>> http://www.rsyslog.com/professional-services/ > > >>> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > > myriad > > >>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if > you > > >>> DON'T LIKE THAT. > > >>> > > >>> _______________________________________________ > > >> rsyslog mailing list > > >> http://lists.adiscon.net/mailman/listinfo/rsyslog > > >> http://www.rsyslog.com/professional-services/ > > >> What's up with rsyslog? Follow https://twitter.com/rgerhards > > >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > myriad > > >> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > >> DON'T LIKE THAT. > > >> > > >> _______________________________________________ > > > rsyslog mailing list > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > http://www.rsyslog.com/professional-services/ > > > What's up with rsyslog? Follow https://twitter.com/rgerhards > > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a > myriad > > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > > DON'T LIKE THAT. > > > > > _______________________________________________ > > rsyslog mailing list > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > http://www.rsyslog.com/professional-services/ > > What's up with rsyslog? Follow https://twitter.com/rgerhards > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > > DON'T LIKE THAT. > > > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com/professional-services/ > What's up with rsyslog? Follow https://twitter.com/rgerhards > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > DON'T LIKE THAT. > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

