[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