graph: Fix: bt_graph_configure() does not propagate errors
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 1 Apr 2019 13:58:02 +0000 (09:58 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 3 May 2019 22:19:39 +0000 (18:19 -0400)
Issue
=====
When configuring the graph, message iterator initialize functions may fail
and return an error status (e.g. _STATUS_NOMEM and _STATUS_ERROR). Those
error status are not propagated back to the caller of
`bt_graph_configure()` function. The caller that will consider the graph
to be configured properly and run it will it assertions down the road.

Solution
========
Return `BT_GRAPH_STATUS_ERROR` if any of the sinks returned a non-OK
status from its `graph_is_configured()` function.

Known drawbacks
===============
None.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
include/babeltrace/graph/graph-internal.h

index 83812e7b51e7dda437d4a8aa6cc8710aa1c61347..ec2f65ecff9d2afd55ab548f84b2f539a4991530 100644 (file)
@@ -261,6 +261,7 @@ enum bt_graph_status bt_graph_configure(struct bt_graph *graph)
 #endif
 
                        if (comp_status != BT_SELF_COMPONENT_STATUS_OK) {
+                               status = BT_GRAPH_STATUS_ERROR;
 #ifdef BT_LIB_LOGW
                                BT_LIB_LOGW("User's \"graph is configured\" method failed: "
                                        "%![comp-]+c, status=%s",
This page took 0.026014 seconds and 4 git commands to generate.