Hi Miroslav,

I just discovered that the changes I've made to the totally broken
variables API now broke opentracing because apparently it's using
some of the variable code's internals for its own use:

   https://github.com/haproxy/haproxy/runs/3545475810

That's annoying because unbreaking the API was already extremely
complicated due to the global name table limitation that became a
feature on its own, but now I see that some upper level code outside
of vars/ is also making intimate use of that broken API (e.g. in
flt_ot_vars_unset), and I have no idea what it tries to do nor why.

Most of the breakage comes from all the undocumented functions
flt_ot_vars_* but I don't even understand why this does not use
the vars_* API that Lua, CLI and SPOE already use. Note that it
doesn't seem that the breakage is large, so most likely we can
figure together a few changes to perform to fix it, but reversing
all that is quite a pain, and even if I went through the process
of trying to build it I wouldn't know if what I'm doing works or
not :-/

The changes that broke are in the following commit range which tries
hard to minimize the visible changes:

   10080716b..55f8a830d

I would highly appreciate it if you could have a look, figure what needs
to be done, if possible using the public vars API, otherwise that we
discuss what needs to be extended, and if you could document these
functions, because, to be honest, the following doesn't help me much:

 /***
  * NAME
  *   flt_ot_vars_get -
  *
  * ARGUMENTS
  *   s      -
  *   scope  -
  *   prefix -
  *   opt    -
  *   err    -
  *
  * DESCRIPTION
  *   -
  *
  * RETURN VALUE
  *   -
  */
 struct otc_text_map *flt_ot_vars_get(struct stream *s, const char *scope, 
const char *prefix, uint opt, char **err)

Thanks,
Willy

Reply via email to