[lttng-dev] [PATCH] lttng-tools lttng commands add_context.c :Return values of the cmd_add_context() chain of functions

Thibault, Daniel Daniel.Thibault at drdc-rddc.gc.ca
Fri Jan 27 11:36:59 EST 2012


-----Message d'origine-----
De : David Goulet [mailto:dgoulet at efficios.com] 
Envoyé : 27 janvier 2012 10:51

> > +		/*
> > +		 * lttng_add_context() returns the size
> > +		 * of the returned payload data
> > +		 * or a negative error code.
> > +		 */
>
> I did not had this because the API is well documented so it would duplicate
> comments across the code and I prefer not since changing the API makes the
> comments useless.

   As for claiming the "API is well documented", I obviously beg to differ.  :-)

   I put that comment in more to justify my code edits than just to "comment the code", so leaving it out of the patch is fine.

> >  		ret = lttng_add_context(handle, &context, opt_event_name,
> >  				opt_channel_name);
> > +		/* Stop looping upon error */
> >  		if (ret < 0) {
> >  			fprintf(stderr, "%s: ", type->opt->symbol);
> > -			continue;
> > +			goto error;
>
> Ok, here I am really not sure. The add-context command allows multiple "-t"
> options and they are all added one by one and not in one single blob. So, if the
> add context fails, you get an error on stderr and the next context is processed.
> So, unless I missed something here, it's the correct behavior.

   The problem with that behaviour is that it is not reflected in the return code of add_context().  The original code would return CMD_SUCCESS or CMD_ERROR depending on which -t option is processed last (assuming we have a -t option that fails), something I'm very uncomfortable with.

   A possible solution would be to add a new result code, say "CMD_WARNINGS", and treat the failing lttng_add_context() calls as warnings rather than errors.  Or maybe add an option "-w|--stoponwarn" so the user can decide what the behaviour should be.

Daniel U. Thibault
R & D pour la défense Canada - Valcartier (RDDC Valcartier) / Defence R&D Canada - Valcartier (DRDC Valcartier)
Système de systèmes (SdS) / System of Systems (SoS)
Solutions informatiques et expérimentations (SIE) / Computing Solutions and Experimentations (CSE)
2459 Boul. Pie XI Nord
Québec, QC  G3J 1X5
CANADA
Vox : (418) 844-4000 x4245
Fax : (418) 844-4538
NAC: 918V QSDJ
Gouvernement du Canada / Government of Canada
<http://www.valcartier.drdc-rddc.gc.ca/>



More information about the lttng-dev mailing list