[Xymon] Parenthesis failure in combo.cfg

John Thurston john.thurston at alaska.gov
Wed Oct 7 20:16:10 CEST 2015


On 10/6/2015 4:28 PM, John Thurston wrote:
> I'm pulling what little hair I have over the behavior of combostatus
> with parenthesis in combo.cfg
>
> The man file specifically says, "All operators have EQUAL PRECEDENCE. If
> you need something evaluated in a specific order, use parentheses to
> group the expressions..."  I need to implement an exclusive-or, so
> certainly need to ensure the order of operations. But I couldn't make it
> work, so I started simplifying my expression to find where it broke. The
> failure conditions are pretty depressing :(
>
- snip -
> it works with extra parens for a simple term
>   foo.x = ((bar.a))
> but dumps core there if a more complex expression in the parens
>   foo.x = ((bar.a==0))
- snip -

Looking at the stack in the resulting core file on my Solaris system, I 
suspect update_combotests is running off the end of a string:

>  feeaebc4 _lwp_kill (6, 0, 0, fee8e06c, ffffffff, 6) + 8
>  fee229b0 abort    (0, 1, 32cb4, ffb3c, fef25518, 0) + 110
>  000175f0 sigsegv_handler (b, 0, ffbf3fb8, 1, 676f767c, 696e666f) + 30
>  feeaafec __sighndlr (b, 0, ffbf3fb8, 175c0, 0, 1) + c
>  fee9f69c call_user_handler (b, 0, 0, 0, ff062a00, ffbf3fb8) + 3b8
>  fee9f884 sigacthandler (b, 0, ffbf3fb8, 3d, 0, 0) + 60
>  --- called from signal handler with signal 11 (SIGSEGV) ---
>  fee12d10 strlen   (1f7ac, ffbf51c8, ffbff912, 0, 0, 0) + 50
>  fee817b8 sprintf  (ffbf9a00, 7fffffff, 7ffffc00, ffbff908, 0, 0) + 40
>  00013fb4 update_combotests (1f778, 1f788, 43ca8, ffbff908, 0, 40118) + a3c
>  000130e0 _start   (0, 0, 0, 0, 0, 0) + 5c

And, I remembered another host running Xymon 4.3.17 on Centos 6.5

That host seems to be happy with nested parens and interesting 
constructs. It doesn't core dump when fed things like:
  foo.x = ((bar.a))
  foo.y = (( 1 || (bar.a==0) || 1))
This is much more usable. Unfortunately, it will be much more difficult 
to make this Centos box handle the combo logic for me.

-- 
    Do things because you should, not just because you can.

John Thurston    907-465-8591
John.Thurston at alaska.gov
Enterprise Technology Services
Department of Administration
State of Alaska



More information about the Xymon mailing list