On Mon, Apr 14, 2014 at 9:13 PM, David Lang <[email protected]> wrote:

> On Mon, 14 Apr 2014, Anders Olsson wrote:
>
>  Hi David,
>>
>> You understood my predicament well.
>>
>> I looked a bit closer at what you mentioned for approach #1. The
>> Light-weight processes/threads for Rsyslogd can be found for the process
>> under /proc/<rsyslog pid>/task/<lwp pid>/ . Looking at their 'stat' file,
>> I
>> see that they actually named as their module name (like: "in:imfile"). So
>> theoretically, I could go through this tree programmatically, and find the
>> right module to send a SIGSTOP to. Barring that no broad lock is held by
>> the system, input modules should still process while I stop this output
>> module, putting them in the queue of the relevant output modules. Then I'd
>> send a SIGHUP to the main process for the file handles to be released, and
>> a SIGCONT to the module for things to continue.
>>
>> Is this as thin ice as it sounds like?
>>
>
> not quite, but close. you do have the ability to name the actions and
> rulesets (and their queues), so it's a little better than it sounds like.
>
> But there is a race condition because these threads do hold locks that
> will block input threads.
>
> I also don't think that the HUP will be able to take effect while the
> output threads are stopped. I believe that the signal will be delivered,
> just not acted on until they are running again.
>
>
>  How bad would the temporary stopping of Rsyslog be, in comparison? Is it
>> always the case that messages sent during this time will be lost?
>>
>
> Well, even with UDP, the OS will buffer some data, how much depends on
> your OS settings.
>
> We really need Rainer to speak up about this.


Quite frankly, I haven't played with this nor put any thought into it. So I
guess it boils down to testing...

Rainer

>
>
>  Unfortunately, using v8 is not an option, since it's not yet supported in
>> the distro I'm using.
>>
>
> well, keep in mind that 7.4 isn't supported here because it's so old. So
> you need to decide who you want support from and pick your version
> accordingly ;-)
>
> only half kidding, if you are running an old version because it's what
> your OS supports, you should be asking your OS support people for help.
>
> We try to help, but for an issue like this that is likely to involve real
> low-level details, there's a limit to how much digging through old code we
> will do, and if we find any issues, the fix will go into the current
> version, there won't be an update to the old version.
>
> That said, you aren't on an ancient version, only two revs back from
> current (we seem to finally be past getting a lot of requests for help for
> 3.x versions, but we still get a lot fo 5.x), so it's not that bad.
>
> David Lang
>
>
>  Regards,
>>
>> Anders
>>
>> -----Original Message-----
>> From: [email protected] [mailto:
>> [email protected]] On Behalf Of David Lang
>> Sent: den 9 april 2014 18:37
>> To: rsyslog-users
>> Subject: Re: [rsyslog] Fwd: Handling of SIGTSTP and SIGSTOP signals
>>
>> On Wed, 9 Apr 2014, Anders Olsson wrote:
>>
>>
>>  Hi,
>>>
>>>
>>>
>>> I'm wondering about how and if at all RSyslog handles voluntary stop
>>> signals: TSTP. I have not been able to find any concrete information
>>> on this, but maybe my google-fu is weak.
>>>
>>>
>>> If there is no voluntary stop handling, how about mandatory stop signals:
>>> STOP? How will the program behave? My expectation is that it will not
>>> handle any incoming messages, and in the case of UDP they will be lost.
>>>
>>>
>>>
>>> I'm running RSylog 7.4.4 on x86_64 embedded Linux.
>>>
>>>
>>> The reason I'm wondering this is because I have the need to move the
>>> location rsyslog writes to during the boot phase. RSylog is started
>>> early in the boot phase, when this particular system has no persistent
>>> storage area mounted - the logs go into ramdisk. Later in the boot
>>> phase network storage is attached. At this point, I would like to be
>>> able the halt RSyslog from writing to file, so that the logs on
>>> ramdisk can be moved, and then continue to be appended at the new
>>> location. Just sending a HUP signal to rsyslog could cause out of
>>> order or lost logs, depending on the order of doing move compared HUPing.
>>>
>>
>> move vs HUP should always be that you move the file then send the HUP, but
>> only on the same filesystem.
>>
>> but if I understand what you are doing, you are trying to do
>>
>> mv /ramdisk/dir/file /ramdisk/dir2/file
>> ln -s /realdisk/dir /ramdisk/dir
>> mv /ramdisk/dir2/file /ramdisk/dir/file
>>
>>
>> The problem is that when you move the file from one filesystem to another
>> while something is writing to it, you will always have a race condition
>> between writing to the file and the copy of the file.
>>
>>
>> In addition, since rsyslog only creates a file as-needed, it could create
>> a
>> file as you are doing the link.
>>
>>
>> Thinking about this in 'blue sky' view, I see two approaches to deal with
>> this
>>
>> 1. pause rsyslog output while you do the shuffling
>>
>> 2. tell rsyslog to move it's output from one place to another instead of
>> switching storage under it.
>>
>>
>>
>> It sounds like you are looking at #1. I'm not sure exactly what rsyslog
>> does
>> (especially since there are multiple threads, you may be able to signal
>> individual threads, but you can end up blocking if you pause a thread that
>> holds
>> a lock)
>>
>>
>> for #2, you could use global variables in v8 and dynamic filename
>> templates
>> to
>> have rsyslog start logging to one place, and then change to log somewhere
>> else.
>> The problem is what to do with the logs from the ramdisk, and I think my
>> answer
>> to that is treat them like rotated logs
>>
>>
>> David Lang
>>
>>
>>> Any ideas on this would be much appreciated.
>>>
>>>
>>> Best Regards
>>>
>>> Anders
>>> _______________________________________________
>>> 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.

Reply via email to