On Thu, 8 Oct 2009, Rainer Gerhards wrote:

>> [email protected]] On Behalf Of [email protected]
>>
>> On Wed, 7 Oct 2009, Jonathan Bond-Caron wrote:
>>
>>> The client 'sends the message over tcp' and actually empties the
>> queue!
>>>
>>> Is this expected behavior? rsyslogd was shutdown 'cleanly' on the
>> server.
>>> Shouldn't it force the client to close the TCP connection?
>>>
>>>
>>>
>>> Using netstat, the two servers are :
>>>
>>>
>>>
>>> Proto Recv-Q Send-Q  Local Address          Foreign Address
>> (state)
>>>
>>> tcp4       0      0  client.10514   server..60726 FIN_WAIT_2
>>>
>>>
>>>
>>> Proto Recv-Q Send-Q Local Address               Foreign Address
>>> State
>>>
>>> tcp        1     36  server:60726       client:10514
>> CLOSE_WAIT
>>>
>>>
>>>
>>> Have I misunderstood something? I've read Rainer's blog and issues
>> with TCP
>>> "unreliability" / case of a power failure but don't think this
>> related
>>
>> I think it's the same problem, one side thinks the connection is
>> closed,
>> the other doesn't and so the one that doesn't happily sends the data
>> out.
>>
>> try reconfiguring to use relp and things should work as expected.
>>
>>
>> now, I don't know why the close isn't getting through from the one
>> system
>> to the other rapidly. is there any sort of firewall in between them?
>
> The close may get through. It is a (kind of) race condition, inside the tcp
> stack. Assume the following happens (System S being the server, system C
> being  the client):
>
> S : closes connection, sends close info
> C1: rsyslog writes data (not yet sent, but acknowledged by tcp stack)
> C2: receives close request
> C3: discards data
>
> The race is in C1/C2. In this order, data is lost. If C2 happens before C1,
> no data is lost. No chance to solve that with plain tcp without app-level
> acks.

but that window should be very short, for it to last long enough to show 
up in the netstat commands sounds odd to me.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to