| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
ChangeLog
configure.ac
doc/manual.html
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| |
| | |
...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").
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
if the buffer was too small, we would see more API calls, but no
failure, so this is no fix!
|
| |
| |
| |
| |
| |
| | |
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.
|
|\| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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!
|
| | | |
|
|\| | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| | |
reducing the number of thread cancellation state changes
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
runtime/wti.c
runtime/wtp.c
|
| |
| |
| |
| |
| | |
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)
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
runtime/debug.h
runtime/stream.c
|
| |
| |
| |
| |
| |
| | |
for the stream class and thus finally activating omfile's timeout
capability in a useful way without polling and too-high performance
overhead.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
... this is necessary in preparation for the final solution (we need
to have a "unified" writer). If it causes worse performance to have the
zip writher togehter with the synchronous write, we may do an async write...
|
| | |
|
| |
| |
| |
| |
| | |
... seems to work on quick testing, but needs a far more testing
and improvement. Good milestone commit.
|
|\|
| |
| |
| |
| | |
Conflicts:
runtime/rsyslog.h
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was a complex manual merge, especially in action.c. So if
there occur some problems, this would be a good point to start
troubleshooting. I run a couple of tests before commiting and
they all went well.
Conflicts:
action.c
action.h
runtime/queue.c
runtime/queue.h
runtime/wti.c
runtime/wti.h
|
| | |
|
| |
| |
| |
| | |
... commit before I try to touch the queue side ;)
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Note that this was NOT a trivial merge, and there may be
some issues. This needs to be seen when we continue developing.
Conflicts:
runtime/msg.h
runtime/obj.h
runtime/queue.c
runtime/srUtils.h
runtime/stream.c
runtime/stream.h
runtime/wti.c
tests/Makefile.am
tools/omfile.c
tools/syslogd.c
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
ChangeLog
runtime/msg.h
tcps_sess.c
tcpsrv.c
tools/syslogd.c
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
... 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.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
... this was long overdue, and I finlly tackeld it. It turned out to
be more complex than I initially thought. The next step now probably is
to actually implement multiple rule sets and the beauty that comes
with them.
|
| | |
| | |
| | |
| | |
| | |
| | | |
... 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).
|
| | | |
|
| | |
| | |
| | |
| | | |
now some basic operations are carried out via the stream class.
|
| |/
| |
| |
| |
| |
| | |
... and also made it callable via an rsyslog interface rather then
relying on the OS loader (important if we go for using it inside
loadbale modules, which we soon possible will)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... and also improved the test suite. There is a design issue in the
v3 queue engine that manifested to some serious problems with the new
processing mode. However, in v3 shutdown may take eternally if a queue
runs in DA mode, is configured to preserve data AND the action fails and
retries immediately. There is no cure available for v3, it would
require doing much of the work we have done on the new engine. The window
of exposure, as one might guess from the description, is very small. That
is probably the reason why we have not seen it in practice.
|
|/
|
|
|
|
| |
... on the way to the ultra-reliable queue modes (redesign doc). This
version does not really work, but is a good commit point. Next comes
queue size calculation. DA mode does not yet work.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- added the ability to specify an error log function for the
runtime
- removed dependency of core runtime on dirty.h
Note that it is "better" modularity, not perfect. There is still
work to do, but I think we can for the time being proceed with
other things.
|