projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: handle new streams in live mode in relayd
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
ust-app.c
diff --git
a/src/bin/lttng-sessiond/ust-app.c
b/src/bin/lttng-sessiond/ust-app.c
index c7bcc85f5e0b8fed7ef9aeff108f3fb630517e95..34d4c9b1558de816bd1935ba02eef50b1c90e511 100644
(file)
--- a/
src/bin/lttng-sessiond/ust-app.c
+++ b/
src/bin/lttng-sessiond/ust-app.c
@@
-3125,7
+3125,6
@@
int ust_app_list_events(struct lttng_event **events)
&uiter)) != -LTTNG_UST_ERR_NOENT) {
/* Handle ustctl error. */
if (ret < 0) {
&uiter)) != -LTTNG_UST_ERR_NOENT) {
/* Handle ustctl error. */
if (ret < 0) {
- free(tmp_event);
if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
ERR("UST app tp list get failed for app %d with ret %d",
app->sock, ret);
if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
ERR("UST app tp list get failed for app %d with ret %d",
app->sock, ret);
@@
-3138,6
+3137,7
@@
int ust_app_list_events(struct lttng_event **events)
*/
break;
}
*/
break;
}
+ free(tmp_event);
goto rcu_error;
}
goto rcu_error;
}
@@
-3225,7
+3225,6
@@
int ust_app_list_event_fields(struct lttng_event_field **fields)
&uiter)) != -LTTNG_UST_ERR_NOENT) {
/* Handle ustctl error. */
if (ret < 0) {
&uiter)) != -LTTNG_UST_ERR_NOENT) {
/* Handle ustctl error. */
if (ret < 0) {
- free(tmp_event);
if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
ERR("UST app tp list field failed for app %d with ret %d",
app->sock, ret);
if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
ERR("UST app tp list field failed for app %d with ret %d",
app->sock, ret);
@@
-3234,10
+3233,11
@@
int ust_app_list_event_fields(struct lttng_event_field **fields)
/*
* This is normal behavior, an application can die during the
* creation process. Don't report an error so the execution can
/*
* This is normal behavior, an application can die during the
* creation process. Don't report an error so the execution can
- * continue normally.
+ * continue normally.
Reset list and count for next app.
*/
break;
}
*/
break;
}
+ free(tmp_event);
goto rcu_error;
}
goto rcu_error;
}
@@
-4932,6
+4932,7
@@
int ust_app_snapshot_record(struct ltt_ust_session *usess,
struct snapshot_output *output, int wait, unsigned int nb_streams)
{
int ret = 0;
struct snapshot_output *output, int wait, unsigned int nb_streams)
{
int ret = 0;
+ unsigned int snapshot_done = 0;
struct lttng_ht_iter iter;
struct ust_app *app;
char pathname[PATH_MAX];
struct lttng_ht_iter iter;
struct ust_app *app;
char pathname[PATH_MAX];
@@
-5006,6
+5007,7
@@
int ust_app_snapshot_record(struct ltt_ust_session *usess,
if (ret < 0) {
goto error;
}
if (ret < 0) {
goto error;
}
+ snapshot_done = 1;
}
break;
}
}
break;
}
@@
-5073,6
+5075,7
@@
int ust_app_snapshot_record(struct ltt_ust_session *usess,
if (ret < 0) {
goto error;
}
if (ret < 0) {
goto error;
}
+ snapshot_done = 1;
}
break;
}
}
break;
}
@@
-5081,6
+5084,15
@@
int ust_app_snapshot_record(struct ltt_ust_session *usess,
break;
}
break;
}
+ if (!snapshot_done) {
+ /*
+ * If no snapshot was made and we are not in the error path, this means
+ * that there are no buffers thus no (prior) application to snapshot
+ * data from so we have simply NO data.
+ */
+ ret = -ENODATA;
+ }
+
error:
rcu_read_unlock();
return ret;
error:
rcu_read_unlock();
return ret;
This page took
0.026532 seconds
and
4
git commands to generate.