summaryrefslogtreecommitdiffstats
path: root/runtime/stream.c
Commit message (Collapse)AuthorAgeFilesLines
* fixed a couple of regressionsRainer Gerhards2010-06-231-5/+0
| | | | | | | | by implementing some code that was missing so far ;) as well as finding some real bugs. I also did some general cleanup, removing debug strings and such. This code should be fairly OK to use, except when "exec only when previous action was suspended" is used -- this is NOT yet re-implemented in the tuned engine.
* Merge branch 'v4-devel'Rainer Gerhards2010-04-191-1/+2
|\ | | | | | | | | | | | | Conflicts: runtime/msg.h runtime/rsyslog.h runtime/stream.c
| * improved quality of imsolaris codeRainer Gerhards2010-04-191-1/+2
| | | | | | | | including refctoring for a more simple solution
* | some cleanupRainer Gerhards2010-04-191-1/+1
| |
* | Merge branch 'beta' into masterRainer Gerhards2010-04-091-47/+100
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog configure.ac plugins/imudp/imudp.c runtime/stream.h tests/Makefile.am tests/diag.sh tools/omfile.c
| * | Merge branch 'v4-stable' into v5-stableRainer Gerhards2010-03-291-47/+100
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog configure.ac doc/manual.html runtime/debug.c runtime/stream.c tests/Makefile.am tests/diskqueue.sh tests/nettester.c tools/omfile.c
| | * streamline dynafile cache entry deletion a bitRainer Gerhards2010-03-231-1/+1
| | | | | | | | | | | | | | | | | | The old code looks a bit "strange", though not necessarily incorrect. The new code looks correct and is probably less irritating during bug hunting.
| | * fixed regression from previos (yet unrelease) $omfileFlushOnTXEnd fixtemp.4.6.1.10Rainer Gerhards2010-03-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * bugfix: invalid buffer write in (file) stream classRainer Gerhards2010-03-191-1/+2
| | | | | | | | | | | | | | | | | | | | | currently being accessed buffer could be overwritten with new data. While this probably did not cause access violations, it could case loss and/or duplication of some data (definitely a race with no deterministic outcome)
| | * bugfix: potential hang condition during filestream closeRainer Gerhards2010-03-191-4/+6
| | | | | | | | | | | | | | | predicate was not properly checked when waiting for the background file writer
| | * bugfix: improper synchronization when "$OMFileFlushOnTXEnd on" was usedRainer Gerhards2010-03-191-11/+35
| | | | | | | | | | | | | | | Internal data structures were not properly protected due to missing mutex calls.
| | * some cleanup, some additional comments and a bit more debug outputRainer Gerhards2010-03-181-2/+11
| | |
| | * bugfix(cosmetic): tried to close non-open fd, resulting in close(-1)Rainer Gerhards2010-03-161-2/+7
| | |
| | * reduced runtime requirements of inactive debug code a slight bitRainer Gerhards2010-03-161-10/+10
| | |
| | * Merge branch 'v4-stable' into v4-stable-nextRainer Gerhards2010-03-101-4/+11
| | |\
| | | * fixed regression introduced with previous commitRainer Gerhards2010-03-101-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | disk queue mode did no longer work correctly. A side-effect of this commit here is slightly cleaned-up (and more elegant) code for circular files.
| | * | some cosmetic changesRainer Gerhards2010-03-101-9/+9
| | |/ | | | | | | | | | | | | | | | note that a buffer size calculation was done wrong, but this was cosmetic because our buffers currently all use byte size, so even though the formula was wrong, the result was correct.
| | * bugfixes and testbench improvementRainer Gerhards2010-03-101-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - improved testbench - bugfix: potential data loss during file stream shutdown - bugfix: potential problems during file stream shutdown The shutdown/close sequence was not clean, what potentially (but unlikely) could lead to some issues. We have not been able to describe any fatal cases, but there was some bug potential. Sequence has now been straighted out.
| | * bugfix: potential problem (loop, abort) when file write error occuredRainer Gerhards2010-03-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | replaced data type "bool" by "sbool" because this created some portability ↵Rainer Gerhards2010-02-021-2/+2
|/ / | | | | | | issues
* | Merge branch 'v4-beta' into betaRainer Gerhards2010-01-151-3/+10
|\| | | | | | | | | Conflicts: ChangeLog
| * bugfix: rsyslog hangs when writing to a named pipe which nobody was reading.Rainer Gerhards2010-01-151-3/+10
| | | | | | | | Thanks to Michael Biebl for reporting this bug.
* | Merge branch 'v4-devel' into tmpRainer Gerhards2009-11-051-0/+1
|\|
| * bugfix: named pipes did no longer work (they always got an open error)Rainer Gerhards2009-11-051-0/+1
| | | | | | | | this was a regression from the omfile rewrite in 4.5.0
* | enhanced test environment (including testbench)Rainer Gerhards2009-10-221-5/+5
| | | | | | | | | | | | | | | | support for enhancing probability of memory addressing failure by using non-NULL default value for malloced memory (optional, only if requested by configure option). This helps to track down some otherwise undetected issues within the testbench and is expected to be very useful in the future.
* | Merge branch 'v4-beta' into betaRainer Gerhards2009-09-291-26/+41
|\| | | | | | | | | | | | | Conflicts: ChangeLog configure.ac doc/manual.html
| * minor cleanup & preparation for 4.5.4v4.5.4Rainer Gerhards2009-09-291-9/+0
| |
| * bugfix: this morning's race patch was incomplete, completing nowRainer Gerhards2009-09-241-6/+8
| | | | | | | | | | | | | | | | we needed to release ALL resources (including file handles!) only after the the async writer thread has terminated (else it may access them). In this case, we had a file handle leak, because the handle was sometimes only opened in the async writer, but the close was attempted before the writer even started (in some cases).
| * (temporary?) removal of very conservative locks in stream.cRainer Gerhards2009-09-241-2/+2
| | | | | | | | | | | | ...after we seem to have identified the root cause of the segfault. I leave them commented out so that we can re-activate it if need arises (aka "get some practice drill first").
| * bugfix: potential segfault in stream writer on destructionRainer Gerhards2009-09-241-5/+9
| | | | | | | | | | | | | | | | | | | | Most severely affected omfile. The problem was that some buffers were freed before the asynchronous writer thread was shut down. So the writer thread accessed invalid data, which may even already be overwritten. Symptoms (with omfile) were segfaults, grabled data and files with random names placed around the file system (most prominently into the root directory). Special thanks to Aaron for helping to track this down.
| * minor: increased buffer size to be safe in all casesRainer Gerhards2009-09-221-2/+2
| | | | | | | | | | if the buffer was too small, we would see more API calls, but no failure, so this is no fix!
| * bugfixes: potential problems in out file zip writer.Rainer Gerhards2009-09-221-14/+31
| | | | | | | | | | | | Problems could lead to abort and/or memory leak. The module is now hardened in a very conservative way, which is sub-optimal from a performance point of view. This should be improved if it has proven reliable in practice.
* | Merge branch 'v4-beta' into betaRainer Gerhards2009-09-141-2/+8
|\|
| * fixed some minor portability issuesRainer Gerhards2009-09-141-2/+8
| |
| * very minor cleanupRainer Gerhards2009-08-181-1/+0
| |
| * bugfix: potential segfault in output file writer (omfile)Rainer Gerhards2009-08-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | In async write mode, we use modular arithmetic to index the output buffer array. However, the counter variables accidently were signed, thus resulting in negative indizes after integer overflow. That in turn could lead to segfaults, but was depending on the memory layout of the instance in question (which in turn depended on a number of variables, like compile settings but also configuration). The counters are now unsigned (as they always should have been) and so the dangling mis-indexing does no longer happen. This bug potentially affected all installations, even if only some may actually have seen a segfault.
* | Merge branch 'beta'Rainer Gerhards2009-08-191-8/+2
|\ \
| * | undid non-correct experimental fixRainer Gerhards2009-08-191-8/+2
| | | | | | | | | | | | | | | | | | | | | I found out that the previous segfault fix did not correct the root cause of the problem. Thus, I can re-instantiate the more performance- optimal logic. In the next step, I'll merge in the real fix, so do NOT use this commit as code you actually run!
* | | fixed compile problem introduced by mergeRainer Gerhards2009-08-181-0/+1
| | |
* | | Merge branch 'beta'Rainer Gerhards2009-08-181-2/+8
|\| |
| * | bugfix? (unconfirmed, testing): segfault when writing asynchronouslyRainer Gerhards2009-08-181-2/+8
| |/ | | | | | | | | | | | | | | | | I have undone a very small optimization with using pre-malloced memory, which seems to have some issues. Now I am doing mallocs and at least in test environment this seems to solve the issue. The code now needs more review. If it runs flawlessly for some time, I may try to re-enable to pre-malloc, but not necessarily: its performance benefit is very mild (aka: I don't think it justifies introducing bigger complexities).
* | more code simplification, should also bring some performance enhancementRainer Gerhards2009-07-171-2/+0
| | | | | | | | reducing the number of thread cancellation state changes
* | Merge branch 'beta'Rainer Gerhards2009-07-161-2/+5
|\| | | | | | | | | | | Conflicts: runtime/wti.c runtime/wtp.c
| * calls to prctl() need to be based on configure results (cross-platform issue)Rainer Gerhards2009-07-161-2/+5
| | | | | | | | | | This is for another prctl() call, not present in the beta version (looks like it would make sense to stick these into a utility function)
* | Merge branch 'v4-devel'Rainer Gerhards2009-07-081-136/+308
|\| | | | | | | | | | | Conflicts: runtime/debug.h runtime/stream.c
| * added capability to write incomplete buffers after an inactivity timeoutRainer Gerhards2009-07-071-7/+39
| | | | | | | | | | | | for the stream class and thus finally activating omfile's timeout capability in a useful way without polling and too-high performance overhead.
| * fixed a bug introduced today that lead to an abort in queue disk modeRainer Gerhards2009-07-071-9/+12
| |
| * solved a race conditionRainer Gerhards2009-07-071-14/+49
| |
| * clean solution for "writing" arbrietary-size user buffers to a streamRainer Gerhards2009-07-071-42/+28
| |
| * stream now uses a singular buffer strucuture for writingRainer Gerhards2009-07-071-6/+12
| |