xfs
[Top] [All Lists]

Running xfs_repair fails with malloc error

To: linux-xfs@xxxxxxxxxxx
Subject: Running xfs_repair fails with malloc error
From: "Al D. Baran" <alde@xxxxxxxx>
Date: Mon, 29 Apr 2002 13:46:57 -0500 (CDT)
Sender: owner-linux-xfs@xxxxxxxxxxx
Greetings,

I'm running debian 3.0 beta with 2.4.18 kernel, running CVS downloaded
kernel source.

I have a disk /dev/hda:

Disk /dev/hda: 255 heads, 63 sectors, 3736 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
   /dev/hda1   *         1       102    819283+  83  Linux
   /dev/hda2           103       168    530145   82  Linux swap
   /dev/hda3           169       806   5124735   83  Linux
   /dev/hda4           807      3736  23535225   83  Linux


and its entries in fstab:

/dev/hda1       /               ext2    defaults,errors=remount-ro
/dev/hda2       none            swap    sw
/dev/hda3       /usr    ext2    defaults
/dev/hda4       /foo    xfs     logbufs=8,logbsize=32768,rw

When running xfs_repair on /dev/hda4:

Phase 5 - rebuild AG headers and trees...
        - 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 / ...

fatal error -- malloc failed in longform_dir2_entry_check (1073741836 bytes)
# xfs_repair -V
xfs_repair version 2.0.4

xfs_check reports:

# xfs_check /dev/hda4
dir 21834061 block 0 entry /hristinaAngel bad inode number -72057594037927937
dir 21834061 block 8388608 extra leaf entry f784139b 9e
dir ino 21834061 missing leaf entry for 97841398/9e
link count mismatch for inode 21834061 (name ?), nlink 181, counted 180
disconnected inode 47456175, nlink 1

This is on a partition with appx 500k files and
/dev/hda4             23530424  18565344   4965080  79% /foo

I have an strace output if that is helpful... here are the last few
lines:

6
_llseek(4, 17684439040, [17684439040], SEEK_SET) = 0
read(4, "IN\201\264\1\2\0\1\0\0\1\364\0\0\1\364\0\0\0\1\0\0\0\0"..., 8192) = 
8192
old_mmap(NULL, 1073745920, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 
0) = -1 ENOMEM (Cannot allocate memory)
brk(0x484f4000)                         = 0x84f3000
old_mmap(NULL, 2097152, PROT_NONE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x40232000
munmap(0x40232000, 843776)              = 0
munmap(0x40400000, 204800)              = 0
old_mmap(0x40300000, 32768, 
PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40300000
old_mmap(NULL, 1073745920, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 
) = -1 ENOMEM (Cannot allocate memory)
old_mmap(NULL, 1073745920, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 
) = -1 ENOMEM (Cannot allocate memory)
write(2, "\nfatal error -- ", 16)       = 16
write(2, "malloc failed in longform_dir2_e"..., 62) = 62
_exit(1)                                = ?


--Pete

---
"Look, would it save you all this bother if I just gave up and went mad, Now?"
"Imagination is more important than knowledge." --Einstein


<Prev in Thread] Current Thread [Next in Thread>