On Thu, Jan 23, 2003 at 05:29:17PM +0100, Roberto Nibali wrote:
Hello,
* The previous kernel bug workaround in libol fixed the issue for the 2.4.20rc? kernels only, the current workaround should also work for 2.4.20 final as well.
In the Changelog I read that you've fixed a bug in libol causing garbled output lines when a target buffer is full. I presume we're talking about this fix:
@@ -132,7 +132,7 @@ if (self->super.writable) (*self->super.writable) = 1; } - else if (res != 0) { + else { /* this is slow, because of another memory move * but this is run rarely anyway */ struct buffer_node *item;
Would you care to explain to me this fix, please? As I read it, it only kicks in in case write(2) returns with a 0. But this 0 doesn't mean 0 bytes have been written, but something else. I'm a bit confused. Keep in mind that I haven't read your code all too well yet ;).
check fd_write in libol/src/io.c, which handles EINTR and EAGAIN and returns 0 instead of -1 for those reasons.
Since a few releases of syslog-ng I've missed the klogctl tool. As I wasn't subscribed to this list before 2003 I might have missed its removal announce. A quick search reveiled that it was dropped in favour of dmesg(8). There are still quite some references in various places in the source. You might want to remove them:
thanks for the report. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1