[linux-lvm] Segmentation fault in vgscan

Heinz J . Mauelshagen mauelshagen at sistina.com
Fri Aug 22 06:09:01 UTC 2003


On Fri, Aug 22, 2003 at 12:50:36PM +0200, Markus Baertschi wrote:
> 
> Heinz,
> 
> I'm pretty sure I've tested with 1.0.7. Look at the lines

Well, I derived the line numbers from the respective sources.

> 
> >> lblsapq00:~ # gdb ./LVM/1.0.7/tools/vgscan
>   ...
> >> (gdb) run
> >> Starting program: /root/./LVM/1.0.7/tools/vgscan
> 
> The other problem is that this is at a customer site on
> production machines. I can test the next time I'm there
> and got machine time to do some testing. This will happen
> as soon as the SAN support guys come back to me to solve
> the undelying problem (disks visible twice).

Ok.

Regards,
Heinz    -- The LVM Guy --


> 
> Markus
> 
> 
> On Fri, 22 Aug 2003 12:26:58 +0200, Heinz J . Mauelshagen wrote:
> 
> >Markus,
> 
> >LVM 0.9 had the strncmp() call in line 148, 1.0.7 has it in line 155
> >which makes me believe that the output below belongs to a 0.9 run.
> 
> >Please retest with 1.0.7 which avoids hitting the NULL pointer bug.
> 
> >Regards,
> >Heinz    -- The LVM Guy --
> 
> 
> >On Thu, Aug 21, 2003 at 10:07:57PM +0200, Markus Baertschi wrote:
> >> 
> >> I've got a strange problem with LVM. My environment is four
> >> IBM x440 servers (2 CPU, 2G memory) interconnected with two
> >> fcs adapters and two switches to a FastT700 SAN storage array.
> >> 
> >> Due to circumstances we are trying to understand the FCS drivers
> >> did show our disk devices twice (once per adapter). This is a problem
> >> on our part, but vgscan should terminate with an error message
> >> instead of a segfault.
> >> 
> >> We've started out with 0.98beta2 (what came with out SuSE 7). The
> >> problem is the same with the latest tarball (1.0.7) from sistina.
> >> 
> >> Markus
> >> 
> >> Some output from vgscan:
> >> <1> vg_check_exist_all_vg -- before vg_check_exist ( sapqvg)
> >> <22> vg_check_exist -- CALLED with VG: sapqvg
> >> <333> vg_check_name -- CALLED with VG: sapqvg
> >> <4444> lvm_check_chars -- CALLED with name: "sapqvg"
> >> <4444> lvm_check_chars -- LEAVING with ret: 0
> >> <333> vg_check_name -- LEAVING with ret: 0
> >> <22> vg_check_exist -- before pv_read_all_pv_of_vg
> >> <333> pv_read_all_pv_of_vg -- CALLED with vg_name: "sapqvg"
> >> <4444> vg_check_name -- CALLED with VG: sapqvg
> >> <55555> lvm_check_chars -- CALLED with name: "sapqvg"
> >> <55555> lvm_check_chars -- LEAVING with ret: 0
> >> <4444> vg_check_name -- LEAVING with ret: 0
> >> <4444> pv_read_all_pv -- CALLED
> >> <4444> pv_read_all_pv -- avoiding multiple entries in case of MD; np: 0
> >> <4444> pv_read_all_pv -- LEAVING with ret: 0
> >> <4444> pv_check_consistency -- CALLED
> >> <55555> pv_check_name -- CALLED with "/dev/sdb1"
> >> <666666> lvm_check_chars -- CALLED with name: "/dev/sdb1"
> >> <666666> lvm_check_chars -- LEAVING with ret: 0
> >> <666666> lvm_check_dev -- CALLED
> >> <7777777> lvm_check_partitioned_dev -- CALLED
> >> <88888888> lvm_get_device_type called
> >> <88888888> lvm_get_device_type leaving with 1
> >> <7777777> lvm_check_partitioned_dev -- LEAVING with ret: TRUE
> >> <666666> lvm_check_dev -- LEAVING with ret: 1
> >> <55555> pv_check_name -- LEAVING with ret: 0
> >> <55555> vg_check_name -- CALLED with VG: sapqvg
> >> <666666> lvm_check_chars -- CALLED with name: "sapqvg"
> >> <666666> lvm_check_chars -- LEAVING with ret: 0
> >> <55555> vg_check_name -- LEAVING with ret: 0
> >> <55555> lvm_check_dev -- CALLED
> >> <666666> lvm_check_partitioned_dev -- CALLED
> >> <7777777> lvm_get_device_type called
> >> <7777777> lvm_get_device_type leaving with 1
> >> <666666> lvm_check_partitioned_dev -- LEAVING with ret: TRUE
> >> <55555> lvm_check_dev -- LEAVING with ret: 1
> >> <55555> pv_check_new -- CALLED
> >> <55555> pv_check_new -- LEAVING with ret: 0
> >> <4444> pv_check_consistency -- LEAVING with ret: 0
> >> <4444> pv_read_uuidlist -- CALLED with /dev/sdb1
> >> <4444> lvm_check_uuid -- LEAVING with ret: 0
> >> <333> lvm_check_uuid -- LEAVING with ret: 0
> >> <22> lvm_check_uuid -- LEAVING with ret: -1
> >> <1> lvm_check_uuid -- LEAVING with ret: -1
> >> <> lvm_check_uuid -- LEAVING with ret: -1
> >>  ... (repeats 250 times) ...
> >> <> lvm_check_uuid -- LEAVING with ret: -1
> >> <> pv_read_uuidlist -- LEAVING with ret: 2
> >> Segmentation fault
> >> 
> >> lblsapq00:~ # gdb ./LVM/1.0.7/tools/vgscan
> >> GNU gdb 5.0
> >> Copyright 2000 Free Software Foundation, Inc.
> >> GDB is free software, covered by the GNU General Public License, and you are
> >> welcome to change it and/or distribute copies of it under certain conditions.
> >> Type "show copying" to see the conditions.
> >> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> >> This GDB was configured as "i386-suse-linux"...
> >> (gdb) run
> >> Starting program: /root/./LVM/1.0.7/tools/vgscan
> >> vgscan -- reading all physical volumes (this may take a while...)
> >> 
> >> Program received signal SIGSEGV, Segmentation fault.
> >> 0x400c97a3 in strncmp () from /lib/libc.so.6
> >> (gdb) bt
> >> #0  0x400c97a3 in strncmp () from /lib/libc.so.6
> >> #1  0x400337f0 in pv_read_all_pv_of_vg (vg_name=0x804dc34 "sapqvg", pv=
> >> 0xbfffe948, reread=1)
> >>     at pv_read_all_pv_of_vg.c:148
> >> #2  0x40038ac1 in vg_check_exist (vg_name=0x804dc34 "sapqvg") at 
> >> vg_check_exist.c:59
> >> #3  0x40038da2 in vg_check_exist_all_vg () at vg_check_exist.c:128
> >> #4  0x8049351 in main (argc=1, argv=0xbfffeb64) at vgscan.c:188
> >> #5  0x4006cc5f in __libc_start_main () from /lib/libc.so.6
> >> (gdb) quit
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> --
> >>   Markus Baertschi             Phone: ++41 (21) 807 1677
> >>   Bas du Rossé 14b             Fax  : ++41 (21) 807 1678
> >>   CH-1163, Etoy                Email: markus at markus.org
> >>   Switzerland                  Homepage: www.markus.org
> >> 
> >> 
> >> 
> >> _______________________________________________
> >> linux-lvm mailing list
> >> linux-lvm at sistina.com
> >> http://lists.sistina.com/mailman/listinfo/linux-lvm
> >> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 
> >linux-lvm mailing list
> >linux-lvm at sistina.com
> >http://lists.sistina.com/mailman/listinfo/linux-lvm
> >read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 
> 
> --
>   Markus Baertschi             Phone: ++41 (21) 807 1677
>   Bas du Rossé 14b             Fax  : ++41 (21) 807 1678
>   CH-1163, Etoy                Email: markus at markus.org
>   Switzerland                  Homepage: www.markus.org
> 
> 
> 
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at sistina.com
> http://lists.sistina.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

*** Software bugs are stupid.
    Nevertheless it needs not so stupid people to solve them ***

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Heinz Mauelshagen                                 Sistina Software Inc.
Senior Consultant/Developer                       Am Sonnenhang 11
                                                  56242 Marienrachdorf
                                                  Germany
Mauelshagen at Sistina.com                           +49 2626 141200
                                                       FAX 924446
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-




More information about the linux-lvm mailing list