diff options
author | Mohammed Hawari <mohammed@hawari.fr> | 2023-02-27 15:33:30 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2023-03-01 16:46:28 +0000 |
commit | 2cc8c0a8db227996bd2ee624f480f6674e25b6f0 (patch) | |
tree | 7893825e5ac9708b0d5f208b429fc43a0ecf2e0b /src/vnet/udp | |
parent | ad215f211d73e656a149326651fa2017382e51e0 (diff) |
udp: fix optimistic assert for UDP RX
Change-Id: I431c4a6f409b129e4290dba2e1acadea460ac797
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: improvement
Diffstat (limited to 'src/vnet/udp')
-rw-r--r-- | src/vnet/udp/udp_error.def | 1 | ||||
-rw-r--r-- | src/vnet/udp/udp_input.c | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/vnet/udp/udp_error.def b/src/vnet/udp/udp_error.def index 717285d9b76..ef19970ce72 100644 --- a/src/vnet/udp/udp_error.def +++ b/src/vnet/udp/udp_error.def @@ -21,6 +21,7 @@ udp_error (LENGTH_ERROR, length_error, ERROR, "Packets with length errors") udp_error (PUNT, punt, ERROR, "No listener punt") udp_error (ENQUEUED, enqueued, INFO, "Packets enqueued") udp_error (FIFO_FULL, fifo_full, ERROR, "Fifo full") +udp_error (FIFO_NOMEM, fifo_nomem, ERROR, "Fifo no mem") udp_error (NOT_READY, not_ready, ERROR, "Connection not ready") udp_error (ACCEPT, accept, INFO, "Accepted session") udp_error (CREATE_SESSION, create_session, ERROR, "Failed to create session") diff --git a/src/vnet/udp/udp_input.c b/src/vnet/udp/udp_input.c index d5dd159c4b2..6e5ed158d56 100644 --- a/src/vnet/udp/udp_input.c +++ b/src/vnet/udp/udp_input.c @@ -161,7 +161,11 @@ udp_connection_enqueue (udp_connection_t * uc0, session_t * s0, TRANSPORT_PROTO_UDP, queue_event); } - ASSERT (wrote0 > 0); + + /* In some rare cases, session_enqueue_dgram_connection can fail because a + * chunk cannot be allocated in the RX FIFO */ + if (PREDICT_FALSE (wrote0 == 0)) + *error0 = UDP_ERROR_FIFO_NOMEM; unlock_rx_lock: |