Xymon Mailing List Archive search

SIGBUS in bbcombotest

7 messages in this thread

list Nicolas Dorfsman · Wed, 5 Jul 2006 15:01:48 +0200 ·
	Hi,

	I'm trying to use bbcombotest :

(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
   [1] _libc_kill(0x0, 0x6, 0x0, 0xffffffff, 0x37f20, 0xff1358a0), at  0xff19fc14
   [2] abort(0xff1bc008, 0x0, 0x0, 0x0, 0x220f8, 0x187fc), at 0xff135984
=>[3] sigsegv_handler(signum = ???) (optimized), at 0x18834 (line  ~57) in "sig.c"
   [4] sigacthandler(0xa, 0x0, 0xffbe1fd0, 0x0, 0xffbe2a55, 0x2e), at  0xff19ec38
   ---- called from signal handler with signal 10 (SIGBUS) ------
   [5] t_splay(0x319a8, 0x7987c, 0x10, 0x7c, 0x73, 0x7c), at 0xff142974
   [6] t_delete(0x319a8, 0xff1bc008, 0x0, 0x319a4, 0x39c88,  0xfffffffc), at 0xff1427d8
   [7] realfree(0x319a0, 0xff1c2858, 0xff1bc008, 0x319a4, 0xffffffff,  0x319ac), at 0xff1423dc
   [8] cleanfree(0x0, 0xff1bc008, 0xff1c27cc, 0xff1c284c, 0xff1c27cc,  0x0), at 0xff142cb0
   [9] _malloc_unlocked(0x4, 0x7a34c, 0xff1bc008, 0x8, 0x22300, 0x0),  at 0xff141de4
   [10] malloc(0x4, 0xffbe2a5c, 0x73000000, 0x7efefeff, 0x81010100,  0xff00), at 0xff141cd8
   [11] strdup(0xffbe2a56, 0xff1bc008, 0x319ac, 0xff1bc008, 0x22300,  0xff142b64), at 0xff14f56c
   [12] xstrdup(s = ???) (optimized), at 0x15380 (line ~172) in  "memory.c"
   [13] gettname(spec = ???) (optimized), at 0x12a18 (line ~72) in  "bbcombotest.c"
   [14] evaluate(symbolicexpr = ???, resultexpr = ???, valuelist  = ???, errbuf = ???) (optimized), at 0x13464 (line ~288) in  "bbcombotest.c"
   [15] update_combotests(showeval = ???, cleanexpr = ???)  (optimized), at 0x13800 (line ~396) in "bbcombotest.c"
   [16] main(argc = ???, argv = ???) (optimized), at 0x13b2c (line  ~471) in "bbcombotest.c"


	Any idea ?
list Nicolas Dorfsman · Wed, 5 Jul 2006 15:44:33 +0200 ·
*** bbcombotest.c.orig  Fri May 19 14:02:54 2006
--- bbcombotest.c       Wed Jul  5 15:43:22 2006
***************
*** 69,77 ****

         /* grab the testname part from a "www.xxx.com.testname"  
string */
         p = strrchr(spec, '.');
!       if (p) result = strdup(p+1); else result = "";

!       return result;
   }

   static void flush_valuelist(value_t *head)
--- 69,81 ----

         /* grab the testname part from a "www.xxx.com.testname"  
string */
         p = strrchr(spec, '.');
!       if (p) {
!               result = strdup(p);
!       }
!       else
!               result = "";

!       return result+1;
   }

   static void flush_valuelist(value_t *head)
list Henrik Størner · Wed, 5 Jul 2006 16:21:46 +0200 ·
This patch is wrong; in some circumstances it will assign "result" to an
empty string, and then return a pointer that is past the end of the
empty string.

Could you provide me with an example of what you have in the bbcombotest.cfg file that triggers this problem ?


Regards,

Henrik
quoted from Nicolas Dorfsman


On Wed, Jul 05, 2006 at 03:44:33PM +0200, Nicolas Dorfsman wrote:
*** bbcombotest.c.orig  Fri May 19 14:02:54 2006
--- bbcombotest.c       Wed Jul  5 15:43:22 2006
***************
*** 69,77 ****

        /* grab the testname part from a "www.xxx.com.testname"  string */
        p = strrchr(spec, '.');
!       if (p) result = strdup(p+1); else result = "";

!       return result;
  }

  static void flush_valuelist(value_t *head)
--- 69,81 ----

        /* grab the testname part from a "www.xxx.com.testname"  string */
        p = strrchr(spec, '.');
!       if (p) {
!               result = strdup(p);
!       }
!       else
!               result = "";

!       return result+1;
  }

  static void flush_valuelist(value_t *head)

-- 

Henrik Storner
list Jason K. Kruse · Wed, 5 Jul 2006 09:33:20 -0500 ·
Didn't see this mentioned anywhere.

Hobbit version 4.2-alfa-20060502

With the following log the order of entries in localclient.cfg is
important if you use a regex for the match.

Jul  5 09:20:01 wombat scsi: [ID 107833 kern.warning] WARNING:
/pci at 1f,2000/fibre-channel at 1/sd at 1,0 (sd287):
Jul  5 09:20:01 wombat Error for Command:     Error Level: Informational

This causes the yellow page with a single yellow dot, as expected.

LOG     /var/adm/messages %(?-i)WARNING COLOR=yellow GROUP=root
LOG     /var/adm/messages IGNORE=%(?-i)Informational "Error Level"
COLOR=red

This causes a red page with a single yellow dot.

LOG     /var/adm/messages %(?-i)WARNING COLOR=yellow GROUP=root
LOG     /var/adm/messages IGNORE=%(?-i)Informational %(?-i)Error.Level
COLOR=red

Altering the order to have the red check first causes the expected
yellow page to show.

Jason
list Nicolas Dorfsman · Wed, 5 Jul 2006 16:43:52 +0200 ·
quoted from Henrik Størner
Le 5 juil. 06 à 16:21, Henrik Stoerner a écrit :
This patch is wrong; in some circumstances it will assign "result"  
to an
empty string, and then return a pointer that is past the end of the
empty string.
Correct. I did it quick.
quoted from Henrik Størner
Could you provide me with an example of what you have in the
bbcombotest.cfg file that triggers this problem ?
(c92-dc200.dns||c92-dc220.dns||c92-dc221.dns)

The problem is the "p+1" which may abort in SIGBUS.


Nicolas
list Henrik Størner · Mon, 10 Jul 2006 13:49:00 +0200 ·
quoted from Jason K. Kruse
On Wed, Jul 05, 2006 at 09:33:20AM -0500, Kruse, Jason K. wrote:
Hobbit version 4.2-alfa-20060502

With the following log the order of entries in localclient.cfg is
important if you use a regex for the match.
This turned out to be a bug in the log handling code. Fixed now.


Regards,
Henrik
list Henrik Størner · Tue, 11 Jul 2006 09:49:03 +0200 ·
quoted from Nicolas Dorfsman
On Wed, Jul 05, 2006 at 04:43:52PM +0200, Nicolas Dorfsman wrote:
Could you provide me with an example of what you have in the
bbcombotest.cfg file that triggers this problem ?
(c92-dc200.dns||c92-dc220.dns||c92-dc221.dns)
This is wrong. When you have dashes in the hostnames, they need
to be escaped with a backslash. So:

(c92\-dc200.dns||c92\-dc220.dns||c92\-dc221.dns)


Regards,
Henrik