xfs
[Top] [All Lists]

Re: rsync and corrupt inodes (was xfs_dump problem)

To: xfs@xxxxxxxxxxx
Subject: Re: rsync and corrupt inodes (was xfs_dump problem)
From: Michael Monnerie <michael.monnerie@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 Jul 2010 16:17:21 +0200
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
In-reply-to: <20100715225713.GK30737@dastard>
Organization: it-management http://it-management.at
References: <201007152258.15631@xxxxxx> <20100715225713.GK30737@dastard>
User-agent: KMail/1.12.4 (Linux/2.6.34.1-zmi; KDE/4.3.5; x86_64; ; )
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: signature.asc
Description: This is a digitally signed message part.

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