Send kea-dev mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.isc.org/mailman/listinfo/kea-dev
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of kea-dev digest..."
Today's Topics:
1. Raw socket input buffer ([email protected])
2. Re: Raw socket input buffer (Francis Dupont)
----------------------------------------------------------------------
Message: 1
Date: Mon, 31 Jul 2017 10:58:45 +0200
From: [email protected]
To: [email protected], [email protected]
Subject: [kea-dev] Raw socket input buffer
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8
Hi,
I have a kea4 server, version 1.1.0, I added hooks that connect
externally (the important information : that hook is "slow", it does TCP
connect)
That part works well
However, when the server takes too many queries (I don't know how "too
many" is), a strange behavior appears: the server keep and answer
outdated requests (some kind of input buffer, I guess), which clients
timed-out in the mean time, leading to another requests etc -> broadcast
storm and global failure
I will try to explain that using the timeline below:
t: client1 make request1-1
client2 make request2-1
client3 make request3-1
t + 1: server process request1-1
t + 2: server keep processing request1-1
t + 3: client1 time out request1-1 and make request1-2
client2 time out request2-1 and make request2-2
client3 time out request3-1 and make request3-2
t + 4: server send answer1-1, and start processing request2-1 (which is
already timed out by the client2)
answer1-1 reach client1 and is dropped
t + n: client keep sending new requests, timing out old one
server keep processing obsolete requests
I tried to reduce /proc/sys/net/core/rmem_max to 4096, this does not fix
the issue (probably because 4096 is still a lot of dhcp-packets :p)
Any tip, trick, configuration or whatever on that issue ?
Best regards,
------------------------------
Message: 2
Date: Mon, 31 Jul 2017 10:36:36 +0000
From: Francis Dupont <[email protected]>
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: [kea-dev] Raw socket input buffer
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"
[email protected] writes:
> I have a kea4 server, version 1.1.0, I added hooks that connect
> externally (the important information : that hook is "slow", it does TCP
> connect)
> That part works well
>
> However, when the server takes too many queries (I don't know how "too
> many" is), a strange behavior appears: the server keep and answer
> outdated requests (some kind of input buffer, I guess), which clients
> timed-out in the mean time, leading to another requests etc -> broadcast
> storm and global failure
=> as your tentative fix suggested this is a kernel issue: pending
queries are simply queued waiting Kea to read them. IMHO the best is
to add some code in the slow hook to flush them.
> I tried to reduce /proc/sys/net/core/rmem_max to 4096, this does not fix
> the issue (probably because 4096 is still a lot of dhcp-packets :p)
>
> Any tip, trick, configuration or whatever on that issue ?
=> slow processing is incompatible with the DHCP protocol so basically
there is no final fix, only tricks to make things less broken.
Regards
Francis Dupont <[email protected]>
------------------------------
Subject: Digest Footer
_______________________________________________
kea-dev mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-dev
------------------------------
End of kea-dev Digest, Vol 40, Issue 6
**************************************