[Xymon] xymond_filestore: crashed but still working (too well?)

cleaver at terabithia.org cleaver at terabithia.org
Tue Jul 9 20:48:03 CEST 2013

> All --
> Am turning on the "xymond_filestore" worker module for the first time and
> have a couple of odd things (to my mind) happening:
> 1) The status icon in Xymon ("xymond_filestore") is red, and the details
> page says "Program crashed / Fatal signal caught!". Found the core file
> under ~xymon/server/tmp/ and pstack shows:
> core '/home/hobbit/xymon/server/tmp/core' of 16895:     xymond_filestore
> --data --debug
>  ff13ebd4 _lwp_kill (6, 0, 0, ff11e0f0, ffffffff, 6) + 8
>  ff0b29f0 abort    (0, 1, 42b94, ffb04, ff1b5518, 0) + 110
>  0001f170 sigsegv_handler (b, 0, ffbfc830, 1, 0, 0) + 30
>  ff13b00c __sighndlr (b, 0, ffbfc830, 1f140, 0, 1) + c
>  ff12f6bc call_user_handler (b, 0, 0, 0, ff302a00, ffbfc830) + 3b8
>  ff12f8a4 sigacthandler (b, 0, ffbfc830, ffffffff, 0, 0) + 60
>  --- called from signal handler with signal 11 (SIGSEGV) ---
>  ff11f858 fwrite   (4ba93, 16d, 1, 0, ff0000, 80808080) + 8
>  00013c08 update_file (ffbfd4d0, 0, 4ba93, 0, 0, ffffffff) + 78
>  00014a1c main     (2c000, 4ba55, 4, 0, 0, ffbfd4d0) + 99c
>  00013a28 _start   (0, 0, 0, 0, 0, 0) + 5c
>  (Running v. 4.3.3 / Solaris 10, FWIW)

Yikes. IIRC there were some changes in this code over time; I'd be curious
if this works ok with 4.3.11.

> 2) I turned on xymond_filestore because I'm writing a server-side script
> to analyze incoming data and assign status. I imagined I would *only* get
> files under $XYMONDATADIR sent from my custom client script, but instead
> I'm getting zillions (actually a few thousand) showing up in that dir. Can
> someone please explain why I'm getting all these client "data" files in
> this dir?

You'll actually be getting a copy of all data messages coming through on
the channel. xymond_client takes the incoming client message and turns it
in to both status *and* data messages. The status messages are what you
see as test results, but the data messages include things like parsed
vmstat/ifstat data. The reason xymond_rrd is configured to run twice (one
listening to the status channel, once to the data channel) is so that it
can pick up both feeds and make pretty RRDs out of -- say -- bandwidth in
the trends page.

> More to my point -- is there any way to restrict only the data files I
> want to appear in this dir?

I think xymond_filestore's "--only=test[,test,test]" filter might work for
data messages, but I'm not certain. Another option is to use --filter= at
the xymond_channel level, but it depends on how fine-tuned your
requirements are (that option is a simple regex include).

If the box you're on has a lot of ram, I've found using a tmpfs for the
filestore /data directory can be quite convenient. If you're doing
background analysis of data messages, it's sometimes easier to grep a dir
than create another xymond_channel listening script and wait.



More information about the Xymon mailing list