summaryrefslogtreecommitdiffstats
path: root/tools/omfile.c
Commit message (Collapse)AuthorAgeFilesLines
* issue a warning message for old-style dynafile actionRainer Gerhards2011-07-111-1/+8
|
* Merge branch 'v4-stable' into v4-develRainer Gerhards2011-07-111-1/+9
|\ | | | | | | | | | | | | Conflicts: ChangeLog configure.ac doc/manual.html
| * support for :omfile: forward compatibility directiveRainer Gerhards2011-07-111-1/+9
| |
* | Merge branch 'v4-stable' into v4-develRainer Gerhards2010-12-161-1/+0
|\| | | | | | | | | Conflicts: runtime/parser.c
| * some cleanup based on clang static analyzer resultsRainer Gerhards2010-12-161-1/+0
| |
* | minor cleanupRainer Gerhards2010-04-191-2/+2
| |
* | Merge branch 'v4-stable-solaris' into v4-develRainer Gerhards2010-04-121-52/+83
|\| | | | | | | | | | | | | | | | | Conflicts: ChangeLog configure.ac doc/manual.html tools/omfile.c tools/syslogd.c
| * bugfix: default for $OMFileFlushOnTXEnd was wrong ("off").Rainer Gerhards2010-04-071-2/+3
| | | | | | | | | | | | This, in default mode, caused buffered writing to be used, what means that it looked like no output were written or partial lines. Thanks to Michael Biebl for pointing out this bug.
| * $OMFileAsyncWriting directive did not work properlyRainer Gerhards2010-03-251-1/+1
| |
| * new feature: $OMFileAsyncWriting directive addedRainer Gerhards2010-03-251-19/+22
| | | | | | | | it permits to specifiy if asynchronous writing should be done or not
| * undo experimental commit dccadb677c5a6b8379f631e4c1f14c8c4089d4a6Rainer Gerhards2010-03-251-9/+0
| | | | | | | | | | | | | | Further testing turned out that the rsyslog core works correctly and this fix is not needed. The concurrency we saw was actually caused by other actions (even processes) during directory creation. See commit 9e5b31fc44136dbcc1e443cfe7714e9daf97d844 for further details.
| * bugfix: potential segfault in dynafile cacheRainer Gerhards2010-03-251-1/+1
| | | | | | | | | | | | | | | | | | This bug was triggered by an open failure. The the cache was full and a new entry needed to be placed inside it, a victim for eviction was selected. That victim was freed, then the open of the new file tried. If the open failed, the victim entry was still freed, and the function exited. However, on next invocation and cache search, the victim entry was used as if it were populated, most probably resulting in a segfault.
| * streamline dynafile cache entry deletion a bitRainer Gerhards2010-03-231-8/+7
| | | | | | | | | | | | The old code looks a bit "strange", though not necessarily incorrect. The new code looks correct and is probably less irritating during bug hunting.
| * bugfix: potential re-use of free()ed file stream object in omfileRainer Gerhards2010-03-231-7/+21
| | | | | | | | | | | | | | when dynaCache is enabled, the cache is full, a new entry needs to be allocated, thus the LRU discarded, then a new entry is opend and that fails. In that case, it looks like the discarded stream may be reused improperly (based on code analysis, test case and confirmation pending)
| * previous (experimental) patch was somewhat incorrect, fixedRainer Gerhards2010-03-221-1/+1
| | | | | | | | This is what caused the new test to fail...
| * exp: made omfile ensure that it is not called twice in parallel on the same ↵Rainer Gerhards2010-03-211-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | file instance In theory, the rsyslog core should never call in parallel into an output module for the same instance. However, it looks like this seems to happen under (strange?) circumstances. I have now enhanced omfile so that it guards itself against being called in parallel on the same instance data. This is done to help troubleshooting and may stay as an interim solution if it proves to solve an anomaly we see in at least one installation (to trigger this problem, an extremely large traffic volume is needed).
| * fixed regression from previos (yet unrelease) $omfileFlushOnTXEnd fixtemp.4.6.1.10Rainer Gerhards2010-03-191-1/+1
| | | | | | | | | | | | | | | | The previous fix fixed an issue with on/off bying used in the exact wrong semantic. It corrected the situation, but failed to fix one spot where the wrong semantics were used. This is done with this commit. Note that this is NOT a bug seen in any released version.
| * new feature: "." action type added to support writing files to relative pathesRainer Gerhards2010-03-171-1/+2
| | | | | | | | (this is primarily meant as a debug aid)
| * bugfix: potential problem (loop, abort) when file write error occuredRainer Gerhards2010-03-091-2/+2
| | | | | | | | | | | | | | | | | | | | When a write error occured in stream.c, variable iWritten had the error code but this was handled as if it were the actual number of bytes written. That was used in pointer arithmetic later on, and thus could lead to all sorts of problems. However, this could only happen if the error was EINTR or the file in question was a tty. All other cases were handled properly. Now, iWritten is reset to zero in such cases, resulting in proper retries.
| * retain old $OMFileFlushOnTXEnd semanticsRainer Gerhards2010-03-091-2/+2
| | | | | | | | | | required because due to bug the default was actually different than specified (or better said: spec was inconsistent in doc as well).
| * bugfix: $omfileFlushOnTXEnd was turned on when set to off and vice versaRainer Gerhards2010-03-091-1/+1
| |
| * bugfix: potential (but very impropable) segfaults in omfileRainer Gerhards2010-03-021-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | - bugfix: potential segfault in omfile when a dynafile open failed In that case, a partial cache entry was written, and some internal pointers (iCurrElt) not correctly updated. In the next iteration, that could lead to a segfault, especially if iCurrElt then points to the then-partial record. Not very likely, but could happen in practice. - bugfix (theoretical): potential segfault in omfile under low memory condition. This is only a theoretical bug, because it would only happen when strdup() fails to allocate memory - which is highly unlikely and will probably lead to all other sorts of errors.
| * make $ActonFileDefaultTemplate available to ompipeRainer Gerhards2010-03-011-9/+9
| | | | | | | | | | | | | | | | | | This was not honored by the new ompipe module, because it is a local file directive (it was applied to pipes as a side-effect of using the same module for pipes and files...). I now made this a global, so that semantics are the same as previously. Not really nice, but probably the best thing to do in the current situation (everything else would involve much more overhead --- leave that for the new config system).
| * some code cleanupRainer Gerhards2010-02-281-5/+7
| |
| * moved pipe code to its own moduleRainer Gerhards2010-02-281-1/+1
| | | | | | | | | | | | | | ... based on old omfile. Michael Biebl reported that xconsole seems to have some issues with the new pipe code, so it was best to use the old code for pipes. The optimizations were done to speed up file access, so it doesn't really matter pipes do not receive them.
* | Merge branch 'v4-beta' into tmpRainer Gerhards2010-01-261-6/+16
|\| | | | | | | | | Conflicts: ChangeLog
| * bugfix: rsyslog hangs when writing to a named pipe which nobody was reading.Rainer Gerhards2010-01-151-6/+16
| | | | | | | | Thanks to Michael Biebl for reporting this bug.
* | Merge branch 'v4-beta' into v4-develRainer Gerhards2009-11-301-1/+1
|\|
| * Merge branch 'v4-stable' into v4-betaRainer Gerhards2009-11-301-1/+1
| |\
| | * Merge branch 'v3-stable' into v4-stableRainer Gerhards2009-11-301-1/+1
| | |\
| | | * bugfix: $CreateDirs variable not properly initializedRainer Gerhards2009-11-301-1/+1
| | | | | | | | | | | | | | | | default thus was random (but most often "on")
| | * | Merge branch 'v3-stable' into betaRainer Gerhards2009-06-181-3/+3
| | |\|
| | | * some minor bugfixesRainer Gerhards2009-06-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - bugfix: invalid error message issued if $inlcudeConfig was on an empty set of files (e.g. *.conf, where none such files existed) thanks to Michael Biebl for reporting this bug - bugfix: when run in foreground (but not in debug mode), a debug message ("DoDie called") was emitted at shutdown. Removed. thanks to Michael Biebl for reporting this bug - bugfix: some garbagge was emitted to stderr on shutdown. This garbage consisted of file names, which were written during startup (key point: not a pointer error) thanks to Michael Biebl for reporting this bug - bugfix: startup and shutdown message were emitted to stdout thanks to Michael Biebl for reporting this bug
* | | | Merge branch 'v4-beta' into v4-develRainer Gerhards2009-11-051-2/+5
|\| | | | | | | | | | | | | | | | | | | Conflicts: tests/Makefile.am
| * | | bugfix: named pipes did no longer work (they always got an open error)Rainer Gerhards2009-11-051-2/+5
| | | | | | | | | | | | | | | | this was a regression from the omfile rewrite in 4.5.0
* | | | Merge branch 'v4-beta' into v4-develRainer Gerhards2009-10-081-2/+5
|\| | | | | | | | | | | | | | | | | | | Conflicts: tools/omfile.c
| * | | bugfix: invalid storage class selected for some size config parameters.Rainer Gerhards2009-10-051-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This resulted in wrong values. The most prominent victim was the directory creation mode, which was set to zero in some cases. For details, see related blog post: http://blog.gerhards.net/2009/10/another-note-on-hard-to-find-bugs.html This replaces the improper bugfix from two commits ago with a proper one.
| * | | DirCreateMode was always zero. work-around now is to do a...Rainer Gerhards2009-10-021-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | one-time write to the mode, then all works. However, if no such write is done, the variable always remains zero. I have used the memory debugger as well as shuffled the code around and used guard variables nothing changed. The problem always moved with the changes I did. So I now consider the one-time write a usable work-around, because it definitely fixes the issue even though it does not explain why it happens.
* | | | added new config directive $omfileForceChown to fix some broken system configs.Rainer Gerhards2009-09-111-2/+25
|/ / / | | | | | | | | | See ticket for details: http://bugzilla.adiscon.com/show_bug.cgi?id=150
* | | first shot at asynchronous stream writer with timeout capabilityRainer Gerhards2009-07-061-1/+6
| | | | | | | | | | | | | | | ... seems to work on quick testing, but needs a far more testing and improvement. Good milestone commit.
* | | omfile itself no longer needs zlibRainer Gerhards2009-07-021-4/+0
| | |
* | | switched default to keep in line with traditional syslogd behaviourRainer Gerhards2009-06-191-2/+2
| | |
* | | omfile buffers are now synchronized after inactivityRainer Gerhards2009-06-151-0/+7
| | | | | | | | | | | | | | | | | | This is the first shot at this functionality. Currently, we run off a fixed counter in the rsyslogd mainloop, which needs to be restructured. But this code works, so it is a good time for a commit.
* | | implemented $OMFileFlushOnTXEnd directiveRainer Gerhards2009-06-121-1/+11
| | | | | | | | | | | | plus some cleanup...
* | | re-enabled pipe, tty and console in omfileRainer Gerhards2009-06-121-140/+2
| | | | | | | | | | | | | | | | | | | | | ... by moving code to stream.c. Thanks to the new design, new cases are not really needed, resulting in cleaner code. I also did a cleanup of header file usage as a side-activity.
* | | re-enabled outchannel functionalityRainer Gerhards2009-06-121-72/+19
| | |
* | | improved error handling and added fsync() supportRainer Gerhards2009-06-081-1/+3
| | | | | | | | | | | | | | | | | | ... restoring missing functionality after the restructuring of imfile. As a side-effect, this also lays the foundation for even more reliable queue engine operations (but this is not yet done).
* | | cleanup in preparation of next stepsRainer Gerhards2009-06-051-164/+10
| | | | | | | | | | | | | | | now cleand up omfile and straighted out some things. The only commented-out code left is code that must be moved/merged to the stream class, my next target.
* | | made dynafiles working againRainer Gerhards2009-06-051-75/+73
| | | | | | | | | | | | | | | | | | | | | now only stream class is utilized. ttys, pipes and outchannel functionality is currently disabled. But the testbench worked again. Cleanup needed, will do this with next commit (it may break things and I like to have this milestone here).
* | | added $OMFileIOBufferSize config directive and plumbingRainer Gerhards2009-06-041-62/+52
| | |