[lttng-dev] [RFC PATCH lttng-tools v2] Fix: path of snapshots with a relay and default URI
Jérémie Galarneau
jeremie.galarneau at efficios.com
Tue Nov 14 00:26:18 UTC 2017
Merged, thanks!
Jérémie
On 30 August 2017 at 14:06, Julien Desfossez <jdesfossez at efficios.com> wrote:
> When recording a snapshot to a relay without custom URI (ex:
> net://localhost vs net://localhost/custom), the snapshots end up being
> stored in ~/lttng-traces/<hostname>/snapshot-XXX instead of being inside
> the <session-name> folder like on local snapshots. We would expect the
> path to be: ~/lttng-traces/<hostname>/<session-name>/snapshot-XXX
>
> So there is a discrepancy between the local and remote behaviour. This
> behaviour has been there since at least v2.6, maybe earlier.
>
> Moreover, there is nothing that informs the user about the default
> snapshot name, so it is not possible to know where a snapshot has been
> stored.
>
> After parsing the URI provided by the user, we now check if a custom
> name was provided or copy the session name there. This is the same
> operation performed in _lttng_create_session_ext.
>
> Signed-off-by: Julien Desfossez <jdesfossez at efficios.com>
> ---
> src/lib/lttng-ctl/lttng-ctl.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c
> index a1e10f2..3db9b89 100644
> --- a/src/lib/lttng-ctl/lttng-ctl.c
> +++ b/src/lib/lttng-ctl/lttng-ctl.c
> @@ -2485,9 +2485,22 @@ int lttng_create_session_snapshot(const char *name, const char *snapshot_url)
>
> lsm.u.uri.size = size;
>
> + /*
> + * If the user does not specify a custom subdir, use the session name.
> + */
> + if (size > 0 && uris[0].dtype != LTTNG_DST_PATH && strlen(uris[0].subdir) == 0) {
> + ret = snprintf(uris[0].subdir, sizeof(uris[0].subdir), "%s", name);
> + if (ret < 0) {
> + PERROR("snprintf uri subdir");
> + ret = -LTTNG_ERR_FATAL;
> + goto error;
> + }
> + }
> +
> ret = lttng_ctl_ask_sessiond_varlen_no_cmd_header(&lsm, uris,
> sizeof(struct lttng_uri) * size, NULL);
>
> +error:
> free(uris);
> return ret;
> }
> --
> 2.7.4
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list