Hi Nic,
Indeed, this patch allows to run the application with no core dump, but still it cannot recover anything. What seems a bit odd to us is
uuid of journal superblock: 00000000000000000000000000000000
not sure if this has something to do or not.


root@boole:/tmp/extundelete-0.2.4/src# ./extundelete --restore-all /dev/mapper/vgdata-lvdata -o /mnt/restore/
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 353742 groups loaded.
Loading journal descriptors ... 32524 descriptors loaded.
Searching for recoverable inodes in directory / ...
0 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
No files were undeleted.

root@boole:/tmp/extundelete-0.2.4/src# ./extundelete --superblock /dev/mapper/vgdata-lvdata
NOTICE: Extended attributes are not restored.
Inodes count: 724463616
Blocks count: 3001453568
Reserved blocks count: 579569408
Free blocks count: 125142346
Free inodes count: 720230077
First Data Block: 0
Block size: 4096
Fragment size: 4096
# Blocks per group: 32768
# Fragments per group: 1
# Inodes per group: 2048
Mount time: 1387374327
Write time: 1387374981
Mount count: 22
Maximal mount count: -1
Magic signature: 61267
File system state: 1
Behaviour when detecting errors: 1
minor revision level: 0
time of last check: 1358939852
max. time between checks: 0
OS: 0
Revision level: 1
Default uid for reserved blocks: 0
Default gid for reserved blocks: 0
First non-reserved inode: 11
size of inode structure: 256
block group # of this superblock: 0
compatible feature set: 44
incompatible feature set: 706
readonly-compatible feature set: 123
128-bit uuid for volume: 33a9819a0b0a48c39b3caf9aa2132456
For compression: 0
Nr to preallocate for dirs: 0
Per group table for online growth: 0
uuid of journal superblock: 00000000000000000000000000000000
inode number of journal file: 8
device number of journal file: 0
start of list of inodes to delete: 0
HTREE hash seed: 2382291e3347fe3b930113b980f20c06
Default hash version to use: 1
Default type of journal backup: 1
First metablock group: 0
When the filesystem was created: 1358939852
Compatible feature set: HAS_JOURNAL EXT_ATTR DIR_INDEX
Incompatible feature set: FILETYPE
Read only compatible feature set: SPARSE_SUPER LARGE_FILE
Josep Manel Andrés Moscardó
IT Technician at IC3
Institut Català de Ciències del Clima (IC3)
Doctor Trueta 203 - 08005 Barcelona
Tel:+34 93 567 99 77 EXT 315
On 03/11/2014 08:26 AM, extundelete-users@lists.sourceforge.net wrote:
Hi Nic,

I encountered core dump issue that reported by Josep and i found root cause of the problem.

In journ_tag_bytes(), JOURNAL_HAS_INCOMPAT_FEATURE failed to check journal feature, because given journal super block already converted by journal_superblock_to_cpu().

In init_journal(), We uses journ_tag_bytes() to find next journal_block_tag.
If 64BIT feature is on, we can't find next journal_block_tag correctly, such that failed to identify flag JFS_FLAG_LAST_TAG and lead to memory corruption.

Following patch fix the problem


diff --git a/src/extundelete.cc b/src/extundelete.cc                                                                                                                                   [0/1886]
index 214672e..8e27358 100644
--- a/src/extundelete.cc
+++ b/src/extundelete.cc
@@ -331,7 +331,7 @@ static inline uint32_t le32_to_cpu(uint32_t *y)
 //FIXME: linux kernel's version of this macro checks the journal version >= 2.
 #define JOURNAL_HAS_INCOMPAT_FEATURE(j,mask)                               \
         ((j)->s_header.h_blocktype == 4 &&                                  \
-         ((j)->s_feature_incompat & ext2fs_cpu_to_be32((mask))))
+         ((j)->s_feature_incompat & mask))

 static size_t journ_tag_bytes(journal_superblock_t *jsb)

Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!

Extundelete-users mailing list