Bug #2114
Updated by liweitianux over 5 years ago
Hello, I have troubles trying to add a volume to my HAMMER root filesystem on a fresh install (DragonFly 2.10.1 i386, on an AMD Athlon 2000+ with 512 MB RAM). Maybe I'm doing something wrong, but if so I don't see what. I created a new partition table on the hard drive (ad2) with a DF slice (ad2s1), and a hammer partition on it (ad2s1d). Then I just run hammer volume-add /dev/ad2s1d /, and it panics. If I add the volume to /boot/loader.conf and /etc/fstab, after a reboot I can see it in hammer volume-list, but hammer info gives exactly the same results as with only the first volume. hammer volume-del fails (device busy), but I can safely remove the new volume from loader.conf and fstab (I also tried without running volume-del, same thing). It is fully reproducible, with this hard drive and with another one (and if I remember well, I had the same problem when I played with HAMMER in a KVM virtual machine some times ago). The session log below shows how I reproduced the problem (with the same first drive). It seems that something was initialised, because I had to erase the beginning of the partition to re-add the volume. Please tell me if I made a mistake somewhere, and if not what I can do to help solving the bug. I attached the crash info and core files (I can provide the full core dump if needed). Cheers, Matteo 16:38 root@vicious ~# fdisk ad2 ******* Working on device /dev/ad2 ******* parameters extracted from device are: cylinders=24696 heads=256 sectors/track=63 (16128 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=24696 heads=256 sectors/track=63 (16128 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165,(DragonFly/FreeBSD/NetBSD/386BSD) start 63, size 398297025 (194480 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 255/ sector 63 The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: <UNUSED> 16:39 root@vicious ~# disklabel ad2s1 # /dev/ad2s1: # # Informational fields calculated from the above # All byte equivalent offsets must be aligned # # boot space: 1044992 bytes # data space: 199147483 blocks # 194479.96 MB (203927023104 bytes) # # NOTE: If the partition data base looks odd it may be # physically aligned instead of slice-aligned # diskid: 076febcf-c669-11e0-bb09-01138f237da1 label: boot2 data base: 0x000000001000 partitions data base: 0x000000100200 partitions data stop: 0x002f7b0f7000 backup label: 0x002f7b0f7000 total size: 0x002f7b0f8200 # 194480.97 MB alignment: 4096 display block size: 1024 # for partition display only 16 partitions: # size offset fstype fsuuid d: 199147480 0 HAMMER # 194479.961MB d-stor_uuid: 5191beaf-c67a-11e0-9d47-01138f237da1 16:40 root@vicious ~# hammer volume-add /dev/ad2s1d / hammer volume-add ioctl: Inappropriate file type or format 16:41 root@vicious ~# dd if=/dev/zero of=/dev/ad2s1d bs=1M count=1 1+0 records in 1+0 records out 1048576 bytes transferred in 0.037720 secs (27798965 bytes/sec) 16:42 root@vicious ~# hammer volume-add /dev/ad2s1d / An error occurred: 79 panic: hammer_io_set_modlist: duplicate entry Trace beginning at frame 0xcc2e37a0 panic(ffffffff,c07acd60,c06bfbbc,cc2e37d0,c1cadf30) at panic+0x101 panic(c06bfbbc,c1cadf30,0,c1cadf38,c9d69670) at panic+0x101 hammer_io_modify(cc2e3880,cc2e3814,c0533fbe,c1cadf38,1) at hammer_io_modify+0x186 hammer_modify_volume(cc2e3a30,c1cadf30,c5b88094,4,cc2e3860) at hammer_modify_volume+0x4a hammer_ioc_volume_add(cc2e3a30,c9dd44e0,c97ca258,c1d9f950,c1d9f954) at hammer_ioc_volume_add+0x49a hammer_ioctl(c9dd44e0,c4306811,c97ca258,1,c7d91ba8) at hammer_ioctl+0xf41 hammer_vop_ioctl(cc2e3a98,c0725d48,c1d80e00,cc1c7498,cc2e3ae8) at hammer_vop_ioctl+0x5e vop_ioctl(c1d80e00,c1db8538,c4306811,c97ca258,1) at vop_ioctl+0x75 vn_ioctl(c7dcf1e8,c4306811,c97ca258,c7d91ba8,cc2e3cf0) at vn_ioctl+0x106 fo_ioctl(c7d91ba8,cc2e3cf0,430,c7dc0000,c7dc0000) at fo_ioctl+0x3c mapped_ioctl(3,c4306811,bfbff280,0,cc2e3cf0) at mapped_ioctl+0x4ae sys_ioctl(cc2e3cf0,cc2e3d00,c,c9743158,cc2e3cf0) at sys_ioctl+0x2e syscall2(cc2e3d40) at syscall2+0x232 Xint0x80_syscall() at Xint0x80_syscall+0x36 Debugger("panic") Stopped at Debugger+0x3f: movb $0,in_Debugger.4431