Complain if a client binary API queue is full 11/16011/2
authorDave Barach <dave@barachs.net>
Sun, 18 Nov 2018 17:03:48 +0000 (12:03 -0500)
committerDamjan Marion <dmarion@me.com>
Sun, 18 Nov 2018 19:46:12 +0000 (19:46 +0000)
Definitely indicates a client binary API queue handling issue. We
can't simply turf the message, or we'll end up with a more subtle
derivative misbehavior.

Change-Id: I6363fda1430b0a9ec33ad69badc1e0072fe20fa8
Signed-off-by: Dave Barach <dave@barachs.net>
src/vlibmemory/memory_shared.c

index 0604b0a..d6b2b98 100644 (file)
@@ -709,6 +709,14 @@ vl_msg_api_send_shmem (svm_queue_t * q, u8 * elem)
   if (am->tx_trace && am->tx_trace->enabled)
     vl_msg_api_trace (am, am->tx_trace, (void *) trace[0]);
 
+  /*
+   * Announce a probable binary API client bug:
+   * some client's input queue is stuffed.
+   * The situation may be recoverable, or not.
+   */
+  if (PREDICT_FALSE
+      (am->vl_clients /* vpp side */  && (q->cursize == q->maxsize)))
+    clib_warning ("WARNING: client input queue at %llx is stuffed...", q);
   (void) svm_queue_add (q, elem, 0 /* nowait */ );
 }