Merged both patches in master, stable-2.10, and stable-2.9. Thanks! Jérémie
On 14 February 2018 at 16:32, Julien Desfossez <[email protected]> wrote: > If we have a network error while performing the version check between > the session daemon and the relay, we should not report to the user that > there is a version mismatch. We now return LTTNG_ERR_RELAYD_VERSION_FAIL > on relayd_version_check() when the daemons are not compatible and the > negative value from sendmsg/recvmsg on network errors. > > Signed-off-by: Julien Desfossez <[email protected]> > --- > src/bin/lttng-sessiond/cmd.c | 7 +++++-- > src/common/relayd/relayd.c | 5 +++-- > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c > index 1edcffe..0317d52 100644 > --- a/src/bin/lttng-sessiond/cmd.c > +++ b/src/bin/lttng-sessiond/cmd.c > @@ -877,8 +877,11 @@ static int create_connect_relayd(struct lttng_uri *uri, > > /* Check relayd version */ > ret = relayd_version_check(rsock); > - if (ret < 0) { > - ret = LTTNG_ERR_RELAYD_VERSION_FAIL; > + if (ret == LTTNG_ERR_RELAYD_VERSION_FAIL) { > + goto close_sock; > + } else if (ret < 0) { > + ERR("Unable to reach lttng-relayd"); > + ret = LTTNG_ERR_RELAYD_CONNECT_FAIL; > goto close_sock; > } > consumer->relay_major_version = rsock->major; > diff --git a/src/common/relayd/relayd.c b/src/common/relayd/relayd.c > index 2adcbe4..4cb1c1f 100644 > --- a/src/common/relayd/relayd.c > +++ b/src/common/relayd/relayd.c > @@ -378,7 +378,8 @@ end: > * If major versions are compatible, we assign minor_to_use to the > * minor version of the procotol we are going to use for this session. > * > - * Return 0 if compatible else negative value. > + * Return 0 if the two daemons are compatible, LTTNG_ERR_RELAYD_VERSION_FAIL > + * otherwise, or a negative value on network errors. > */ > int relayd_version_check(struct lttcomm_relayd_sock *rsock) > { > @@ -420,7 +421,7 @@ int relayd_version_check(struct lttcomm_relayd_sock > *rsock) > */ > if (msg.major != rsock->major) { > /* Not compatible */ > - ret = -1; > + ret = LTTNG_ERR_RELAYD_VERSION_FAIL; > DBG2("Relayd version is NOT compatible. Relayd version %u != > %u (us)", > msg.major, rsock->major); > goto error; > -- > 2.7.4 > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
