|
|
|
Re: Negative blocks in rebuild-tree | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On 01/11/11 20:30, Jeff Mahoney wrote:
> On 01/11/2011 02:27 PM, sh@xxxxxxxx wrote:
>> Hi
>
>> On 01/09/11 22:40, Jeff Mahoney wrote:
>>> On 01/08/2011 07:58 PM, Edward Shishkin wrote:
>>>> On 01/08/2011 02:31 PM, Sebastian Hyrwall wrote:
>>>>> Hi
>>>
>>>> Hello.
>>>
>>>>>
>>>>> I am getting a negative block-number with reiserfsck when doing
>>>>> --rebuild-tree -S (or without -S). This causes a segmentation fault
>>>>> later (pass 2) in the check because it tries to read a "non-existant
>>>>> block". My rebuild takes 3 days and i didn't copy the stdout-info the
>>>>> first time so I will post some more info as soon as it becomes available.
>>>>>
>>>>> Pass 0:
>>>>> ####### Pass 0 #######
>>>>> The whole partition (-710934672 blocks) is to be scanned
>>>>> Skipping 117586 blocks (super block, journal, bitmaps)
>>>
>>>
>>>> So you do have a ~16T partition. Correct?
>>>
>>>
>>>> -711052258 blocks
>>>
>>> This bit isn't bad typing - it's bad printf formatting. The actual bad
>>> typing is going to be harder to track down. A quick look showed me some
>>> signed block count variables in the debugreiserfs code but the fsck code
>>> may be better off. I'll dig into it.
>>>
>>> Since you're trying to reproduce, it would be great if you capture the
>>> core dump that should happen when you seg fault. Exact output would be
>>> useful as well.
>>>
>>> -Jeff
>>>
>> Pass 1 (will try to insert 3472246 leaves):
>> ####### Pass 1 #######
>> Looking for allocable blocks .. finished
>> 0%....20%^[[A....40%....60%..bc ..80%....100%
>> left 0, 62 /sec
>> Flushing..finished
>> 3472246 leaves read
>> 3457984 inserted
>> - pointers in indirect items pointing to
>> metadata 77 (zeroed)
>> 14262 not inserted
>> non-unique pointers in indirect items (zeroed) 71213
>> ####### Pass 2 #######
>
>> Pass 2:
>> 0%bread: Cannot read the block (18446744072169358012): (Invalid
>> argument). /sec
>> bread: Cannot read the block (18446744072169358012): (Invalid argument).
>
>> gdb
>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x000000000042008b in ?? ()
>
>> ---
>> 18446744072169358012 is pretty close to an unsigned int64.
>
> This looks like a signed int got sign extended to a long.
>
>> The coredmp is 1.7GB so I will upload that somewhere soon.. :)
>
> I don't need the whole core dump for now. Can you load up gdb and do:
>
> gdb reiserfsck core
>
> (gdb) bt -full
>
> .. and send the results?
>
> Thanks.
>
> -Jeff
>
#0 0x000000000042008b in balance_leaf (tb=0x7fffc3d0f920,
ih=0x7fffc3d0f440, body=0x6c83a0 "\001",
flag=6870296, zeros_num=1) at do_balan.c:902
item_pos = <value optimized out>
sbytes = {-1009715552, 32767}
pos_in_item = 2
tbS0 = 0x33
n = 4361609
ret_val = 35
bi = {bi_bh = 0x6dbf98, bi_parent = 0x42044a, bi_position = 3}
snum = {-1009715552, 32767}
i = 7111584
#1 do_balance (tb=0x7fffc3d0f920, ih=0x7fffc3d0f440, body=0x6c83a0
"\001", flag=6870296, zeros_num=1)
at do_balan.c:1135
child_pos = <value optimized out>
h = <value optimized out>
insert_key = {{ih_key = {k2_dir_id = 58896, k2_objectid = 58903,
u = {k2_offset_v1 = {
k_offset = 1, k_uniqueness = 268435456}, k2_offset_v2
= {k_offset = 1, k_type = 1}}},
u = {ih2_free_space = 33696, ih2_entry_count = 33696},
ih2_item_len = 108,
ih2_item_location = 0, ih_format = 0}, {ih_key = {k2_dir_id
= 3285251744, k2_objectid = 32767,
u = {k2_offset_v1 = {k_offset = 7192432, k_uniqueness =
0}, k2_offset_v2 = {
k_offset = 7192432, k_type = 0}}}, u = {ih2_free_space
= 0, ih2_entry_count = 0},
ih2_item_len = 0, ih2_item_location = 0, ih_format = 0}}
insert_ptr = {0x3f4000, 0x41ff50}
#2 0x000000000042a723 in search_by_key (fs=0x6bcd00,
p_s_key=0x7fffc3d0ca30, p_s_search_path=0x49,
n_stop_level=1413791264) at stree.c:314
sb = <value optimized out>
n_block_number = <value optimized out>
expected_level = 0
n_block_size = <value optimized out>
n_retval = <value optimized out>
__FUNCTION__ = "search_by_key"
#3 0x0000000000000000 in ?? ()
No symbol table info available.
--
Also.. I think (not used to debugging.. ;),
(gdb) list
907 struct item_head * pasted;
908
909 pasted = B_N_PITEM_HEAD (tbS0, item_pos);
910 /* when directory, may be new entry already pasted */
911 if (I_IS_DIRECTORY_ITEM (pasted)) {
912 if ( pos_in_item >= 0 && pos_in_item <=
get_ih_entry_count (pasted) ) {
913 /* prepare space */
914 bi.bi_bh = tbS0;
915 bi.bi_parent = PATH_H_PPARENT (tb->tb_path, 0);
916 bi.bi_position = PATH_H_POSITION (tb->tb_path, 1);
>
>
>
>>>
>>>>> will be read
>>>>>
>>>>> Does anyone have any idea on how to fix this?
>>>>>
>>>>> On a 64-bit system.
>>>
>>>
>>>> It looks like you have encountered an overflow/truncation fsck bug
>>>> specific to giant volumes.
>>>
>>>> I would first ask Jeff: AFAIK he is planning to enable 16T files
>>>> in reiserfs.
>>>> Jeff, do you have any non-published fixups for such problems?
>>>
>>>> Thanks,
>>>> Edward.
>>>
>>>
>>>>>
>>>>> Sincerely,
>>>>> Sebastian H
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe
>>>>> reiserfs-devel" in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>>
>>>
>
>
--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux BTRFS] [Linux NFS] [Linux Filesystems] [Ext4 Filesystem] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite Forum] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |