[linux-lvm] kernel oops when creating snapshots with names >= 17 characters

Jonathan E Brassow jbrassow at redhat.com
Fri Nov 3 20:47:40 UTC 2006


I think this looks similar to some older bugs that have been fixed...

Have you tried updating your kernel/packages ?

  brassow

On Nov 3, 2006, at 12:43 PM, Rob Ostrander wrote:

> Running RHEL4 U4 EM64T, kernel 2.6.9-5.ELsmp, on a Dell PowerEdge 2950.
> lvm2-2.02.06-6.0.RHEL4
> device-mapper-1.02.07-4.0.RHEL4
>
> When I attempt to run lvcreate with a name containing 17 or more 
> characters (resulting in 35 characters for volume name) I get the 
> following error:
> Nov  3 11:34:50 localhost kernel:  <1>Unable to handle kernel NULL 
> pointer dereference at 0000000000000050 RIP:
> Nov  3 11:34:50 localhost kernel: <ffffffff801dcabd>{rb_first+10}
> Nov  3 11:34:50 localhost kernel: PML4 c0572067 PGD 10b474067 PMD 0
> Nov  3 11:34:50 localhost kernel: Oops: 0000 [12] SMP
> Nov  3 11:34:50 localhost kernel: CPU 2
> Nov  3 11:34:50 localhost kernel: Modules linked in: parport_pc lp 
> parport autofs4 i2c_dev i2c_core sunrpc ds yenta_socket pcmcia_core 
> button battery ac sr_mod(U) usb_storage joydev uhci_hcd ehci_hcd 
> hw_random shpchp bnx2(U) dm_snapshot dm_zero dm_mirror ext3 jbd(U) 
> dm_mod megaraid_sas(U) sd_mod scsi_mod
> Nov  3 11:34:50 localhost kernel: Pid: 27398, comm: lvcreate Not 
> tainted 2.6.9-5.ELsmp
> Nov  3 11:34:50 localhost kernel: RIP: 0010:[<ffffffff801dcabd>] 
> <ffffffff801dcabd>{rb_first+10}
> Nov  3 11:34:50 localhost kernel: RSP: 0018:00000100c7ea7ea0  EFLAGS: 
> 00010202
> Nov  3 11:34:50 localhost kernel: RAX: 0000000000000038 RBX: 
> 0000010169d12ce8 RCX: 00000100cff47c00
> Nov  3 11:34:50 localhost kernel: RDX: 0000000000000000 RSI: 
> 000000000000006c RDI: 0000010169d12ce0
> Nov  3 11:34:50 localhost kernel: RBP: 000001021924e000 R08: 
> 0000000000000022 R09: 0000000000000000
> Nov  3 11:34:50 localhost kernel: R10: 0000000000000000 R11: 
> ffffffff801700f4 R12: 0000010169d12ce0
> Nov  3 11:34:50 localhost kernel: R13: 000000000069d824 R14: 
> 0000010169d12da0 R15: 0000007fbfffb480
> Nov  3 11:34:50 localhost kernel: FS:  0000002a9557a540(0000) 
> GS:ffffffff804bf400(0000) knlGS:0000000000000000
> Nov  3 11:34:50 localhost kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 
> 000000008005003b
> Nov  3 11:34:50 localhost kernel: CR2: 0000000000000050 CR3: 
> 000000000e3ce000 CR4: 00000000000006e0
> Nov  3 11:34:50 localhost kernel: Process lvcreate (pid: 27398, 
> threadinfo 00000100c7ea6000, task 0000010203d557f0)
> Nov  3 11:34:50 localhost kernel: Stack: ffffffff8016d534 
> 0000010169d12cb8 000001021924e000 000001011a2a5cb8
> Nov  3 11:34:50 localhost kernel:        ffffffff80170105 
> 0000000000000000 ffffffff8018105f 000001022fb53b88
> Nov  3 11:34:50 localhost kernel:        0000010037e58200 
> 00000012f04487fc
> Nov  3 11:34:50 localhost kernel: Call 
> Trace:<ffffffff8016d534>{mpol_free_shared_policy+53} 
> <ffffffff80170105>{shmem_destroy_inode+17}
> Nov  3 11:34:50 localhost kernel:        
> <ffffffff8018105f>{sys_unlink+261} <ffffffff8010ffd2>{system_call+126}
> Nov  3 11:34:50 localhost kernel:
> Nov  3 11:34:50 localhost kernel:
> Nov  3 11:34:50 localhost kernel: Code: 48 83 78 18 00 74 06 48 8b 40 
> 18 eb f3 48 89 c2 48 89 d0 c3
> Nov  3 11:34:50 localhost kernel: RIP <ffffffff801dcabd>{rb_first+10} 
> RSP <00000100c7ea7ea0>
> Nov  3 11:34:50 localhost kernel: CR2: 0000000000000050
>
> I can reliably reproduce the issue with the following:
> [root at wcmc10 ~]# cat lvtest.sh
> x="1";
> while [ 1 ]; do
> snap_name=${snap_name}$x;
> length=`echo /dev/VolGroup01/$snap_name |wc -c`;
> echo "creating /dev/VolGroup01/$snap_name with $length characters";
> lvcreate -L2g -s -n ${snap_name}  /dev/VolGroup01/db;
> sleep 1;
> echo "removing /dev/VolGroup01/$snap_name";
> lvremove -f /dev/VolGroup01/${snap_name};
> sleep 1;
> inc=`expr $x + 1`;
> x=`expr $inc % 10`;
> done
>
> Running the above I get the following results:
> [root at wcmc10 ~]# ./lvtest.sh
> creating /dev/VolGroup01/1 with 18 characters
>  Logical volume "1" created
> removing /dev/VolGroup01/1
>  Logical volume "1" successfully removed
> creating /dev/VolGroup01/12 with 19 characters
>  Logical volume "12" created
> removing /dev/VolGroup01/12
>  Logical volume "12" successfully removed
> creating /dev/VolGroup01/123 with 20 characters
>  Logical volume "123" created
> removing /dev/VolGroup01/123
>  Logical volume "123" successfully removed
> creating /dev/VolGroup01/1234 with 21 characters
>  Logical volume "1234" created
> removing /dev/VolGroup01/1234
>  Logical volume "1234" successfully removed
> creating /dev/VolGroup01/12345 with 22 characters
>  Logical volume "12345" created
> removing /dev/VolGroup01/12345
>  Logical volume "12345" successfully removed
> creating /dev/VolGroup01/123456 with 23 characters
>  Logical volume "123456" created
> removing /dev/VolGroup01/123456
>  Logical volume "123456" successfully removed
> creating /dev/VolGroup01/1234567 with 24 characters
>  Logical volume "1234567" created
> removing /dev/VolGroup01/1234567
>  Logical volume "1234567" successfully removed
> creating /dev/VolGroup01/12345678 with 25 characters
>  Logical volume "12345678" created
> removing /dev/VolGroup01/12345678
>  Logical volume "12345678" successfully removed
> creating /dev/VolGroup01/123456789 with 26 characters
>  Logical volume "123456789" created
> removing /dev/VolGroup01/123456789
>  Logical volume "123456789" successfully removed
> creating /dev/VolGroup01/1234567890 with 27 characters
>  Logical volume "1234567890" created
> removing /dev/VolGroup01/1234567890
>  Logical volume "1234567890" successfully removed
> creating /dev/VolGroup01/12345678901 with 28 characters
>  Logical volume "12345678901" created
> removing /dev/VolGroup01/12345678901
>  Logical volume "12345678901" successfully removed
> creating /dev/VolGroup01/123456789012 with 29 characters
>  Logical volume "123456789012" created
> removing /dev/VolGroup01/123456789012
>  Logical volume "123456789012" successfully removed
> creating /dev/VolGroup01/1234567890123 with 30 characters
>  Logical volume "1234567890123" created
> removing /dev/VolGroup01/1234567890123
>  Logical volume "1234567890123" successfully removed
> creating /dev/VolGroup01/12345678901234 with 31 characters
>  Logical volume "12345678901234" created
> removing /dev/VolGroup01/12345678901234
>  Logical volume "12345678901234" successfully removed
> creating /dev/VolGroup01/123456789012345 with 32 characters
>  Logical volume "123456789012345" created
> removing /dev/VolGroup01/123456789012345
>  Logical volume "123456789012345" successfully removed
> creating /dev/VolGroup01/1234567890123456 with 33 characters
>  Logical volume "1234567890123456" created
> removing /dev/VolGroup01/1234567890123456
>  Logical volume "1234567890123456" successfully removed
> creating /dev/VolGroup01/12345678901234567 with 34 characters
>  Logical volume "12345678901234567" created
> removing /dev/VolGroup01/12345678901234567
>  Logical volume "12345678901234567" successfully removed
> creating /dev/VolGroup01/123456789012345678 with 35 characters
> ./lvtest.sh: line 13: 29111 Killed                  lvcreate -L2g -s 
> -n ${snap_name} /dev/VolGroup01/db
>
> Message from syslogd at localhost at Fri Nov  3 11:53:27 2006 ...
> localhost kernel: Oops: 0000 [13] SMP
>
> Message from syslogd at localhost at Fri Nov  3 11:53:27 2006 ...
> localhost kernel: CR2: 0000000000000050
> removing /dev/VolGroup01/123456789012345678
>  Logical volume "123456789012345678" successfully removed
>
>
>
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
>




More information about the linux-lvm mailing list