On 01/17/2014 04:57 PM, Radu Gheorghe wrote:
I think the most probable cause is that the lost messages were in the
in-memory queue, which got wiped during restart. To fix that, you'd have to
make it disk-assisted and set queue.saveonshutdown to yes. I think you'll
find the details in those two links:

http://www.rsyslog.com/doc/queues.html
http://www.rsyslog.com/doc/node32.html


I might have a basic mis-understanding of the RELP features.

When sending messages from the client like so:
--
$ for i in $(seq 100) ; do echo "Message $i" ; sleep 1 ; done | \
    logger -u /tmp/client.sock -d
--

Only one message is sent every second.

On the server side, I use "tail -f server.log", and I see the message appear immediately.

So when I kill the server, it theoretically can have at most one message "in the queue but not written to a file".
Is that a correct assumption?

Beyond that point, the server process is killed, and no new message can enter the memory queue (they could be stuck in the server's kernel TCP queue, perhaps, but not reach the rsyslogd applicatoin).

Since the server did not receive any more messages, it could not have ACK'd any messages to the client - which is what RELP is all about (correct?).

So the client should be able to tell that several messages were not received.

Yet in my testing, after restarting the server rsyslogd, more than 20 messages are missing (meaning over 20 seconds of the client-side rsyslogd sending data).

Do I need to enable some queuing on the client-side as well?

Thanks,
 -gordon



_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to