public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* rsync and corrupt inodes (was xfs_dump problem)
  2010-06-30 18:25     ` Michael Monnerie
@ 2010-06-30 23:30       ` Dave Chinner
  2010-07-01  8:25         ` Michael Monnerie
  2010-07-07 21:56         ` Linda Walsh
  0 siblings, 2 replies; 11+ messages in thread
From: Dave Chinner @ 2010-06-30 23:30 UTC (permalink / raw)
  To: Michael Monnerie; +Cc: xfs

On Wed, Jun 30, 2010 at 08:25:20PM +0200, Michael Monnerie wrote:
> On Mittwoch, 30. Juni 2010 Linda Walsh wrote:
> > But have another XFS problem that is much more reliably persistent.
> > I don't know if they are at all related, but since I have this
> >  problem that's a bit "stuck", it's easier to "reproduce".
>  
> I think my problem is similar. I have a Linux ("orion") running Samba. 
> A Win7 client uses it to store it's "Windows Backup". That's OK.
> 
> From another Linux ("saturn"), I do an rsync via an rsync-module, 
> and have already 4 Versions where the ".vhd" file of that Windows Backup 
> is destroyed on "saturn". So the corruption happens when starting 
> rsync @saturn, copying orion->saturn, both having XFS.

Are you running rsync locally on saturn (i.e. pulling data)? If so,
can you get an strace of the rsync of that file so we can see what
the order or operations being done on the file is. If you are
pushing data to saturn, does the problem go away if you pull it (and
vice versa)?

> As I cannot delete the broken files, I moved the whole dir away, 
> and did an rsync again. The same file destroyed again on saturn.
> Some days later, again 2 versions which are destroyed.
> 
> The difference to Linda is, I get:
> drwx------+ 2 zmi  users     4096 Jun 12 03:15 ./
> drwxr-xr-x  7 root root       154 Jun 30 04:00 ../
> -rwx------+ 1 zmi  users 56640000 Jun 12 03:05 852c268f-cf1a-11de-b09b-806e6f6e6963.vhd*
> ??????????? ? ?    ?            ?            ? 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd 

On the source machine, can you get a list of the xattrs on the
inode?

> and on dmesg:
> [125903.343714] Filesystem "dm-0": corrupt inode 649642 ((a)extents = 5).  Unmount and run xfs_repair.
> [125903.343735] ffff88011e34ca00: 49 4e 81 c0 02 02 00 00 00 00 03 e8 00 00 00 64  IN.............d
> [125903.343756] Filesystem "dm-0": XFS internal error xfs_iformat_extents(1) at line 558 of file /usr/src/packages/BUILD/kernel-desktop-2.6.31.12/linux-2.6.31/fs/xfs/xfs_inode.c.  Caller 0xffffffffa032c0ad

That seems like a different problem to what linda is seeing
because this is on-disk corruption. can you dump the bad inode via:

# xfs_db -x -r -c "inode 649642" -c p <dev>

> [125903.343791] Pid: 17696, comm: ls Not tainted 2.6.31.12-0.2-desktop #1

That's getting a bit old now.

This kernel does not have any of the swap extent guards we added to
avoid fsr corrupting inodes with attribute forks, and the above
corruption report and the repair output look exactly like I saw when
intentionally corrupting inodes with xfs_fsr.

> Trying to "xfs_repair -n" seems to find errors, see attachment "repair1.log"

Hmmmm - do you run xfs_fsr? The errors reported and the corrutpion
above are exactly what I'd expect from the swap extent bugs we fixed
a while back....

> Trying to "xfs_repair" crashes, see attachment "repair2.log"
> 
> Saturns kernel is 2.6.31.12-0.2-desktop from openSUSE 11.2, 
> xfs_repair is 3.1.2 (I tried down several versions down to 3.0.1, all without success).
> 
> Even after xfs_metadump and xfs_mdrestore the error exists, and cannot be 
> repaired with xfs_repair, because that crashes.
> 
> I've put a new metadump containing only the broken stuff for public review:
> http://zmi.at/saturn_bigdata.metadump.only_broken.bz2 (197 MB)

I'll take a look.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-06-30 23:30       ` rsync and corrupt inodes (was xfs_dump problem) Dave Chinner
@ 2010-07-01  8:25         ` Michael Monnerie
  2010-07-02  2:42           ` Dave Chinner
  2010-07-07 21:56         ` Linda Walsh
  1 sibling, 1 reply; 11+ messages in thread
From: Michael Monnerie @ 2010-07-01  8:25 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1: Type: Text/Plain, Size: 48931 bytes --]

On Donnerstag, 1. Juli 2010 Dave Chinner wrote:
> > From another Linux ("saturn"), I do an rsync via an rsync-module,
> > and have already 4 Versions where the ".vhd" file of that Windows
> > Backup is destroyed on "saturn". So the corruption happens when
> > starting rsync @saturn, copying orion->saturn, both having XFS.
> 
> Are you running rsync locally on saturn (i.e. pulling data)? If so,
> can you get an strace of the rsync of that file so we can see what
> the order or operations being done on the file is. If you are
> pushing data to saturn, does the problem go away if you pull it (and
> vice versa)?

Oh dear, I made a mistake. It's a push @orion, doing
rsync -aPvHAXy / saturn::orionbackup/

The problem is: I cannot 100% replicate it. I found the problem once, 
moved the dir with the broken file away and synced again. Again broken. 
Then I reported here. Meanwhile, Windows has done a new backup, that 
file doesn't seem to get broken. But with another fresh Windows backup, 
it came again. I don't know if it depends on the file, it happened 4 
times until now.

I rsynced today 3 times, twice with the openSUSE kernel and once with 
2.6.34, no problem. Sorry (or maybe "lucky me"?).

> > 852c268f-cf1a-11de-b09b-806e6f6e6963.vhd* ??????????? ? ?    ?     
> >       ?            ? 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
> 
> On the source machine, can you get a list of the xattrs on the
> inode?

How would I do that? "getfattr" on that file gives no return, does that 
mean it doesn't have anything to say? I never do that things, so there 
shouldn't be any attributes set.
 
> > and on dmesg:
> > [125903.343714] Filesystem "dm-0": corrupt inode 649642 ((a)extents
> > = 5).  Unmount and run xfs_repair. [125903.343735]
> > ffff88011e34ca00: 49 4e 81 c0 02 02 00 00 00 00 03 e8 00 00 00 64 
> > IN.............d [125903.343756] Filesystem "dm-0": XFS internal
> > error xfs_iformat_extents(1) at line 558 of file
> > /usr/src/packages/BUILD/kernel-desktop-2.6.31.12/linux-2.6.31/fs/xf
> >s/xfs_inode.c.  Caller 0xffffffffa032c0ad
> 
> That seems like a different problem to what linda is seeing
> because this is on-disk corruption. can you dump the bad inode via:
> 
> # xfs_db -x -r -c "inode 649642" -c p <dev>

Uh, that's a long output.

# xfs_db -x -r -c "inode 649642" -c p /dev/swraid0/backup 
core.magic = 0x494e                                                                                                         
core.mode = 0100700                                                                                                         
core.version = 2                                                                                                            
core.format = 2 (extents)                                                                                                   
core.nlinkv2 = 1                                                                                                            
core.onlink = 0                                                                                                             
core.projid = 0                                                                                                             
core.uid = 1000                                                                                                             
core.gid = 100                                                                                                              
core.flushiter = 4                                                                                                          
core.atime.sec = Mon Jun 14 10:53:41 2010                                                                                   
core.atime.nsec = 000000000                                                                                                 
core.mtime.sec = Sat Jun 12 03:15:57 2010                                                                                   
core.mtime.nsec = 000000000                                                                                                 
core.ctime.sec = Mon Jun 14 10:53:41 2010                                                                                   
core.ctime.nsec = 180152802                                                                                                 
core.size = 36569189376                                                                                                     
core.nblocks = 8928025                                                                                                      
core.extsize = 0                                                                                                            
core.nextents = 5                                                                                                           
core.naextents = 0                                                                                                          
core.forkoff = 9                                                                                                            
core.aformat = 1 (local)                                                                                                    
core.dmevmask = 0                                                                                                           
core.dmstate = 0                                                                                                            
core.newrtbm = 0                                                                                                            
core.prealloc = 0                                                                                                           
core.realtime = 0                                                                                                           
core.immutable = 0                                                                                                          
core.append = 0                                                                                                             
core.sync = 0                                                                                                               
core.noatime = 0                                                                                                            
core.nodump = 0                                                                                                             
core.rtinherit = 0                                                                                                          
core.projinherit = 0                                                                                                        
core.nosymlinks = 0                                                                                                         
core.extsz = 0                                                                                                              
core.extszinherit = 0                                                                                                       
core.nodefrag = 0                                                                                                           
core.filestream = 0                                                                                                         
core.gen = 112968465                                                                                                        
next_unlinked = null                                                                                                        
u.bmx[0-4] = [startoff,startblock,blockcount,extentflag] 0:
[0,549849376,2097151,0] 1:[2097151,551946527,2097151,0] 2:
[4194302,554043678,2097151,0] 3:[6291453,556140829,2097151,0] 4:
[8388604,558237980,539421,0]
a.sfattr.hdr.totsize = 4                                                                                                                                                                                         
a.sfattr.hdr.count = 40                                                                                                                                                                                          
a.sfattr.list[0].namelen = 35                                                                                                                                                                                    
a.sfattr.list[0].valuelen = 136                                                                                                                                                                                  
a.sfattr.list[0].root = 1                                                                                                                                                                                        
a.sfattr.list[0].secure = 0                                                                                                                                                                                      
a.sfattr.list[0].name = 
"\035GI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004"                                                                              
a.sfattr.list[0].value = 
"\346\000\a\000\000\000\000\000\004\377\377\377\377\000\006\000\000\000\000\000\020\377\377\377\377\000\000\000\000\000\000\000 
\377\377\377\377\000\000\000\000\000IN\201\377\002\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025\000\000\000\000L\022\337\316\000\000\000\000L\025\356\025\024\'\314\214\000\000\000\000\000\000\004\242\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273"                                                                                                                                                                    
a.sfattr.list[1].namelen = 195                                                                                                                                                                                                              
a.sfattr.list[1].valuelen = 12                                                                                                                                                                                                              
a.sfattr.list[1].root = 1                                                                                                                                                                                                                   
a.sfattr.list[1].secure = 1                                                                                                                                                                                                                 
a.sfattr.list[1].name = 
"\377\377\377\000\000\000\000\000\000\000\000\000\006\000\000\373\340\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000S\001\000\f@\002SGI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004\346\000\a\000\000\000\000\000\004\377\377\377\377\000\a\000\000\000\000\000\020\377\377\377\377\000\a\000\000\000\000\000 
\377\377\377\377\000\a\000\000\000IN\201\377\002\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025"                                                                                                                                                                                                               
a.sfattr.list[1].value = "\000\000\000\000L\022\337\316\000\000\000\000"                                                                                                                                                                    
a.sfattr.list[2].namelen = 76                                                                                                                                                                                                               
a.sfattr.list[2].valuelen = 21                                                                                                                                                                                                              
a.sfattr.list[2].root = 1                                                                                                                                                                                                                   
a.sfattr.list[2].secure = 1                                                                                                                                                                                                                 
a.sfattr.list[2].name = 
"\025\024\'\314\214\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273\303\f\377\377\377\377\000\000\000\000\000\000\000\000\000\a\000\000u@\000\001\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                                                               
a.sfattr.list[2].value = 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                             
a.sfattr.list[3].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[3].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[3].root = 0                                                                                                                                                                                                                   
a.sfattr.list[3].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[4].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[4].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[4].root = 0                                                                                                                                                                                                                   
a.sfattr.list[4].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[5].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[5].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[5].root = 0                                                                                                                                                                                                                   
a.sfattr.list[5].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[6].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[6].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[6].root = 0                                                                                                                                                                                                                   
a.sfattr.list[6].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[7].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[7].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[7].root = 0                                                                                                                                                                                                                   
a.sfattr.list[7].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[8].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[8].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[8].root = 0                                                                                                                                                                                                                   
a.sfattr.list[8].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[9].namelen = 0                                                                                                                                                                                                                
a.sfattr.list[9].valuelen = 0                                                                                                                                                                                                               
a.sfattr.list[9].root = 0                                                                                                                                                                                                                   
a.sfattr.list[9].secure = 0                                                                                                                                                                                                                 
a.sfattr.list[10].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[10].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[10].root = 0                                                                                                                                                                                                                  
a.sfattr.list[10].secure = 0                                                                                                                                                                                                                
a.sfattr.list[11].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[11].valuelen = 83                                                                                                                                                                                                             
a.sfattr.list[11].root = 0                                                                                                                                                                                                                  
a.sfattr.list[11].secure = 0                                                                                                                                                                                                                
a.sfattr.list[11].value = 
"\000\f@\002SGI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004\346\000\a\000\000\000\000\000\004\377\377\377\377\000\a\000\000\000\000\000\020\377\377\377\377\000\a\000\000\000\000\000 
\377\377\377\377\000\a\000\000\000IN"                                                                                                                                                                            
a.sfattr.list[12].namelen = 129                                                                                                                                                                                                             
a.sfattr.list[12].valuelen = 255                                                                                                                                                                                                            
a.sfattr.list[12].root = 1                                                                                                                                                                                                                  
a.sfattr.list[12].secure = 0                                                                                                                                                                                                                
a.sfattr.list[12].name = 
"\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025\000\000\000\000L\022\337\316\000\000\000\000L\025\356\025\0247\017{\000\000\000\000\000\000$2\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273\303\f\377\377\377\377\000\000\000\000\000\000\000\000\000\001\003\350y\240\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                                                                                                    
a.sfattr.list[12].value = 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000S\001\000\f@\002SGI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004\346\000\a\000\000\000\000\000\004\377\377\377\377\000\a\000\000\000\000\000\020\377\377\377\377\000\a\000\000\000\000\000 
\377\377\377\377\000\a\000\000\000IN\201\377\002\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025\000\000\000\000L\022\337\316\000\000\000\000L\025\356\025\024FR\242\000\000\000\000\000\000\031\216\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273\303\f\377\377\377\377\000\000\000\000\000\000\000\000\000\002\003;
\365\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                                                                                                                            
a.sfattr.list[13].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[13].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[13].root = 0                                                                                                                                                                                                                  
a.sfattr.list[13].secure = 0                                                                                                                                                                                                                
a.sfattr.list[14].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[14].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[14].root = 0                                                                                                                                                                                                                  
a.sfattr.list[14].secure = 0                                                                                                                                                                                                                
a.sfattr.list[15].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[15].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[15].root = 0                                                                                                                                                                                                                  
a.sfattr.list[15].secure = 0                                                                                                                                                                                                                
a.sfattr.list[16].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[16].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[16].root = 0                                                                                                                                                                                                                  
a.sfattr.list[16].secure = 0                                                                                                                                                                                                                
a.sfattr.list[17].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[17].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[17].root = 0                                                                                                                                                                                                                  
a.sfattr.list[17].secure = 0                                                                                                                                                                                                                
a.sfattr.list[18].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[18].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[18].root = 0                                                                                                                                                                                                                  
a.sfattr.list[18].secure = 0                                                                                                                                                                                                                
a.sfattr.list[19].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[19].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[19].root = 0                                                                                                                                                                                                                  
a.sfattr.list[19].secure = 0                                                                                                                                                                                                                
a.sfattr.list[20].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[20].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[20].root = 0                                                                                                                                                                                                                  
a.sfattr.list[20].secure = 0                                                                                                                                                                                                                
a.sfattr.list[21].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[21].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[21].root = 0                                                                                                                                                                                                                  
a.sfattr.list[21].secure = 0                                                                                                                                                                                                                
a.sfattr.list[22].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[22].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[22].root = 0                                                                                                                                                                                                                  
a.sfattr.list[22].secure = 0                                                                                                                                                                                                                
a.sfattr.list[23].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[23].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[23].root = 0                                                                                                                                                                                                                  
a.sfattr.list[23].secure = 0                                                                                                                                                                                                                
a.sfattr.list[24].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[24].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[24].root = 0                                                                                                                                                                                                                  
a.sfattr.list[24].secure = 0                                                                                                                                                                                                                
a.sfattr.list[25].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[25].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[25].root = 0                                                                                                                                                                                                                  
a.sfattr.list[25].secure = 0                                                                                                                                                                                                                
a.sfattr.list[26].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[26].valuelen = 83                                                                                                                                                                                                             
a.sfattr.list[26].root = 0                                                                                                                                                                                                                  
a.sfattr.list[26].secure = 0                                                                                                                                                                                                                
a.sfattr.list[26].value = 
"\000\f@\002SGI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004\346\000\a\000\000\000\000\000\004\377\377\377\377\000\a\000\000\000\000\000\020\377\377\377\377\000\a\000\000\000\000\000 
\377\377\377\377\000\a\000\000\000IN"                                                                                                                                                                            
a.sfattr.list[27].namelen = 129                                                                                                                                                                                                             
a.sfattr.list[27].valuelen = 255                                                                                                                                                                                                            
a.sfattr.list[27].root = 1                                                                                                                                                                                                                  
a.sfattr.list[27].secure = 0                                                                                                                                                                                                                
a.sfattr.list[27].name = 
"\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025\000\000\000\000L\022\337\315\000\000\000\000L\025\356\025\024FR\242\000\000\000\000\000\000\021\234\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273\303\f\377\377\377\377\000\000\000\000\000\000\000\000\000\003\003P5\200\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                                                                                                 
a.sfattr.list[27].value = 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000S\001\000\f@\002SGI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004\346\000\a\000\000\000\000\000\004\377\377\377\377\000\a\000\000\000\000\000\020\377\377\377\377\000\a\000\000\000\000\000 
\377\377\377\377\000\a\000\000\000\000\000\000\000\000\000\000\000\361\017\000\000\000\000\000\000\020\360s\001\000\000\000\000\310t\251I\300\177\000\000\020\360s\001\000\000\000\000\2000t\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"                                                                                                                                                                                                               
a.sfattr.list[28].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[28].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[28].root = 0                                                                                                                                                                                                                  
a.sfattr.list[28].secure = 0                                                                                                                                                                                                                
a.sfattr.list[29].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[29].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[29].root = 0                                                                                                                                                                                                                  
a.sfattr.list[29].secure = 0                                                                                                                                                                                                                
a.sfattr.list[30].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[30].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[30].root = 0                                                                                                                                                                                                                  
a.sfattr.list[30].secure = 0                                                                                                                                                                                                                
a.sfattr.list[31].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[31].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[31].root = 0                                                                                                                                                                                                                  
a.sfattr.list[31].secure = 0                                                                                                                                                                                                                
a.sfattr.list[32].namelen = 0                                                                                                                                                                                                               
a.sfattr.list[32].valuelen = 0                                                                                                                                                                                                              
a.sfattr.list[32].root = 0                                                                                                                                                                                                                  
a.sfattr.list[32].secure = 0
a.sfattr.list[33].namelen = 0
a.sfattr.list[33].valuelen = 0
a.sfattr.list[33].root = 0
a.sfattr.list[33].secure = 0
a.sfattr.list[34].namelen = 0
a.sfattr.list[34].valuelen = 0
a.sfattr.list[34].root = 0
a.sfattr.list[34].secure = 0
a.sfattr.list[35].namelen = 0
a.sfattr.list[35].valuelen = 0
a.sfattr.list[35].root = 0
a.sfattr.list[35].secure = 0
a.sfattr.list[36].namelen = 0
a.sfattr.list[36].valuelen = 0
a.sfattr.list[36].root = 0
a.sfattr.list[36].secure = 0
a.sfattr.list[37].namelen = 0
a.sfattr.list[37].valuelen = 0
a.sfattr.list[37].root = 0
a.sfattr.list[37].secure = 0
a.sfattr.list[38].namelen = 0
a.sfattr.list[38].valuelen = 0
a.sfattr.list[38].root = 0
a.sfattr.list[38].secure = 0
a.sfattr.list[39].namelen = 0
a.sfattr.list[39].valuelen = 0
a.sfattr.list[39].root = 0
a.sfattr.list[39].secure = 0
 
> > [125903.343791] Pid: 17696, comm: ls Not tainted
> > 2.6.31.12-0.2-desktop #1
> 
> That's getting a bit old now.

It's the most actual for openSUSE 11.2, which is the actual release. 
Well, 11.3 should land on July 15...

> This kernel does not have any of the swap extent guards we added to
> avoid fsr corrupting inodes with attribute forks, and the above
> corruption report and the repair output look exactly like I saw when
> intentionally corrupting inodes with xfs_fsr.
>
> Hmmmm - do you run xfs_fsr? The errors reported and the corrutpion
> above are exactly what I'd expect from the swap extent bugs we fixed
> a while back....

Yes, xfs_fsdr was running. Disabled it now, and compiled and changed to 
kernel 2.6.34 now. Hope that's OK ;-)
 
> I'll take a look.

Thank you!

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-01  8:25         ` Michael Monnerie
@ 2010-07-02  2:42           ` Dave Chinner
  2010-07-02  6:21             ` Michael Monnerie
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Chinner @ 2010-07-02  2:42 UTC (permalink / raw)
  To: Michael Monnerie; +Cc: xfs

On Thu, Jul 01, 2010 at 10:25:03AM +0200, Michael Monnerie wrote:
> On Donnerstag, 1. Juli 2010 Dave Chinner wrote:
> > > From another Linux ("saturn"), I do an rsync via an rsync-module,
> > > and have already 4 Versions where the ".vhd" file of that Windows
> > > Backup is destroyed on "saturn". So the corruption happens when
> > > starting rsync @saturn, copying orion->saturn, both having XFS.
> > 
> > Are you running rsync locally on saturn (i.e. pulling data)? If so,
> > can you get an strace of the rsync of that file so we can see what
> > the order or operations being done on the file is. If you are
> > pushing data to saturn, does the problem go away if you pull it (and
> > vice versa)?
> 
> Oh dear, I made a mistake. It's a push @orion, doing
> rsync -aPvHAXy / saturn::orionbackup/
> 
> The problem is: I cannot 100% replicate it. I found the problem once, 
> moved the dir with the broken file away and synced again. Again broken. 
> Then I reported here. Meanwhile, Windows has done a new backup, that 
> file doesn't seem to get broken. But with another fresh Windows backup, 
> it came again. I don't know if it depends on the file, it happened 4 
> times until now.

So it's the rsync daemon on saturn that is doing all the IO?

> I rsynced today 3 times, twice with the openSUSE kernel and once with 
> 2.6.34, no problem. Sorry (or maybe "lucky me"?).
> 
> > > 852c268f-cf1a-11de-b09b-806e6f6e6963.vhd* ??????????? ? ?    ?     
> > >       ?            ? 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
> > 
> > On the source machine, can you get a list of the xattrs on the
> > inode?
>
> How would I do that? "getfattr" on that file gives no return, does that 
> mean it doesn't have anything to say? I never do that things, so there 
> shouldn't be any attributes set.

"getfattr -d"

> > > and on dmesg:
> > > [125903.343714] Filesystem "dm-0": corrupt inode 649642 ((a)extents
> > > = 5).  Unmount and run xfs_repair. [125903.343735]
> > > ffff88011e34ca00: 49 4e 81 c0 02 02 00 00 00 00 03 e8 00 00 00 64 
> > > IN.............d [125903.343756] Filesystem "dm-0": XFS internal
> > > error xfs_iformat_extents(1) at line 558 of file
> > > /usr/src/packages/BUILD/kernel-desktop-2.6.31.12/linux-2.6.31/fs/xf
> > >s/xfs_inode.c.  Caller 0xffffffffa032c0ad
> > 
> > That seems like a different problem to what linda is seeing
> > because this is on-disk corruption. can you dump the bad inode via:
> > 
> > # xfs_db -x -r -c "inode 649642" -c p <dev>
> 
> Uh, that's a long output.
> 
> # xfs_db -x -r -c "inode 649642" -c p /dev/swraid0/backup 
.....
> u.bmx[0-4] = [startoff,startblock,blockcount,extentflag] 0:
> [0,549849376,2097151,0] 1:[2097151,551946527,2097151,0] 2:
> [4194302,554043678,2097151,0] 3:[6291453,556140829,2097151,0] 4:
> [8388604,558237980,539421,0]
> a.sfattr.hdr.totsize = 4
> a.sfattr.hdr.count = 40
> a.sfattr.list[0].namelen = 35
> a.sfattr.list[0].valuelen = 136
> a.sfattr.list[0].root = 1
> a.sfattr.list[0].secure = 0
> a.sfattr.list[0].name =
> "\035GI_ACL_FILE\000\000\000\005\000\000\000\001\377\377\377\377\000\a\000\000\000\000\000\002\000\000\004"
> a.sfattr.list[0].value = 
> "\346\000\a\000\000\000\000\000\004\377\377\377\377\000\006\000\000\000\000\000\020\377\377\377\377\000\000\000\000\000\000\000
> \377\377\377\377\000\000\000\000\000IN\201\377\002\002\000\000\000\000\003\350\000\000\000d\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\002L\025\356\025\000\000\000\000L\022\337\316\000\000\000\000L\025\356\025\024\'\314\214\000\000\000\000\000\000\004\242\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\c\001\000\000\000\000\000\000\000\000\006\273"

>From the metadump, I can see that other valid .vhd files are in
local format with:

core.forkoff = 9
a.sfattr.hdr.totsize = 83
a.sfattr.hdr.count = 1
a.sfattr.list[0].namelen = 12
a.sfattr.list[0].valuelen = 64
a.sfattr.list[0].root = 1
a.sfattr.list[0].secure = 0
a.sfattr.list[0].name = "SGI_ACL_FILE"
a.sfattr.list[0].value = <snipped>


All the broken inodes are in the same format as the valid .vhd files,
but the shortform attribute header is completely toast. Once I correct the
header and the lengths, the only thing that looks wrong is:

xfs_db> p a.sfattr.list[0].name
a.sfattr.list[0].name = "\035GI_ACL_FILE"

The first character of the name is bad, everything after that -
including the attribute value - is identical to that on other
inodes.  What this implies is that we've overwritten the start of
the attribute fork with something, and that looks exactly like the
swap extents problems that we've fixed recently....

> > Hmmmm - do you run xfs_fsr? The errors reported and the corrutpion
> > above are exactly what I'd expect from the swap extent bugs we fixed
> > a while back....
> 
> Yes, xfs_fsdr was running. Disabled it now, and compiled and changed to 
> kernel 2.6.34 now. Hope that's OK ;-)

Ok, so we have identified a potential cause. Either disabling fsr or
upgrading to 2.6.34 should be sufficient to avoid the problem. If no
problem show up now you are on 2.6.34, then I'd switch fsr back on
and see if they show up again...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-02  2:42           ` Dave Chinner
@ 2010-07-02  6:21             ` Michael Monnerie
  2010-07-04 22:53               ` Dave Chinner
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Monnerie @ 2010-07-02  6:21 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1: Type: Text/Plain, Size: 2091 bytes --]

On Freitag, 2. Juli 2010 Dave Chinner wrote:
> So it's the rsync daemon on saturn that is doing all the IO?

Yes.
 
> > I rsynced today 3 times, twice with the openSUSE kernel and once
> > with 2.6.34, no problem. Sorry (or maybe "lucky me"?).
> >
> > > > 852c268f-cf1a-11de-b09b-806e6f6e6963.vhd* ??????????? ? ?    ?
> > > >       ?            ? 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
> > >
> > > On the source machine, can you get a list of the xattrs on the
> > > inode?
> >
> > How would I do that? "getfattr" on that file gives no return, does
> > that mean it doesn't have anything to say? I never do that things,
> > so there shouldn't be any attributes set.
> 
> "getfattr -d"

Sorry, doesn't work:

# getfattr -d 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
getfattr: 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd: Structure needs 
cleaning

> The first character of the name is bad, everything after that -
> including the attribute value - is identical to that on other
> inodes.  What this implies is that we've overwritten the start of
> the attribute fork with something, and that looks exactly like the
> swap extents problems that we've fixed recently....
> >
> > Yes, xfs_fsdr was running. Disabled it now, and compiled and
> > changed to kernel 2.6.34 now. Hope that's OK ;-)
> 
> Ok, so we have identified a potential cause. Either disabling fsr or
> upgrading to 2.6.34 should be sufficient to avoid the problem. If no
> problem show up now you are on 2.6.34, then I'd switch fsr back on
> and see if they show up again...

So far, so good. I'm on 2.6.34 now. Is there any chance for a fixed 
version of xfs_repair, so that I can either get rid of the 4 broken 
files (i.e. delete them), or repair the filesystem? ATM, xfs_repair 
asserts on this filesystem.

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-02  6:21             ` Michael Monnerie
@ 2010-07-04 22:53               ` Dave Chinner
  2010-07-12 11:28                 ` Michael Monnerie
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Chinner @ 2010-07-04 22:53 UTC (permalink / raw)
  To: Michael Monnerie; +Cc: xfs

On Fri, Jul 02, 2010 at 08:21:51AM +0200, Michael Monnerie wrote:
> On Freitag, 2. Juli 2010 Dave Chinner wrote:
> > So it's the rsync daemon on saturn that is doing all the IO?
> 
> Yes.
>  
> > > I rsynced today 3 times, twice with the openSUSE kernel and once
> > > with 2.6.34, no problem. Sorry (or maybe "lucky me"?).
> > >
> > > > > 852c268f-cf1a-11de-b09b-806e6f6e6963.vhd* ??????????? ? ?    ?
> > > > >       ?            ? 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
> > > >
> > > > On the source machine, can you get a list of the xattrs on the
> > > > inode?
> > >
> > > How would I do that? "getfattr" on that file gives no return, does
> > > that mean it doesn't have anything to say? I never do that things,
> > > so there shouldn't be any attributes set.
> > 
> > "getfattr -d"
> 
> Sorry, doesn't work:
> 
> # getfattr -d 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd
> getfattr: 852c2690-cf1a-11de-b09b-806e6f6e6963.vhd: Structure needs 
> cleaning

I meant run it on an uncorrupted version of the file, but I don't
think that information is needed now...

> > The first character of the name is bad, everything after that -
> > including the attribute value - is identical to that on other
> > inodes.  What this implies is that we've overwritten the start of
> > the attribute fork with something, and that looks exactly like the
> > swap extents problems that we've fixed recently....
> > >
> > > Yes, xfs_fsdr was running. Disabled it now, and compiled and
> > > changed to kernel 2.6.34 now. Hope that's OK ;-)
> > 
> > Ok, so we have identified a potential cause. Either disabling fsr or
> > upgrading to 2.6.34 should be sufficient to avoid the problem. If no
> > problem show up now you are on 2.6.34, then I'd switch fsr back on
> > and see if they show up again...
> 
> So far, so good. I'm on 2.6.34 now. Is there any chance for a fixed 
> version of xfs_repair, so that I can either get rid of the 4 broken 
> files (i.e. delete them), or repair the filesystem? ATM, xfs_repair 
> asserts on this filesystem.

What version of xfs_repair? v3.1.2 does not assert fail here on the
metadump image you posted, but it does take 3 runs to fix up all the
problems with the busted inodes....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-06-30 23:30       ` rsync and corrupt inodes (was xfs_dump problem) Dave Chinner
  2010-07-01  8:25         ` Michael Monnerie
@ 2010-07-07 21:56         ` Linda Walsh
  1 sibling, 0 replies; 11+ messages in thread
From: Linda Walsh @ 2010-07-07 21:56 UTC (permalink / raw)
  To: Dave Chinner; +Cc: Michael Monnerie, xfs@oss.sgi.com

Dave Chinner wrote:
> On Wed, Jun 30, 2010 at 08:25:20PM +0200, Michael Monnerie wrote:
>> From another Linux ("saturn"), I do an rsync via an rsync-module, 
...
> Are you running rsync locally on saturn
----

Data point:

I have two file systems with corruption -- one recent one had a WinXP
client (as well as a Win7, and linux host), dumping foreign names into
the file system (the Win clients through samba).

However, my "home partition" use to regularly be used to backup the
WinXP's home dir via  **rsync**.


Some of those files were _un_readable on WinXP (like ones containing copyright
symbols / registered trademark symbols, etc) -- but at the time, they
WERE readable on linux.  Now some of those same files are no longer
readable on linux.  Just thought I'd mention that on my 'home' partition,
the corruption is in files that were transfered with rsync.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-04 22:53               ` Dave Chinner
@ 2010-07-12 11:28                 ` Michael Monnerie
  0 siblings, 0 replies; 11+ messages in thread
From: Michael Monnerie @ 2010-07-12 11:28 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1.1: Type: Text/Plain, Size: 1452 bytes --]

Been on holidays, so I didn't answer till now...

On Montag, 5. Juli 2010 Dave Chinner wrote:
> > So far, so good. I'm on 2.6.34 now. Is there any chance for a fixed
> > version of xfs_repair, so that I can either get rid of the 4 broken
> > files (i.e. delete them), or repair the filesystem? ATM, xfs_repair
> > asserts on this filesystem.
> 
> What version of xfs_repair? v3.1.2 does not assert fail here on the
> metadump image you posted, but it does take 3 runs to fix up all the
> problems with the busted inodes....

Do you mean this one?
http://zmi.at/saturn_bigdata.metadump.only_broken.bz2 (197 MB)

I have xfs_repair 3.1.2, and made a shell script which 10x does 
xfs_repair that image, I attached the output here. Doesn't seem to 
repair anything, just crashing.

Maybe I did something wrong? I configured xfsprogs 3.1.2 with
CFLAGS=-march=athlon64-sse3 ./configure --prefix=/usr
and then 
make;make install

I recompiled the whole thing now with
# gcc --version
gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839]

and it's the same output as ever. Either you meant another metadump, or 
there is a problem somewhere I don't see.

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.1.2: repair.log --]
[-- Type: text/x-log, Size: 15828 bytes --]

xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
        - agno = 1
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 0
        - agno = 3
        - agno = 2
        - agno = 4
        - agno = 5
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 6
        - agno = 7
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
@ 2010-07-15 20:58 Michael Monnerie
  2010-07-15 22:57 ` Dave Chinner
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Monnerie @ 2010-07-15 20:58 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1.1: Type: text/plain, Size: 1409 bytes --]

Ping?

On Montag, 5. Juli 2010 Dave Chinner wrote:
> > So far, so good. I'm on 2.6.34 now. Is there any chance for a fixed
> > version of xfs_repair, so that I can either get rid of the 4 broken
> > files (i.e. delete them), or repair the filesystem? ATM, xfs_repair
> > asserts on this filesystem.
> 
> What version of xfs_repair? v3.1.2 does not assert fail here on the
> metadump image you posted, but it does take 3 runs to fix up all the
> problems with the busted inodes....

Do you mean this one?
http://zmi.at/saturn_bigdata.metadump.only_broken.bz2 (197 MB)

I have xfs_repair 3.1.2, and made a shell script which 10x does 
xfs_repair that image, I attached the output here. Doesn't seem to 
repair anything, just crashing.

Maybe I did something wrong? I configured xfsprogs 3.1.2 with
CFLAGS=-march=athlon64-sse3 ./configure --prefix=/usr
and then 
make;make install

I recompiled the whole thing now with
# gcc --version
gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839]

and it's the same output as ever. Either you meant another metadump, or 
there is a problem somewhere I don't see.

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.1.2: repair.log --]
[-- Type: text/x-log, Size: 15828 bytes --]

xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
        - agno = 1
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.
xfs_repair version 3.1.2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 0
        - agno = 3
        - agno = 2
        - agno = 4
        - agno = 5
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 6
        - agno = 7
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-15 20:58 rsync and corrupt inodes (was xfs_dump problem) Michael Monnerie
@ 2010-07-15 22:57 ` Dave Chinner
  2010-07-16 14:17   ` Michael Monnerie
  2010-07-16 14:40   ` Michael Monnerie
  0 siblings, 2 replies; 11+ messages in thread
From: Dave Chinner @ 2010-07-15 22:57 UTC (permalink / raw)
  To: Michael Monnerie; +Cc: xfs

On Thu, Jul 15, 2010 at 10:58:15PM +0200, Michael Monnerie wrote:
> Ping?
> 
> On Montag, 5. Juli 2010 Dave Chinner wrote:
> > > So far, so good. I'm on 2.6.34 now. Is there any chance for a fixed
> > > version of xfs_repair, so that I can either get rid of the 4 broken
> > > files (i.e. delete them), or repair the filesystem? ATM, xfs_repair
> > > asserts on this filesystem.
> > 
> > What version of xfs_repair? v3.1.2 does not assert fail here on the
> > metadump image you posted, but it does take 3 runs to fix up all the
> > problems with the busted inodes....
> 
> Do you mean this one?
> http://zmi.at/saturn_bigdata.metadump.only_broken.bz2 (197 MB)

Yes, that's the one.

> I have xfs_repair 3.1.2, and made a shell script which 10x does 
> xfs_repair that image, I attached the output here. Doesn't seem to 
> repair anything, just crashing.
> 
> Maybe I did something wrong? I configured xfsprogs 3.1.2 with
> CFLAGS=-march=athlon64-sse3 ./configure --prefix=/usr
> and then 
> make;make install

Drop the CFLAGS and see what happens when you just use a generic
arch target.

> I recompiled the whole thing now with
> # gcc --version
> gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839]

$ gcc --version
gcc (Debian 4.4.4-6) 4.4.4

> and it's the same output as ever. Either you meant another metadump, or 
> there is a problem somewhere I don't see.

It's the same metadump. The repair output is identical up to phase
4. Then I note that your first run processes AGs out of order and so
detects problems in a different order to when I run locally.

> Phase 4 - check for duplicate blocks...
>         - setting up duplicate extent list...
>         - check for inodes claiming duplicate blocks...
>         - agno = 0
>         - agno = 2
>         - agno = 1
>         - agno = 3
>         - agno = 4
>         - agno = 5
>         - agno = 6
>         - agno = 7
> data fork in inode 2195133988 claims metadata block 537122652
> xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' failed.

This is where things go out of order. In comparison:

Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
correcting nblocks for inode 649642, was 8928025 - counted 8388604
data fork in inode 649790 claims metadata block 537274140
bad attribute format 1 in inode 649790, resetting value
correcting nblocks for inode 649790, was 8928025 - counted 8388604
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
bad attribute format 1 in inode 2195133988, resetting value
correcting nblocks for inode 2195133988, was 8928025 - counted 8388604
data fork in inode 2902971474 claims metadata block 537036572
correcting nblocks for inode 2902971474, was 8928025 - counted 8388604
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
....

This is not consistent, though, so it seems there is some problem where
bad attribute format is not being detected and corrected properly
for inode 2195133988. I don't see why AG processing order would
affect this.

Regardless, can you run xfs_repair -P and see if that prevents the assert
failure?

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-15 22:57 ` Dave Chinner
@ 2010-07-16 14:17   ` Michael Monnerie
  2010-07-16 14:40   ` Michael Monnerie
  1 sibling, 0 replies; 11+ messages in thread
From: Michael Monnerie @ 2010-07-16 14:17 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1: Type: Text/Plain, Size: 21008 bytes --]

On Freitag, 16. Juli 2010 Dave Chinner wrote:
> > Maybe I did something wrong? I configured xfsprogs 3.1.2 with
> > CFLAGS=-march=athlon64-sse3 ./configure --prefix=/usr
> > and then
> > make;make install
> 
> Drop the CFLAGS and see what happens when you just use a generic
> arch target.

OK, I'll retry this.
 
> Regardless, can you run xfs_repair -P and see if that prevents the
>  assert failure?

I did this 10 times manually. It started good, but after a while repeats 
itself again:

# xfs_repair -P saturn_bigdata.only_broken                 
Phase 1 - find and verify superblock...                                
Phase 2 - using internal log                                           
        - zero log...                                                  
        - scan filesystem freespace and inode maps...                  
        - found root inode chunk                                       
Phase 3 - for each AG...                                               
        - scan and clear agi unlinked lists...                         
        - process known inodes and perform inode discovery...          
        - agno = 0
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.
Aborted

---------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken.log          
Phase 1 - find and verify superblock...                                             
Phase 2 - using internal log                                                        
        - zero log...                                                               
        - scan filesystem freespace and inode maps...                               
        - found root inode chunk                                                    
Phase 3 - for each AG...                                                            
        - scan and clear agi unlinked lists...                                      
        - process known inodes and perform inode discovery...                       
        - agno = 0                                                                  
corrected attribute entry count in inode 649642, was 40, now 0
problem with attribute contents in inode 649642
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 2
        - agno = 3
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken2.log         
Phase 1 - find and verify superblock...                                             
Phase 2 - using internal log                                                        
        - zero log...                                                               
        - scan filesystem freespace and inode maps...                               
        - found root inode chunk                                                    
Phase 3 - for each AG...                                                            
        - scan and clear agi unlinked lists...                                      
        - process known inodes and perform inode discovery...                       
        - agno = 0                                                                  
corrected attribute entry count in inode 649642, was 40, now 0                      
problem with attribute contents in inode 649642                                     
local inode 649790 attr too small (size = 1, min size = 4)
bad attribute fork in inode 649790, clearing attr fork
clearing inode 649790 attributes
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
data fork in inode 649642 claims metadata block 537266460
        - agno = 3
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.
        - agno = 4
        - agno = 5

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken3.log        
Phase 1 - find and verify superblock...                                            
Phase 2 - using internal log                                                       
        - zero log...                                                              
        - scan filesystem freespace and inode maps...                              
        - found root inode chunk                                                   
Phase 3 - for each AG...                                                           
        - scan and clear agi unlinked lists...                                     
        - process known inodes and perform inode discovery...                      
        - agno = 0                                                                 
corrected attribute entry count in inode 649642, was 40, now 0                     
problem with attribute contents in inode 649642                                    
local inode 649790 attr too small (size = 1, min size = 4)                         
bad attribute fork in inode 649790, clearing attr fork                             
clearing inode 649790 attributes                                                   
cleared inode 649790                                                               
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken4.log       
Phase 1 - find and verify superblock...                                           
Phase 2 - using internal log                                                      
        - zero log...                                                             
        - scan filesystem freespace and inode maps...                             
        - found root inode chunk                                                  
Phase 3 - for each AG...                                                          
        - scan and clear agi unlinked lists...                                    
        - process known inodes and perform inode discovery...                     
        - agno = 0                                                                
corrected attribute entry count in inode 649642, was 40, now 0                    
problem with attribute contents in inode 649642                                   
local inode 649790 attr too small (size = 1, min size = 4)                        
bad attribute fork in inode 649790, clearing attr fork                            
clearing inode 649790 attributes                                                  
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken5.log      
Phase 1 - find and verify superblock...                                          
Phase 2 - using internal log                                                     
        - zero log...                                                            
        - scan filesystem freespace and inode maps...                            
        - found root inode chunk                                                 
Phase 3 - for each AG...                                                         
        - scan and clear agi unlinked lists...                                   
        - process known inodes and perform inode discovery...                    
        - agno = 0                                                               
corrected attribute entry count in inode 649642, was 40, now 0                   
problem with attribute contents in inode 649642                                  
local inode 649790 attr too small (size = 1, min size = 4)                       
bad attribute fork in inode 649790, clearing attr fork                           
clearing inode 649790 attributes                                                 
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 0
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
data fork in inode 649642 claims metadata block 537266460
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken6.log     
Phase 1 - find and verify superblock...                                         
Phase 2 - using internal log                                                    
        - zero log...                                                           
        - scan filesystem freespace and inode maps...                           
        - found root inode chunk                                                
Phase 3 - for each AG...                                                        
        - scan and clear agi unlinked lists...                                  
        - process known inodes and perform inode discovery...                   
        - agno = 0                                                              
corrected attribute entry count in inode 649642, was 40, now 0                  
problem with attribute contents in inode 649642                                 
local inode 649790 attr too small (size = 1, min size = 4)                      
bad attribute fork in inode 649790, clearing attr fork                          
clearing inode 649790 attributes                                                
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 2
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 0
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.
-------------------------------------------------
The next run gave the same output, only the order of AG's was different:
# diff broken6.log broken7.log 
34,39c34                                   
<         - agno = 3                       
<         - agno = 4                       
<         - agno = 5                       
<         - agno = 6                       
<         - agno = 7                       
<         - agno = 2                       
---                                        
>         - agno = 0                       
42d36                                      
<         - agno = 0                       

-------------------------------------------------
# xfs_repair -P saturn_bigdata.only_broken 2>&1|tee broken8.log
Phase 1 - find and verify superblock...                                    
Phase 2 - using internal log                                               
        - zero log...                                                      
        - scan filesystem freespace and inode maps...                      
        - found root inode chunk                                           
Phase 3 - for each AG...                                                   
        - scan and clear agi unlinked lists...                             
        - process known inodes and perform inode discovery...              
        - agno = 0                                                         
corrected attribute entry count in inode 649642, was 40, now 0             
problem with attribute contents in inode 649642                            
local inode 649790 attr too small (size = 1, min size = 4)                 
bad attribute fork in inode 649790, clearing attr fork                     
clearing inode 649790 attributes                                           
cleared inode 649790
        - agno = 1
local inode 2195133988 attr too small (size = 3, min size = 4)
bad attribute fork in inode 2195133988, clearing attr fork
clearing inode 2195133988 attributes
cleared inode 2195133988
corrected attribute entry count in inode 2902971474, was 163, now 0
corrected attribute entry totsize in inode 2902971474, was 6, now 4
problem with attribute contents in inode 2902971474
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
data fork in inode 2195133988 claims metadata block 537122652
        - agno = 2
        - agno = 3
        - agno = 4
xfs_repair: dinode.c:2101: process_inode_data_fork: Assertion `err == 0' 
failed.
        - agno = 5
        - agno = 6
        - agno = 7

-------------------------------------------------
The next run gave the same output as "broken5.log", only the order of 
AG's was different:
# diff broken9.log broken5.log
34d33
<         - agno = 0
35a35,41
>         - agno = 0
>         - agno = 2
>         - agno = 3
>         - agno = 4
>         - agno = 5
>         - agno = 6
>         - agno = 7


I made another 20 runs, all the same.

And I retried with the "CFLAGS":
CFLAGS="-march=athlon64-sse3 -g -Os" ./configure --prefix=/usr

No matter what I use for CFLAGS, the resulting binary repair/xfs_repair 
is always the same. So it seems to be ignored during compile anyway. 
Smells like a bug? Because config.status gets the CFLAGS set, it's just 
not used during compile. Comparing a "config.status" with CFLAGS set and 
without:

# diff config.status config.status.default
360c360                                                                 
<   with options \"'--prefix=/usr' 'CFLAGS=-march=athlon64-sse3 -g -
Os'\"
---
>   with options \"\"
439c439
<   set X '/bin/sh' './configure'  '--prefix=/usr' 'CFLAGS=-
march=athlon64-sse3 -g -Os' $ac_configure_extra_args --no-create --no-
recursion
---
>   set X '/bin/sh' './configure'  $ac_configure_extra_args --no-create 
--no-recursion
488c488
< max_cmd_len='1572864'
---
> max_cmd_len='3458764513820540925'
507c507
< CFLAGS='-march=athlon64-sse3 -g -Os'
---
> CFLAGS='-g -O2'
591c591
< LTCFLAGS='-march=athlon64-sse3 -g -Os'
---
> LTCFLAGS='-g -O2'
717c717
< S["have_zipped_manpages"]="true"
---
> S["have_zipped_manpages"]="false"
835c835
< S["CFLAGS"]="-march=athlon64-sse3 -g -Os"
---
> S["CFLAGS"]="-g -O2"

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: rsync and corrupt inodes (was xfs_dump problem)
  2010-07-15 22:57 ` Dave Chinner
  2010-07-16 14:17   ` Michael Monnerie
@ 2010-07-16 14:40   ` Michael Monnerie
  1 sibling, 0 replies; 11+ messages in thread
From: Michael Monnerie @ 2010-07-16 14:40 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1: Type: Text/Plain, Size: 1174 bytes --]

On Freitag, 16. Juli 2010 Dave Chinner wrote:
> > CFLAGS=-march=athlon64-sse3 ./configure --prefix=/usr

> Drop the CFLAGS and see what happens when you just use a generic
> arch target.

I investigated this a bit more, and I'm sure that CFLAGS get completely 
ignored. I even set all variables with "GCC" in config.status to random 
content, and it compiles. Then I found that the one in include/builddefs 
gets always set to this:
GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall

So I changed it manually:
GCCFLAGS = -march=athlon64-sse3 -g -Os -funsigned-char -fno-strict-
aliasing -Wall
and now the resulting binary is different. I guess that should not be 
happening? I'm used to setting "CFLAGS=" during configure to have 
smaller bins, and CFLAGS normally get passed through during compile, but 
not with xfsprogs. Not that it's very important, but maybe worth a fix?

-- 
mit freundlichen Grüssen,
Michael Monnerie, Ing. BSc

it-management Internet Services
http://proteger.at [gesprochen: Prot-e-schee]
Tel: 0660 / 415 65 31

// Wir haben im Moment zwei Häuser zu verkaufen:
// http://zmi.at/langegg/
// http://zmi.at/haus2009/

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-07-16 14:37 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-15 20:58 rsync and corrupt inodes (was xfs_dump problem) Michael Monnerie
2010-07-15 22:57 ` Dave Chinner
2010-07-16 14:17   ` Michael Monnerie
2010-07-16 14:40   ` Michael Monnerie
  -- strict thread matches above, loose matches on Subject: below --
2010-06-27  1:10 WARNING xfsdump [still] Cannot allocate memory for list of [root|non-root] attributes for nondir ino xxyz Linda A. Walsh
2010-06-28  2:27 ` Dave Chinner
2010-06-29 22:33   ` xfs file system in process of becoming corrupt; though xfs_repair thinks it's fine! ; -/ (was xfs_dump problem...) Linda Walsh
2010-06-30 18:25     ` Michael Monnerie
2010-06-30 23:30       ` rsync and corrupt inodes (was xfs_dump problem) Dave Chinner
2010-07-01  8:25         ` Michael Monnerie
2010-07-02  2:42           ` Dave Chinner
2010-07-02  6:21             ` Michael Monnerie
2010-07-04 22:53               ` Dave Chinner
2010-07-12 11:28                 ` Michael Monnerie
2010-07-07 21:56         ` Linda Walsh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox