Fix: channel errors on local stress-tests
[lttng-tools.git] / src / bin / lttng-sessiond / ust-app.c
index 2a810aba15fd2db25f4c47bf5d98bf3a70b0d607..f97d869e6900fc9a9efd9903e67c164b0f78fc08 100644 (file)
@@ -487,9 +487,11 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan,
                registry = get_session_registry(ua_chan->session);
                if (registry) {
                        ust_registry_channel_del_free(registry, ua_chan->key,
                registry = get_session_registry(ua_chan->session);
                if (registry) {
                        ust_registry_channel_del_free(registry, ua_chan->key,
-                               true);
+                               sock >= 0);
+               }
+               if (sock >= 0) {
+                       save_per_pid_lost_discarded_counters(ua_chan);
                }
                }
-               save_per_pid_lost_discarded_counters(ua_chan);
        }
 
        if (ua_chan->obj != NULL) {
        }
 
        if (ua_chan->obj != NULL) {
@@ -5429,7 +5431,7 @@ static int reply_ust_register_channel(int sock, int cobjd,
                size_t nr_fields, struct ustctl_field *fields)
 {
        int ret, ret_code = 0;
                size_t nr_fields, struct ustctl_field *fields)
 {
        int ret, ret_code = 0;
-       uint32_t chan_id, reg_count;
+       uint32_t chan_id;
        uint64_t chan_reg_key;
        enum ustctl_channel_header type;
        struct ust_app *app;
        uint64_t chan_reg_key;
        enum ustctl_channel_header type;
        struct ust_app *app;
@@ -5481,13 +5483,12 @@ static int reply_ust_register_channel(int sock, int cobjd,
        assert(chan_reg);
 
        if (!chan_reg->register_done) {
        assert(chan_reg);
 
        if (!chan_reg->register_done) {
-               reg_count = ust_registry_get_event_count(chan_reg);
-               if (reg_count < 31) {
-                       type = USTCTL_CHANNEL_HEADER_COMPACT;
-               } else {
-                       type = USTCTL_CHANNEL_HEADER_LARGE;
-               }
-
+               /*
+                * TODO: eventually use the registry event count for
+                * this channel to better guess header type for per-pid
+                * buffers.
+                */
+               type = USTCTL_CHANNEL_HEADER_LARGE;
                chan_reg->nr_ctx_fields = nr_fields;
                chan_reg->ctx_fields = fields;
                fields = NULL;
                chan_reg->nr_ctx_fields = nr_fields;
                chan_reg->ctx_fields = fields;
                fields = NULL;
@@ -6425,7 +6426,7 @@ int ust_app_rotate_session(struct ltt_session *session)
 
                        registry = get_session_registry(ua_sess);
                        if (!registry) {
 
                        registry = get_session_registry(ua_sess);
                        if (!registry) {
-                               DBG("Application session is being torn down. Abort snapshot record.");
+                               DBG("Application session is being torn down. Abort session rotation.");
                                ret = -1;
                                goto error;
                        }
                                ret = -1;
                                goto error;
                        }
This page took 0.024547 seconds and 4 git commands to generate.