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
**************************************

Reply via email to