You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 15, 2019. It is now read-only.
Created by mfriedrich on 2011-09-27 18:27:27 +00:00
Assignee: (none)
Status: Rejected (closed on 2011-10-20 13:57:50 +00:00)
Target Version: (none)
Last Update: 2014-12-08 14:46:23 +00:00 (in Redmine)
Icinga Version: 1.10.0
OS Version: any
this issue follows #1931 where the overflow handling is discussed. this should be dumped to the logs either way. the problem remains - the logging functions are not thread safe.
debug log
write_to_all_logs
the second function can't be used as it invokes a callback if the data would be written to icinga.log too. so a change to local syslog_r only should be targetted, while adding a mutex lock on the debug log itsself. local facilities and such can be added later on.
idoutils: move thread start + origcfg dump to new NEBTYPE_PROCESS_INITSTART and retained back to normal #1934, make logging threadsafe #1962, correct overflow log #1931
this changes the thread not to be started in event loop (new neb type making it happen sooner).
the original config gets dumped immediately, but after daemonizing too, which NEBTYPE_PROCESS_INITSTART
indicates for now. the retained config dump stays where it happened, the target in timeline is perfectly
fine when using a circular buffer to cache these things.
while the consumer queue thread is reading and dumping the configs to the database, the core can start
the event loop, pushing status updates and current checks to the queue as well.
the main disadvantage on a non-blocking neb module will be the buffer holding the data and needing
the exact same time as the core was blocked to finally dump the whole config stuff. so this remains still
in testing mode, and needs possible enhancements, basically on the sleep time of the threads and so on.
the debug logging not being threadsafe was being fixed with the previous commit, holding a file pointer
and writing simultanously to it is not really a good idea. the main logging functions used a core internal
function which would invoke a neb callback to self() if something gets written to the icinga log file.
this has been removed for now, the syslog will be used like done in ido2db, further logging must be done
side by side with the demanded ido2db logging and their syslog facilities.
previously, the newly added warning on the buffer overflow when the retry was hit, resulted in a segfault
therefore this fix was done urgent.
refs #1931
refs #1934
refs #1962
This issue has been migrated from Redmine: https://dev.icinga.com/issues/1962
Created by mfriedrich on 2011-09-27 18:27:27 +00:00
Assignee: (none)
Status: Rejected (closed on 2011-10-20 13:57:50 +00:00)
Target Version: (none)
Last Update: 2014-12-08 14:46:23 +00:00 (in Redmine)
this issue follows #1931 where the overflow handling is discussed. this should be dumped to the logs either way. the problem remains - the logging functions are not thread safe.
the second function can't be used as it invokes a callback if the data would be written to icinga.log too. so a change to local syslog_r only should be targetted, while adding a mutex lock on the debug log itsself. local facilities and such can be added later on.
Changesets
2011-09-27 18:31:10 +00:00 by mfriedrich 9dfb19f
Relations:
The text was updated successfully, but these errors were encountered: