All of lore.kernel.org
 help / color / mirror / Atom feed
* multipathd segfault
@ 2009-03-27  0:25 David Strand
  2009-03-27  7:50 ` Hannes Reinecke
  0 siblings, 1 reply; 4+ messages in thread
From: David Strand @ 2009-03-27  0:25 UTC (permalink / raw)
  To: device-mapper development

I am getting a multipathd segfault when I have more than 26 devices,
and the device names become 4 characters. (i.e. /dev/sdz is consumed
and the next device is /dev/sdaa).

I was trying to hook gdb to a core dump, but it keeps complaining that
it needs device-mapper-libs-debuginfo, which I can not find. Can
anyone point me to this?

I built multipathd with -g turned on and did not strip it. Here is the
last few lines of output when I run it as multipathd -v9 -d:

Jul 04 05:01:26 | alpa-0x000080: discover
Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm table
alpa-0x000080  NF   [16384]
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = 65:160, len = 6
Jul 04 05:01:26 | *word = 1000, len = 4
Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm status
alpa-0x000080  NF   [16384]
Jul 04 05:01:26 | *word = 2, len = 1
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = E, len = 1
Jul 04 05:01:26 | *word = 1, len = 1
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | *word = A, len = 1
Jul 04 05:01:26 | *word = 0, len = 1
Jul 04 05:01:26 | alpa-0x000080: rr_weight = 1 (internal default)
Jul 04 05:01:26 | alpa-0x000080: pgfailback = -2 (config file default)
Jul 04 05:01:26 | alpa-0x000080: no_path_retry = 3 (config file default)
Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm message
alpa-0x000080  NF  queue_if_no_path
 [16384]
Jul 04 05:01:26 | pg_timeout = NONE (internal default)
Jul 04 05:01:26 | alpa-0x000080: event checker started
Jul 04 05:01:26 | sdaa path added to devmap alpa-0x000080
Jul 04 05:01:26 | discard event on /block/sdaa/sdaa1
Segmentation fault

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: multipathd segfault
  2009-03-27  0:25 multipathd segfault David Strand
@ 2009-03-27  7:50 ` Hannes Reinecke
  2009-03-27 17:08   ` David Strand
  2009-03-27 22:53   ` christophe.varoqui
  0 siblings, 2 replies; 4+ messages in thread
From: Hannes Reinecke @ 2009-03-27  7:50 UTC (permalink / raw)
  To: device-mapper development

[-- Attachment #1: Type: text/plain, Size: 2351 bytes --]

David Strand wrote:
> I am getting a multipathd segfault when I have more than 26 devices,
> and the device names become 4 characters. (i.e. /dev/sdz is consumed
> and the next device is /dev/sdaa).
> 
> I was trying to hook gdb to a core dump, but it keeps complaining that
> it needs device-mapper-libs-debuginfo, which I can not find. Can
> anyone point me to this?
> 
> I built multipathd with -g turned on and did not strip it. Here is the
> last few lines of output when I run it as multipathd -v9 -d:
> 
> Jul 04 05:01:26 | alpa-0x000080: discover
> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm table
> alpa-0x000080  NF   [16384]
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = 65:160, len = 6
> Jul 04 05:01:26 | *word = 1000, len = 4
> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm status
> alpa-0x000080  NF   [16384]
> Jul 04 05:01:26 | *word = 2, len = 1
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = E, len = 1
> Jul 04 05:01:26 | *word = 1, len = 1
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | *word = A, len = 1
> Jul 04 05:01:26 | *word = 0, len = 1
> Jul 04 05:01:26 | alpa-0x000080: rr_weight = 1 (internal default)
> Jul 04 05:01:26 | alpa-0x000080: pgfailback = -2 (config file default)
> Jul 04 05:01:26 | alpa-0x000080: no_path_retry = 3 (config file default)
> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm message
> alpa-0x000080  NF  queue_if_no_path
>  [16384]
> Jul 04 05:01:26 | pg_timeout = NONE (internal default)
> Jul 04 05:01:26 | alpa-0x000080: event checker started
> Jul 04 05:01:26 | sdaa path added to devmap alpa-0x000080
> Jul 04 05:01:26 | discard event on /block/sdaa/sdaa1
> Segmentation fault
> 
Oh, that one.

Fixed by the attached path.

Christophe, care to apply?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)

[-- Attachment #2: multipath-tools-uev-discard-segfault --]
[-- Type: text/plain, Size: 761 bytes --]

commit 223885b66311bbb47e439557eced066b3324ad8e
Author: Hannes Reinecke <hare@suse.de>
Date:   Tue Mar 10 08:57:18 2009 +0100

    Stack overflow in uev_trigger()
    
    uev_discard uses sscanf to write a 10 byte string into an array,
    but I forgot to take the trailing NULL byte into account.
    
    References: bnc#476540
    
    Signed-off-by: Hannes Reinecke <hare@suse.de>

diff --git a/multipathd/main.c b/multipathd/main.c
index 7c995b6..1d8ff5a 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -652,7 +652,7 @@ uxsock_trigger (char * str, char ** reply, int * len, void * trigger_data)
 static int
 uev_discard(char * devpath)
 {
-	char a[10], b[10], *c;
+	char a[11], b[11], *c;
 
 	/*
 	 * keep only block devices, discard partitions

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: multipathd segfault
  2009-03-27  7:50 ` Hannes Reinecke
@ 2009-03-27 17:08   ` David Strand
  2009-03-27 22:53   ` christophe.varoqui
  1 sibling, 0 replies; 4+ messages in thread
From: David Strand @ 2009-03-27 17:08 UTC (permalink / raw)
  To: device-mapper development

Yep, that was exactly it.

2009/3/27 Hannes Reinecke <hare@suse.de>:
> David Strand wrote:
>>
>> I am getting a multipathd segfault when I have more than 26 devices,
>> and the device names become 4 characters. (i.e. /dev/sdz is consumed
>> and the next device is /dev/sdaa).
>>
>> I was trying to hook gdb to a core dump, but it keeps complaining that
>> it needs device-mapper-libs-debuginfo, which I can not find. Can
>> anyone point me to this?
>>
>> I built multipathd with -g turned on and did not strip it. Here is the
>> last few lines of output when I run it as multipathd -v9 -d:
>>
>> Jul 04 05:01:26 | alpa-0x000080: discover
>> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm table
>> alpa-0x000080  NF   [16384]
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = 65:160, len = 6
>> Jul 04 05:01:26 | *word = 1000, len = 4
>> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm status
>> alpa-0x000080  NF   [16384]
>> Jul 04 05:01:26 | *word = 2, len = 1
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = E, len = 1
>> Jul 04 05:01:26 | *word = 1, len = 1
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | *word = A, len = 1
>> Jul 04 05:01:26 | *word = 0, len = 1
>> Jul 04 05:01:26 | alpa-0x000080: rr_weight = 1 (internal default)
>> Jul 04 05:01:26 | alpa-0x000080: pgfailback = -2 (config file default)
>> Jul 04 05:01:26 | alpa-0x000080: no_path_retry = 3 (config file default)
>> Jul 04 05:01:26 | libdevmapper: ioctl/libdm-iface.c(1606): dm message
>> alpa-0x000080  NF  queue_if_no_path
>>  [16384]
>> Jul 04 05:01:26 | pg_timeout = NONE (internal default)
>> Jul 04 05:01:26 | alpa-0x000080: event checker started
>> Jul 04 05:01:26 | sdaa path added to devmap alpa-0x000080
>> Jul 04 05:01:26 | discard event on /block/sdaa/sdaa1
>> Segmentation fault
>>
> Oh, that one.
>
> Fixed by the attached path.
>
> Christophe, care to apply?
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke                   zSeries & Storage
> hare@suse.de                          +49 911 74053 688
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: Markus Rex, HRB 16746 (AG Nürnberg)
>
> commit 223885b66311bbb47e439557eced066b3324ad8e
> Author: Hannes Reinecke <hare@suse.de>
> Date:   Tue Mar 10 08:57:18 2009 +0100
>
>    Stack overflow in uev_trigger()
>
>    uev_discard uses sscanf to write a 10 byte string into an array,
>    but I forgot to take the trailing NULL byte into account.
>
>    References: bnc#476540
>
>    Signed-off-by: Hannes Reinecke <hare@suse.de>
>
> diff --git a/multipathd/main.c b/multipathd/main.c
> index 7c995b6..1d8ff5a 100644
> --- a/multipathd/main.c
> +++ b/multipathd/main.c
> @@ -652,7 +652,7 @@ uxsock_trigger (char * str, char ** reply, int * len,
> void * trigger_data)
>  static int
>  uev_discard(char * devpath)
>  {
> -       char a[10], b[10], *c;
> +       char a[11], b[11], *c;
>
>        /*
>         * keep only block devices, discard partitions
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: multipathd segfault
  2009-03-27  7:50 ` Hannes Reinecke
  2009-03-27 17:08   ` David Strand
@ 2009-03-27 22:53   ` christophe.varoqui
  1 sibling, 0 replies; 4+ messages in thread
From: christophe.varoqui @ 2009-03-27 22:53 UTC (permalink / raw)
  To: device-mapper development

Applied.


diff --git a/multipathd/main.c b/multipathd/main.c
index 7c995b6..1d8ff5a 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -652,7 +652,7 @@ uxsock_trigger (char * str, char ** reply, int * len, void * trigger_data)
 static int
 uev_discard(char * devpath)
 {
-	char a[10], b[10], *c;
+	char a[11], b[11], *c;
 
 	/*
 	 * keep only block devices, discard partitions

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-03-27 22:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-27  0:25 multipathd segfault David Strand
2009-03-27  7:50 ` Hannes Reinecke
2009-03-27 17:08   ` David Strand
2009-03-27 22:53   ` christophe.varoqui

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.