Bug #2114

Updated by raitech about 10 years ago


 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). 



 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: 
 The data for partition 3 is: 
 The data for partition 4 is: 
 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 
 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_modify_volume(cc2e3a30,c1cadf30,c5b88094,4,cc2e3860) at  
 hammer_ioc_volume_add(cc2e3a30,c9dd44e0,c97ca258,c1d9f950,c1d9f954) at  
 hammer_ioctl(c9dd44e0,c4306811,c97ca258,1,c7d91ba8) at hammer_ioctl+0xf41 
 hammer_vop_ioctl(cc2e3a98,c0725d48,c1d80e00,cc1c7498,cc2e3ae8) at  
 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 
 Stopped at     Debugger+0x3f: movb     $0,in_Debugger.4431