Public bug reported: Running Gutsy / 2.6.22-14-386
Using a PCI SATA controller card with a Silicon Image sil3114 chipset and the sata_sil module, attempting to use the xfs filesystem on a SATA drive attached to it results in an xfs crash and filesystem corruption whenever a write is attempted. lspci for controller: 00:0b.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02) Subsystem: Silicon Image, Inc. SiI 3114 SATALink Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at b400 [size=8] Region 1: I/O ports at b000 [size=4] Region 2: I/O ports at a800 [size=8] Region 3: I/O ports at a400 [size=4] Region 4: I/O ports at a000 [size=16] Region 5: Memory at f8800000 (32-bit, non-prefetchable) [size=1K] [virtual] Expansion ROM at 30000000 [disabled] [size=512K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=2 PME- Steps to reproduce: - partition SATA drive - create xfs filesystem(s) - mount filesystem(s) - attempt to 'touch somefile.txt' result: touch: cannot touch `somefile.txt': Structure needs cleaning At this point xfs filesystem is corrupted dmesg after touch command: [ 3031.072000] Filesystem "md3": XFS internal error xfs_btree_check_sblock at line 334 of file /build/buildd/linux-source-2.6.22-2.6.22/fs/xfs/xfs_btree.c. Caller 0xe0a788e9 [ 3031.116000] [<e0a6631b>] xfs_btree_check_sblock+0x5b/0xd0 [xfs] [ 3031.116000] [<e0a788e9>] xfs_inobt_lookup+0x1c9/0x450 [xfs] [ 3031.116000] [<e0a788e9>] xfs_inobt_lookup+0x1c9/0x450 [xfs] [ 3031.116000] [<e0aa09a8>] kmem_zone_zalloc+0x28/0x60 [xfs] [ 3031.116000] [<e0a778af>] xfs_dialloc+0x5cf/0x990 [xfs] [ 3031.116000] [<c02e06cc>] do_page_fault+0x37c/0x690 [ 3031.116000] [<e0a7fdf1>] xfs_ialloc+0x61/0x550 [xfs] [ 3031.116000] [<e0a95fc5>] xfs_dir_ialloc+0x85/0x2d0 [xfs] [ 3031.116000] [<e0a93534>] xfs_trans_reserve+0xa4/0x220 [xfs] [ 3031.116000] [<e0a9c8f8>] xfs_create+0x398/0x6a0 [xfs] [ 3031.116000] [<e0aa81c6>] xfs_vn_mknod+0x236/0x350 [xfs] [ 3031.120000] [<c0172138>] vfs_create+0x108/0x150 [ 3031.120000] [<c0175338>] open_namei+0x588/0x5e0 [ 3031.120000] [<c0168ff3>] do_filp_open+0x33/0x60 [ 3031.120000] [<c016906e>] do_sys_open+0x4e/0xf0 [ 3031.120000] [<c0168c67>] filp_close+0x47/0x80 [ 3031.120000] [<c016914c>] sys_open+0x1c/0x20 [ 3031.120000] [<c0103f62>] sysenter_past_esp+0x6b/0xa9 [ 3031.120000] [<c02d0000>] km_report+0x40/0x80 [ 3031.120000] ======================= After the error, if I unmount the filesystem and run xfs_repair on it, I get output like this: xfs_repair /dev/sda2 - creating 2 worker thread(s) Phase 1 - find and verify superblock... - reporting progress in intervals of 15 minutes Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... ir_freecount/free mismatch, inode chunk 0/128, freecount 60 nfree 56 - 05:26:40: scanning filesystem freespace - 8 of 8 allocation groups done - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - 05:26:40: scanning agi unlinked lists - 8 of 8 allocation groups done - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 imap claims a free inode 186 is in use, correcting imap and clearing inode cleared inode 186 imap claims a free inode 188 is in use, correcting imap and clearing inode cleared inode 188 imap claims a free inode 189 is in use, correcting imap and clearing inode cleared inode 189 imap claims a free inode 190 is in use, correcting imap and clearing inode cleared inode 190 - 05:26:40: process known inodes and inode discovery - 64 of 64 inodes done - process newly discovered inodes... - 05:26:40: process newly discovered inodes - 8 of 8 allocation groups done Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - clear lost+found (if it exists) ... - clearing existing "lost+found" inode - deleting existing "lost+found" entry - 05:26:40: setting up duplicate extent list - 8 of 8 allocation groups done - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 - 05:26:40: check for inodes claiming duplicate blocks - 64 of 64 inodes done Phase 5 - rebuild AG headers and trees... - 05:26:40: rebuild AG headers and trees - 8 of 8 allocation groups done - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - ensuring existence of lost+found directory - traversing filesystem starting at / ... - 05:26:40: traversing filesystem - 8 of 8 allocation groups done - traversal finished ... - traversing all unattached subtrees ... - traversals finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... - 05:26:40: verify and correct link counts - 64 of 64 inodes done done I have ruled out problems with the hard drive or controller by doing the following: -created ext3 and jfs partitions on same drive, wrote and verified data to those partitions, mounted and unmounted without problems, and the data remained intact. -put SATA disk in external USB enclosure and created and mounted xfs partitions, created and deleted files without any errors. I have upgraded the BIOS on the controller card to the most recent version, but this had no effect. I originally had this problem on Feisty (i386) and so I upgraded to Gutsy to see if that fixed it, but the problem is exactly the same. ** Affects: ubuntu Importance: Undecided Status: New -- filesystem corruption on xfs using sata_sil (sil3114) https://bugs.launchpad.net/bugs/156612 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs