From 87967aba9d620feaf47a83e8799430c61d397cd8 Mon Sep 17 00:00:00 2001 From: Nathaniel Bauernfeind Date: Fri, 22 Dec 2023 11:42:15 -0700 Subject: [PATCH] UpdateGraph: Log Dependency Information On Failure to Proceed --- .../engine/updategraph/impl/BaseUpdateGraph.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/engine/table/src/main/java/io/deephaven/engine/updategraph/impl/BaseUpdateGraph.java b/engine/table/src/main/java/io/deephaven/engine/updategraph/impl/BaseUpdateGraph.java index 2676354eeb7..e2d369f8012 100644 --- a/engine/table/src/main/java/io/deephaven/engine/updategraph/impl/BaseUpdateGraph.java +++ b/engine/table/src/main/java/io/deephaven/engine/updategraph/impl/BaseUpdateGraph.java @@ -574,6 +574,16 @@ private void flushNormalNotificationsAndCompleteCycle() { } } if (outstandingCountAtStart == 0 && nothingBecameSatisfied) { + if (!printDependencyInformation) { + // Let's drop some breadcrumbs here, because this is a very bad state to be in and hard to debug. + log.error().append(Thread.currentThread().getName()) + .append(": No outstanding notifications, yet notification queue size=") + .append(pendingToEvaluate.size()).endl(); + for (final Notification notification : pendingToEvaluate) { + log.error().append(Thread.currentThread().getName()).append(": Unmet dependencies for ") + .append(notification).endl(); + } + } throw new IllegalStateException( "No outstanding notifications, yet the notification queue is not empty!"); }