Bug 1194704

Summary: tests fail on big endians
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: dan, davejohansen, esandeen, jakub, josef, kzak, law, mtoman, oliver, pbrobinson, pschindl, than
Target Milestone: ---   
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: gcc-5.0.0-0.17.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 18:22:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765, 1071880, 1043123    

Description Dan Horák 2015-02-20 15:10:32 UTC
tests from e2fsprogs-1.42.12-2.fc22 fails on s390(x) and ppc64 when the package is built with gcc 5, and they pass when gcc 4.9.2-5 is used

from build.log
...
make[1]: Entering directory '/builddir/build/BUILD/e2fsprogs-1.42.12/tests'
Running e2fsprogs test suite...
 
/usr/bin/cp ./mke2fs.conf.in mke2fs.conf
Creating test_one script...
f_dup_resize: blocks claimed by the resize inode and another inode: ok
f_preen: preen shouldn't destroy backup superblocks: ok
f_orphan: clearing orphan inodes: ok
f_extents2: multiply claimed blocks in extents and other illegal extents: failed
--- f_extents2/expect.1	2011-01-14 18:07:50.000000000 +0000
+++ f_extents2.1.log	2015-02-20 08:01:07.117925312 +0000
@@ -46,12 +46,19 @@
 	/ext2fs.h (inode #15, mod time Mon Jun  2 07:22:57 2008)
 Clone multiply-claimed blocks? yes
 
+Error while iterating over blocks in inode 14 (clone_file): Corrupt extent header
+Couldn't clone file: Corrupt extent header
+Delete file? yes
+
+Error while iterating over blocks in inode 14 (delete_file): Corrupt extent header
 File /ext2fs.h (inode #15, mod time Mon Jun  2 07:22:57 2008) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/inode.c (inode #14, mod time Mon Jun  2 05:28:16 2008)
 Multiply-claimed blocks already reassigned or cloned.
 
 Pass 2: Checking directory structure
+Entry 'inode.c' in / (2) has deleted/unused inode 14.  Clear? yes
+
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
@@ -66,5 +73,5 @@
 
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 18/32 files (22.2% non-contiguous), 145/200 blocks
+test_filesys: 17/32 files (23.5% non-contiguous), 145/200 blocks
 Exit status is 1
--- f_extents2/expect.2	2011-01-14 18:07:50.000000000 +0000
+++ f_extents2.2.log	2015-02-20 08:01:07.127925312 +0000
@@ -1,7 +1,24 @@
 Pass 1: Checking inodes, blocks, and sizes
+Inode 13 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 13, i_blocks is 28, should be 26.  Fix? yes
+
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-test_filesys: 18/32 files (22.2% non-contiguous), 145/200 blocks
-Exit status is 0
+Block bitmap differences:  -(23--25) -35 -79 -(81--84) -(86--90) -(92--100)
+Fix? yes
+
+Free blocks count wrong for group #0 (55, counted=78).
+Fix? yes
+
+Free blocks count wrong (55, counted=78).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 17/32 files (17.6% non-contiguous), 122/200 blocks
+Exit status is 1
f_bbfile: bad blocks in files: ok
f_uninit_last_uninit: last group has BLOCK_UNINIT set: ok
f_full_bg: inode table in last block of first bg: ok
m_bigjournal: journal over 4GB in size: failed
m_dasd_bs: 2048 byte sector devices: ok
f_lpf2: create lost+found and reconnect lost directory: ok
f_ext_journal: test external journal device: ok
f_overfsblks: overlapping inode and block bitmaps: ok
r_inline_xattr: shrinking filesystem with in-inode extended attributes: ok
f_hurd: GNU/Hurd specific tests: ok
ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found
r_meta_bg_shrink: meta_bg shrink: ok
f_zero_xattr: zero length extended attribute in in-inode xattr: ok
f_dup: blocks claimed by two different files: ok
debugfs 1.42.12 (29-Aug-2014)
f_badcluster: test alignment problems with bigalloc clusters: failed
f_uninit_ext_past_eof: fallocated extents after i_size: ok
f_extents: basic extents support: ok
f_badprimary: bad blocks in the primary superblock and group descriptors: ok
f_dupdot: duplicate '.' and '..' entries: ok
f_clear_xattr: clearing i_file_acl when !ext_attr feature: ok
f_h_badroot: bad htree root nodes: ok
m_mkfs_overhead: test bg overhead calculation: ok
f_bad_disconnected_inode: Disconnected inode with bad fields: ok
f_badjour_indblks: corruption in journal inode's indirect blocks: ok
f_badsymlinks: corrupted symlinks: ok
f_bitmaps: corrupted inode and block bitmaps: ok
f_illbbitmap: illegal block bitmap: ok
f_holedir3: real directories with holes and zero i_size: failed
--- f_holedir3/expect.1	2014-08-02 20:26:22.000000000 +0000
+++ f_holedir3.1.log	2015-02-20 08:01:09.217925312 +0000
@@ -1,13 +1,10 @@
 Pass 1: Checking inodes, blocks, and sizes
 Directory inode 12 block 5 should be at block 2.  Fix? yes
 
-Inode 12, i_size is 6144, should be 3072.  Fix? yes
+Error storing directory block information (inode=12, block=5, num=0): Extent not found
 
-Pass 2: Checking directory structure
-Pass 3: Checking directory connectivity
-Pass 4: Checking reference counts
-Pass 5: Checking group summary information
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+e2fsck: aborted
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 17/128 files (5.9% non-contiguous), 1093/2048 blocks
-Exit status is 1
+Exit status is 9
--- f_holedir3/expect.2	2014-08-02 20:26:22.000000000 +0000
+++ f_holedir3.2.log	2015-02-20 08:01:09.237925312 +0000
@@ -1,7 +1,45 @@
 Pass 1: Checking inodes, blocks, and sizes
+Inode 12 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 12, i_size is 6144, should be 2048.  Fix? yes
+
+Inode 12, i_blocks is 6, should be 4.  Fix? yes
+
 Pass 2: Checking directory structure
+Problem in HTREE directory inode 12 (/dir): bad block number 2.
+Clear HTree index? yes
+
 Pass 3: Checking directory connectivity
+Pass 3A: Optimizing directories
 Pass 4: Checking reference counts
+Unattached inode 15
+Connect to /lost+found? yes
+
+Inode 15 ref count is 2, should be 1.  Fix? yes
+
+Unattached inode 16
+Connect to /lost+found? yes
+
+Inode 16 ref count is 2, should be 1.  Fix? yes
+
+Unattached inode 17
+Connect to /lost+found? yes
+
+Inode 17 ref count is 2, should be 1.  Fix? yes
+
 Pass 5: Checking group summary information
-test_filesys: 17/128 files (5.9% non-contiguous), 1093/2048 blocks
-Exit status is 0
+Block bitmap differences:  -1092
+Fix? yes
+
+Free blocks count wrong for group #0 (956, counted=957).
+Fix? yes
+
+Free blocks count wrong (956, counted=957).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 17/128 files (5.9% non-contiguous), 1091/2048 blocks
+Exit status is 1
f_imagic_fs: imagic filesystem with imagic inodes: ok
f_messy_inode: bad file and directory acl pointers: ok
f_orphan_extents_inode: truncating an orphaned extent-mapped inode: failed
--- f_orphan_extents_inode/expect.1	2014-06-25 19:19:40.000000000 +0000
+++ f_orphan_extents_inode.1.log	2015-02-20 08:01:09.397925312 +0000
@@ -1,9 +1,25 @@
 Truncating orphaned inode 12 (uid=0, gid=0, mode=0100644, size=0)
+release_inode_blocks: Corrupt extent header while calling ext2fs_block_iterate for inode 12
 Pass 1: Checking inodes, blocks, and sizes
+Inode 12 has an invalid extent
+	(logical block 0, invalid physical block 0, len 0)
+Clear? yes
+
+Inode 12, i_blocks is 64, should be 0.  Fix? yes
+
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
+Block bitmap differences:  -18 -(20--34) -37 -(40--52)
+Fix? yes
+
+Free blocks count wrong for group #0 (49, counted=79).
+Fix? yes
+
+Free blocks count wrong (49, counted=79).
+Fix? yes
+
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
 test_filesys: 12/16 files (0.0% non-contiguous), 21/100 blocks
f_dup4: find all directory pathnames: ok
f_invalid_extent_symlink: extent-mapped symlink with two blocks: ok
f_salvage_dir: salvage corrupted directories: ok
f_h_badnode: hash directory with bad HTREE nodes: ok
f_baddir2: salvage last directory entry: ok
ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found
r_ext4_small_bg: ext4 1024 blocksize with small block groups: failed
i_e2image: create/convert raw/qcow2 images: ok
m_no_opt: no filesystem extensions: ok
t_quota_1on: enable quota using tune2fs: ok
d_special_files: create special files in debugfs: ok
f_badinode: corrupted inode entries: ok
f_ext_zero_len: extent with zero length: ok
f_invalid_bad_inode: check for bogus bad inode: ok
f_big_sparse: big sparse file: ok
f_desc_size_bad: bad superblock s_desc_size: failed
f_dup_de2: duplicate directory entries for non-indexed dirs: ok
f_lotsbad: too many illegal blocks in inode: ok
ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found
r_ext4_big_expand: very large fs growth using ext4: failed
m_quota: enable quota feature on mkfs: ok
t_ext_jnl_rm: remove missing external journal device: ok
f_hugedir_blocks: crash e2fsck with a dir with an impossibly high logical blk offset: ok
f_extra_journal: Valid journal inode, but has_journal feature not present: ok
m_large_file: largefile fs type: ok
r_min_itable: resize2fs -M with inode table in middle of last block group: ok
e_icount_normal: inode counting structure optimized for low counts: ok
f_badroot: file in root directory inode: ok
m_64bit_flexbg: mkfs with 64bit and flex_bg: failed
f_imagic: non-imagic filesystem with imagic inodes: ok
f_illitable_flexbg: illegal inode table with FLEX_BG: ok
f_desc_size_128: 128-byte group descriptors: ok
f_dirlink: directory hard links: ok
f_journal: recover journal from corrupted inode table: ok
e_brel_bma: block relocation table using the memory array implementation: skipped
f_resize_inode: e2fsck with resize_inode: ok
r_resize_inode: filesystem resize with a resize_inode present: ok
ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found
r_64bit_big_expand: very large fs growth using ext4 w/64bit: failed
u_mke2fs: e2undo with mke2fs: ok
f_jnl_64bit: on-disk 64-bit journal format: ok
f_holedir2: directories with holes and zero i_size: failed
--- f_holedir2/expect.1	2014-08-02 20:26:22.000000000 +0000
+++ f_holedir2.1.log	2015-02-20 08:01:15.437925312 +0000
@@ -8,15 +8,16 @@
 
 Pass 3: Checking directory connectivity
 Pass 3A: Optimizing directories
+Failed to optimize directory ??? (13): EXT2 directory corrupted
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-Free blocks count wrong for group #0 (78, counted=77).
+Free blocks count wrong for group #0 (75, counted=74).
 Fix? yes
 
-Free blocks count wrong (78, counted=77).
+Free blocks count wrong (75, counted=74).
 Fix? yes
 
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 13/16 files (7.7% non-contiguous), 23/100 blocks
+test_filesys: 13/16 files (7.7% non-contiguous), 26/100 blocks
 Exit status is 1
--- f_holedir2/expect.2	2011-01-14 18:07:50.000000000 +0000
+++ f_holedir2.2.log	2015-02-20 08:01:15.447925312 +0000
@@ -1,7 +1,26 @@
 Pass 1: Checking inodes, blocks, and sizes
+Inode 13 has an invalid extent
+	(logical block 0, invalid physical block 0, len 3)
+Clear? yes
+
+Inode 13, i_size is 4096, should be 1024.  Fix? yes
+
+Inode 13, i_blocks is 8, should be 2.  Fix? yes
+
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
+Block bitmap differences:  -(25--27)
+Fix? yes
+
+Free blocks count wrong for group #0 (74, counted=77).
+Fix? yes
+
+Free blocks count wrong (74, counted=77).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
 test_filesys: 13/16 files (0.0% non-contiguous), 23/100 blocks
-Exit status is 0
+Exit status is 1
f_toobig_extent_dir: directory with a very large lblk in extent: ok
f_orphan_indirect_inode: truncating an orphaned inode in preen mode: ok
f_file_acl_high: i_file_acl_high should be zero: ok
e_icount_opt: inode counting abstraction optimized for counting: ok
u_tune2fs: e2undo with tune2fs: ok
f_holedir: directory with holes and illegal blocks: ok
f_extent_bad_node: bad interior node in extent tree: failed
--- f_extent_bad_node/expect.1	2011-01-14 18:07:50.000000000 +0000
+++ f_extent_bad_node.1.log	2015-02-20 08:01:15.797925312 +0000
@@ -2,22 +2,37 @@
 Inode 12 has an invalid extent node (blk 22, lblk 0)
 Clear? yes
 
-Inode 12, i_blocks is 16, should be 8.  Fix? yes
+Failed to iterate extents in inode 12
+	(op ext2fs_extent_fix_parents, blk 22, lblk 0): Corrupt extent header
+Clear inode? yes
 
+Restarting e2fsck from the beginning...
+Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
+Entry 'motd' in / (2) has deleted/unused inode 12.  Clear? yes
+
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-Block bitmap differences:  -(21--23) -25
+Block bitmap differences:  -(21--28)
+Fix? yes
+
+Free blocks count wrong for group #0 (71, counted=79).
+Fix? yes
+
+Free blocks count wrong (71, counted=79).
+Fix? yes
+
+Inode bitmap differences:  -12
 Fix? yes
 
-Free blocks count wrong for group #0 (71, counted=75).
+Free inodes count wrong for group #0 (4, counted=5).
 Fix? yes
 
-Free blocks count wrong (71, counted=75).
+Free inodes count wrong (4, counted=5).
 Fix? yes
 
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 12/16 files (0.0% non-contiguous), 25/100 blocks
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
 Exit status is 1
--- f_extent_bad_node/expect.2	2011-01-14 18:07:50.000000000 +0000
+++ f_extent_bad_node.2.log	2015-02-20 08:01:15.807925312 +0000
@@ -3,5 +3,5 @@
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-test_filesys: 12/16 files (0.0% non-contiguous), 25/100 blocks
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
 Exit status is 0
m_uninit: uninitialized group feature: ok
f_badtable: bad blocks in bitmaps and inode table: ok
f_noroot: missing root directory: ok
f_unsorted_EAs: unsorted EAs in inode should not be deleted: ok
m_desc_size_128: enable 128-byte group descriptor on mkfs: failed
f_illibitmap: illegal inode bitmap: ok
f_mmp/script: line 26: ps: command not found
f_mmp: disable MMP with tune2fs after e2fsck killed: ok
f_miss_journal: Non-existent journal inode: ok
f_valid_ea_in_inode: valid ea-in-inode examplars: ok
f_unused_itable: Don't move files to lost+found for bg_unused_itable: ok
t_quota_2off: disable quota using tune2fs: ok
f_dup2: blocks claimed by three different files: ok
f_baddotdir: bad '.' and '..' entries: ok
f_filetype: set filetype information and illegal special files: ok
m_raid_opt: raid options: ok
f_lpf: missing lost+found: ok
f_lpffile: lost+found is not a directory: ok
f_extent_oobounds: failed
f_h_unsigned: Unsigned HTREE directory: ok
m_std: standard filesystem options: ok
f_first_meta_bg_too_big: s_first_meta_bg is too large: ok
f_illitable: illegal inode table: ok
f_zero_inode_size: superblock with a zero inode size: ok
f_jnl_32bit: on-disk 32-bit journal format: ok
f_jnl_errno: journal s_errno handling: ok
m_extent_journal: extent-mapped journal: failed
m_meta_bg: meta blockgroup feature: ok
ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found
r_bigalloc_big_expand: ext4 with bigalloc: failed
f_dir_bad_mode: directory with corrupted i_mode: ok
f_special_ea: Special files with extended attributes: ok
f_bbinode: bad blocks in inode table: ok
f_zero_group: fallback for damaged group descriptors: ok
f_8192_block: 8192 byte blocksize: ok
m_root_owner: root directory owner: ok
f_uninit_ext_past_eof2: fallocated extents after nonzero i_size and total extents > 4: ok
f_recnect_bad: Reconnecting bad inode: ok
f_end-bitmap: corruption at end of block bitmap: ok
f_quota: fix incorrect usage stats in quota: failed
f_extent_interior_start_lblk: incorrect starting lblk in an interior node: failed
--- f_extent_interior_start_lblk/expect.1	2014-07-03 14:33:48.000000000 +0000
+++ f_extent_interior_start_lblk.1.log	2015-02-20 08:01:41.857925312 +0000
@@ -2,11 +2,37 @@
 Interior extent node level 0 of inode 12:
 Logical start 0 does not match logical start 2 at next level.  Fix? yes
 
+Failed to iterate extents in inode 12
+	(op ext2fs_extent_fix_parents, blk 0, lblk 2): Corrupt extent header
+Clear inode? yes
+
+Restarting e2fsck from the beginning...
+Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
+Entry 'foo' in / (2) has deleted/unused inode 12.  Clear? yes
+
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
+Block bitmap differences:  -18 -(38--44)
+Fix? yes
+
+Free blocks count wrong for group #0 (71, counted=79).
+Fix? yes
+
+Free blocks count wrong (71, counted=79).
+Fix? yes
+
+Inode bitmap differences:  -12
+Fix? yes
+
+Free inodes count wrong for group #0 (4, counted=5).
+Fix? yes
+
+Free inodes count wrong (4, counted=5).
+Fix? yes
+
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
 Exit status is 1
--- f_extent_interior_start_lblk/expect.2	2014-07-03 14:33:48.000000000 +0000
+++ f_extent_interior_start_lblk.2.log	2015-02-20 08:01:41.867925312 +0000
@@ -3,5 +3,5 @@
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
 Exit status is 0
f_dupfsblks: blocks claimed by a file and bitmaps or inode tables: ok
f_badbblocks: illegal blocks in bad block inode: ok
e_irel_ima: inode relocation table using the memory array implementation: skipped
f_bad_local_jnl: test for corrupt local journal (bad V1->V2 journal upgrade): ok
f_zero_super: fallback for damaged superblock: ok
f_baddir: corrupted directory entries: ok
f_crashdisk: Superblock with illegal values: ok
f_orphan_dotdot_ft: filetype of .. in orphaned directories: ok
f_mmp_garbage: repair MMP when it is corrupted: ok
t_mmp_2off: disable MMP using tune2fs: ok
f_misstable: missing inode table: ok
f_rehash_dir: optimize htree directories: failed
t_mmp_1on: enable MMP using tune2fs: ok
f_dup3: blocks claimed by one file multiple times: ok
f_badjourblks: Illegal blocks in journal inode (and backup in superblock): ok
f_badorphan: corrupted orphan list: ok
f_ea_checks: extended attribute block checks: ok
f_h_reindex: reindex HTREE Directory with different hash seed: ok
f_okgroup: 8193 block long filesystem: ok
f_selinux: SE Linux generated symlinks with EA data: ok
f_fast_symlink_extents: fast symlink with extents flag set: ok
f_16384_block: 16384 byte blocksize: ok
d_loaddump: debugfs load/dump test: ok
f_readonly_fsck: ensure that a readonly check doesn't modify the fs: ok
f_boundscheck: infinite loop due to off by one error when finding free space for inode table relocation: ok
f_dup_ba: multiply claimed blocks with bigalloc: failed
--- f_dup_ba/expect.1	2014-07-06 04:13:18.000000000 +0000
+++ f_dup_ba.1.log	2015-02-20 08:02:39.427925312 +0000
@@ -25,6 +25,11 @@
 	/6 (inode #17, mod time Sun Nov 27 04:39:32 2011)
 Clone multiply-claimed blocks? yes
 
+Error while iterating over blocks in inode 16 (clone_file): Corrupt extent header
+Couldn't clone file: Corrupt extent header
+Delete file? yes
+
+Error while iterating over blocks in inode 16 (delete_file): Corrupt extent header
 File /6 (inode #17, mod time Sun Nov 27 04:39:32 2011) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/5 (inode #16, mod time Sun Nov 27 04:39:31 2011)
@@ -33,37 +38,39 @@
 File /7 (inode #18, mod time Sun Nov 27 04:39:33 2011) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/5 (inode #16, mod time Sun Nov 27 04:39:31 2011)
-Multiply-claimed blocks already reassigned or cloned.
+Clone multiply-claimed blocks? yes
 
 File /8 (inode #19, mod time Sun Nov 27 04:39:34 2011) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/5 (inode #16, mod time Sun Nov 27 04:39:31 2011)
-Multiply-claimed blocks already reassigned or cloned.
+Clone multiply-claimed blocks? yes
 
 File /9 (inode #20, mod time Sun Nov 27 04:39:35 2011) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/5 (inode #16, mod time Sun Nov 27 04:39:31 2011)
-Multiply-claimed blocks already reassigned or cloned.
+Clone multiply-claimed blocks? yes
 
 File /10 (inode #21, mod time Sun Nov 27 04:39:36 2011) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
 	/5 (inode #16, mod time Sun Nov 27 04:39:31 2011)
-Multiply-claimed blocks already reassigned or cloned.
+Clone multiply-claimed blocks? yes
 
 Pass 2: Checking directory structure
+Entry '5' in / (2) has deleted/unused inode 16.  Clear? yes
+
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 Block bitmap differences:  +240
 Fix? yes
 
-Free blocks count wrong for group #0 (49, counted=43).
+Free blocks count wrong for group #0 (48, counted=42).
 Fix? yes
 
-Free blocks count wrong (784, counted=688).
+Free blocks count wrong (768, counted=672).
 Fix? yes
 
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
-test_filesys: 21/64 files (0.0% non-contiguous), 336/1024 blocks
+test_filesys: 20/64 files (0.0% non-contiguous), 352/1024 blocks
 Exit status is 1
--- f_dup_ba/expect.2	2014-06-25 19:19:15.000000000 +0000
+++ f_dup_ba.2.log	2015-02-20 08:02:39.437925312 +0000
@@ -1,7 +1,74 @@
 Pass 1: Checking inodes, blocks, and sizes
+Inode 18 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 18 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 18 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 18, i_blocks is 128, should be 0.  Fix? yes
+
+Inode 19 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 19 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 19 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 19, i_blocks is 128, should be 0.  Fix? yes
+
+Inode 20 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 20 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 20 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 20, i_blocks is 128, should be 0.  Fix? yes
+
+Inode 21 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 21 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 21 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 21, i_blocks is 128, should be 0.  Fix? yes
+
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
-test_filesys: 21/64 files (4.8% non-contiguous), 336/1024 blocks
-Exit status is 0
+Block bitmap differences:  -144 -(176--336)
+Fix? yes
+
+Free blocks count wrong for group #0 (42, counted=54).
+Fix? yes
+
+Free blocks count wrong (672, counted=864).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 20/64 files (0.0% non-contiguous), 160/1024 blocks
+Exit status is 1
f_dupsuper: blocks claimed by a file and superblock or group descriptors: ok
r_1024_small_bg: ext2 1024 blocksize with small block groups: ok
f_miss_blk_bmap: missing block bitmap: ok
f_summary_counts: incorrect inode/block free counts: ok
r_move_itable: filesystem resize which requires moving the inode table: ok
f_mke2fs2b: mke2fs version 0.2b created filesystem: ok
f_expand: expanding lost+found: ok
f_eofblocks: blocks after i_size: ok
f_emptydir: always iterate dir block 0 or e2fsck goes into infinite loop: ok
f_uninit_dir: fix uninit flag on directory extents and check the dir blocks: failed
--- f_uninit_dir/expect.1	2014-08-02 20:26:22.000000000 +0000
+++ f_uninit_dir.1.log	2015-02-20 08:02:47.427925312 +0000
@@ -19,9 +19,14 @@
 '..' in /abc (14) is <The NULL inode> (0), should be / (2).
 Fix? yes
 
+Couldn't fix parent of inode 14: EXT2 directory corrupted
+
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 
 test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+
+test_filesys: ********** WARNING: Filesystem still has errors **********
+
 test_filesys: 14/128 files (0.0% non-contiguous), 20/512 blocks
-Exit status is 1
+Exit status is 4
--- f_uninit_dir/expect.2	2014-08-02 20:26:22.000000000 +0000
+++ f_uninit_dir.2.log	2015-02-20 08:02:47.447925312 +0000
@@ -1,7 +1,50 @@
 Pass 1: Checking inodes, blocks, and sizes
+Inode 12 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 12 is a zero-length directory.  Clear? yes
+
+Inode 14 has an invalid extent
+	(logical block 0, invalid physical block 0, len 1)
+Clear? yes
+
+Inode 14 is a zero-length directory.  Clear? yes
+
 Pass 2: Checking directory structure
+Entry 'xyz' in / (2) has deleted/unused inode 12.  Clear? yes
+
+Entry 'abc' in / (2) has deleted/unused inode 14.  Clear? yes
+
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
+Inode 2 ref count is 5, should be 3.  Fix? yes
+
+Unattached zero-length inode 13.  Clear? yes
+
 Pass 5: Checking group summary information
-test_filesys: 14/128 files (0.0% non-contiguous), 20/512 blocks
-Exit status is 0
+Block bitmap differences:  -10 -19
+Fix? yes
+
+Free blocks count wrong for group #0 (492, counted=494).
+Fix? yes
+
+Free blocks count wrong (492, counted=494).
+Fix? yes
+
+Inode bitmap differences:  -12 -14
+Fix? yes
+
+Free inodes count wrong for group #0 (115, counted=117).
+Fix? yes
+
+Directories count wrong for group #0 (4, counted=2).
+Fix? yes
+
+Free inodes count wrong (115, counted=117).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/128 files (0.0% non-contiguous), 18/512 blocks
+Exit status is 1
f_dup_de: duplicate directory entries: ok
m_mmp: enable MMP during mke2fs: ok
f_h_normal: Normal (signed) HTREE directory: ok
f_reconnect: simple disconnected file inode: ok
135 tests succeeded	21 tests failed
Tests failed: f_badcluster f_desc_size_bad f_dup_ba f_extent_bad_node f_extent_interior_start_lblk f_extent_oobounds f_extents2 f_holedir2 f_holedir3 f_orphan_extents_inode f_quota f_rehash_dir f_uninit_dir m_64bit_flexbg m_bigjournal m_desc_size_128 m_extent_journal r_64bit_big_expand r_bigalloc_big_expand r_ext4_big_expand r_ext4_small_bg 
Makefile:338: recipe for target 'test_post' failed
make[1]: Leaving directory '/builddir/build/BUILD/e2fsprogs-1.42.12/tests'
make[1]: *** [test_post] Error 1
Makefile:372: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1


for full logs see
http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1736562
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2361011

My suspicion is the gcc5, but please review whether it could be e2fsprogs issue first.

Version-Release number of selected component (if applicable):
e2fsprogs-1.42.12-2.fc22

Comment 1 Dan Horák 2015-02-20 15:20:23 UTC
for the record - the tests pass on ppc64le - http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2361338 - so big endian AND gcc5 related

Comment 2 Dan Horák 2015-02-20 16:23:12 UTC
also a build with -O1 makes the tests pass, so switching to gcc, narrowing the cause will follow

Comment 3 Jakub Jelinek 2015-02-23 16:47:29 UTC
Do you think you can reduce some self-contained testcase?

Comment 4 Dan Horák 2015-02-23 16:59:00 UTC
yes, Michal (added to CC) is working on that

Comment 5 Jakub Jelinek 2015-02-25 20:29:06 UTC
Started with http://gcc.gnu.org/r210843 (not really surprising, given how often something like that occurs in the extent.c and other sources).

Comment 6 Jakub Jelinek 2015-02-25 21:00:28 UTC
Self-contained testcase for -O2:
static inline unsigned int
foo (unsigned int x)
{
  return (x >> 24) | ((x >> 8) & 0xFF00) | ((x << 8) & 0xFF0000) | (x << 24);
}

__attribute__((noinline, noclone)) unsigned int
bar (unsigned long *x)
{
  return foo (*x);
}

int
main ()
{
  unsigned long l = foo (0xdeadbeefU) | 0xfeedbea800000000ULL;
  if (bar (&l) != 0xdeadbeefU)
    __builtin_abort ();
  return 0;
}

Comment 7 Than Ngo 2015-02-27 10:13:53 UTC
i confirmed that the latest gcc-5.0.0-0.17 fixes this issue in e2fsproc on ppc. I'm testing it on s390 and will report the results today.

Comment 8 Fedora Update System 2015-02-27 15:06:15 UTC
gcc-5.0.0-0.17.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/gcc-5.0.0-0.17.fc22

Comment 9 Fedora Update System 2015-02-27 19:43:23 UTC
Package gcc-5.0.0-0.17.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing gcc-5.0.0-0.17.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-2759/gcc-5.0.0-0.17.fc22
then log in and leave karma (feedback).

Comment 10 Fedora Blocker Bugs Application 2015-02-28 18:17:04 UTC
Proposed as a Freeze Exception for 22-alpha by Fedora user sharkcz using the blocker tracking app because:

 gcc-5.0.0-0.17.fc22 contains a fix for critical issue on big endian arches (earlier version produce wrong code)

Comment 11 Petr Schindler 2015-03-02 21:24:59 UTC
Discussed at today's blocker review meeting [1].

This bug was accepted as Freeze Exception - This is provisionally granted FE status pending input from releng regarding potential impacts.

We will check this further with relengs and developers before it will get pulled through the freeze

http://meetbot.fedoraproject.org/fedora-blocker-review/2015-03-02/

Comment 12 Fedora Update System 2015-03-05 18:22:20 UTC
gcc-5.0.0-0.17.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.