X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fcommon%2Fconfig%2Fconfig.c;h=c9777d63f673728313c9f1d0fb0d8cc783e6af21;hb=e4b5eb8a2efd2fcfb031c8d14402f563dcb7f9ae;hp=cdc044d6dc72fda892f9f2d3239140714ad61eb0;hpb=7ab02a271869642f4b34d4bd4dd9a68b3207271d;p=lttng-tools.git diff --git a/src/common/config/config.c b/src/common/config/config.c index cdc044d6d..c9777d63f 100644 --- a/src/common/config/config.c +++ b/src/common/config/config.c @@ -154,6 +154,7 @@ const char * const config_event_context_vppid = "VPPID"; const char * const config_event_context_pthread_id = "PTHREAD_ID"; const char * const config_event_context_hostname = "HOSTNAME"; const char * const config_event_context_ip = "IP"; +const char * const config_event_context_perf_thread_counter = "PERF_THREAD_COUNTER"; struct consumer_output { int enabled; @@ -2155,7 +2156,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { ret = -LTTNG_ERR_NOMEM; - goto end; + goto error; } name = (char *) node_content; @@ -2169,14 +2170,14 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { ret = -LTTNG_ERR_NOMEM; - goto end; + goto error; } ret = parse_bool(node_content, &started); free(node_content); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; - goto end; + goto error; } } else if (!output_node && !strcmp((const char *) node->name, config_element_output)) { @@ -2194,14 +2195,14 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, xmlNodeGetContent(attributes_child); if (!snapshot_mode_content) { ret = -LTTNG_ERR_NOMEM; - goto end; + goto error; } ret = parse_bool(snapshot_mode_content, &snapshot_mode); free(snapshot_mode_content); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; - goto end; + goto error; } } else { /* live_timer_interval */ @@ -2209,14 +2210,14 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, xmlNodeGetContent(attributes_child); if (!timer_interval_content) { ret = -LTTNG_ERR_NOMEM; - goto end; + goto error; } ret = parse_uint(timer_interval_content, &live_timer_interval); free(timer_interval_content); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; - goto end; + goto error; } } } @@ -2225,13 +2226,13 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, if (!name) { /* Mandatory attribute, as defined in the session XSD */ ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; - goto end; + goto error; } if (session_name && strcmp(name, session_name)) { /* This is not the session we are looking for */ - ret = -LTTNG_ERR_LOAD_SESSION_NOENT; - goto end; + ret = -LTTNG_ERR_NO_SESSION; + goto error; } /* Init domains to create the session handles */ @@ -2242,7 +2243,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, domain = zmalloc(sizeof(*domain)); if (!domain) { ret = -LTTNG_ERR_NOMEM; - goto end; + goto error; } ret = init_domain(node, domain); @@ -2280,7 +2281,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, domain_init_error: free(domain); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; - goto end; + goto error; } if (override) { @@ -2288,7 +2289,7 @@ domain_init_error: ret = lttng_destroy_session(name); if (ret && ret != -LTTNG_ERR_SESS_NOT_FOUND) { ERR("Failed to destroy existing session."); - goto end; + goto error; } } @@ -2304,9 +2305,8 @@ domain_init_error: ret = create_session(name, kernel_domain, ust_domain, jul_domain, output_node, UINT64_MAX); } - if (ret) { - goto end; + goto error; } for (node = xmlFirstElementChild(domains_node); node; @@ -2323,12 +2323,14 @@ domain_init_error: goto end; } } + end: if (ret < 0) { ERR("Failed to load session %s: %s", name, lttng_strerror(ret)); lttng_destroy_session(name); } +error: free(kernel_domain); free(ust_domain); free(jul_domain); @@ -2527,7 +2529,7 @@ int config_load_session(const char *path, const char *session_name, } ret = load_session_from_path(path, session_name, - &validation_ctx, 0); + &validation_ctx, override); if (!ret || (ret && ret != -LTTNG_ERR_LOAD_SESSION_NOENT)) { /* Session found or an error occured */ free(path); @@ -2539,7 +2541,7 @@ int config_load_session(const char *path, const char *session_name, /* Try system session configuration path */ ret = load_session_from_path(DEFAULT_SESSION_SYSTEM_CONFIGPATH, - session_name, &validation_ctx, 0); + session_name, &validation_ctx, override); if (!ret || (ret && ret != -LTTNG_ERR_LOAD_SESSION_NOENT)) { /* Session found or an error occured */ goto end;