On 06/14/2013 10:42 AM, Marek Skuczynski wrote:
> ... and missing callstack for jfs_fsck tool
>
> #0 bread (vol=0, pxd=..., buf=0x7fe17f08, update=0) at log_map.c:1873
> #1 0x00433acc in rXtree (vol=0, dp=, first_leaf=0x7fe17f5c) at log_map.c:1693
> #2 0x0043417c in bMapInit (vol=0, dip=0x4fdda0) at log_map.c:416
> #3 0x00434564 in initMaps (vol=0) at log_map.c:259
> #4 0x0042c670 in openVol (vol=0) at logredo.c:1005
> #5 0x0042ef38 in logredoInit () at log_work.c:1831
> #6 0x0042cc78 in jfs_logredo (pathname=, fp=, use_2nd_aggSuper=) at
> logredo.c:590
> #7 0x004275dc in phase0_processing () at xchkdsk.c:1888
> #8 0x0042970c in main (argc=, argv=) at xchkdsk.c:333
>
> (gdb) p pxd
> $12 = {len = 1, addr1 = 0, addr2 = 0}
>
> On Fri, Jun 14, 2013 at 5:34 PM, Marek Skuczynski <[email protected]> wrote:
>> Hi,
>> I have a problem, which very similar in symptom to case
>> reported in this post:
>> <http://sourceforge.net/mailarchive/message.php?msg_id=29796419>
>>
>> I have a HDD image, on which I have 2 partitions - both JFS.
>>
>> jfsutils/fsck/jfs_fsck version 1.1.15, Jun 14 2013
>> processing started: 6/14/2013 17:29:03
>> Using default parameter: -p [xchkdsk.c:3033]
>> The current device is: /dev/mapper/loop1p1 [xchkdsk.c:1527]
>> Open(...READ/WRITE EXCLUSIVE...) returned rc = 0 [fsckpfs.c:3233]
>> Primary superblock is valid. [fsckmeta.c:1551]
>> The type of file system for the device is JFS. [xchkdsk.c:1544]
>> Block size in bytes: 4096 [xchkdsk.c:1857]
>> Filesystem size in blocks: 526120 [xchkdsk.c:1864]
>> **Phase 0 - Replay Journal Log [xchkdsk.c:1871]
>> ^C|......
>>
>> I have added several traces and found that the tool is looping in this
>> function rXtree():
>>
>> do {
>> /* read in the leftmost child page */
>> if (bread(vol, pxd, (void **) &buf_ptr, PB_READ) != 0) {
>> fsck_send_msg(lrdo_RXTREADLFFAIL);
>> return (MINOR_ERROR);
>> }
>>
>> p = (xtpage_t *) buf_ptr;
>> /* is this page leaf ? */
>> if (p->header.flag & BT_LEAF)
>> break;
>> else {
>> PXDlength(&pxd, vopen[vol].lbperpage);
>> PXDaddress(&pxd, addressXAD(&p->xad[XTENTRYSTART]));
>> }
>> } while (!(p->header.flag & BT_LEAF));
>>
>> Values passed to bread are: vol: 0, pxd: len: 1, addr1: 0, addr2: 0
>>
>> The p->header.flag is equal 0 after returning from bread().
>>
>>
>> Any idea how to handle this problem ?
It looks like the function needs to do a better job of sanity checking.
You may be able to recover by running jfs_fsck with the
"--omit_journal_replay" flag.
>>
>> I can provide more details, if needed.
>>
>> Thank you in advance for your feedback.
>>
>> M
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Jfs-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jfs-discussion