On Saturday, August 29, 2015, 11:24:58, Christian Kujau wrote: > If you still have the partition image - can you try running jfs_fsck on > that image on another system? Maybe the segfault got triggered by a memory > error?
I just tried booting SystemRescueCD 4.5.2 in VMWare on my workstation, and attached a copy of the partition image with the loop driver there. jfs_fsck still segfaulted: ,----- | % jfs_fsck -v -a -p /dev/loop1 | jfs_fsck version 1.1.15, 04-Mar-2011 | processing started: 9/2/2015 19:51:47 | The current device is: /dev/loop1 | Open(...READ/WRITE EXCLUSIVE...) returned rc = 0 | Primary superblock is valid. | The type of file system for the device is JFS. | Block size in bytes: 4096 | Filesystem size in blocks: 2097152 | **Phase 0 - Replay Journal Log | LOGREDO: Log record for Sync Point at: 0x011f85e4 | LOGREDO: Beginning to update the Inode Allocation Map. | zsh: segmentation fault jfs_fsck -v -a -p /dev/loop1 `----- My server is based on SuperMicro X8DT3 board with Xeon E5620 and ECC reg. RAM, so undetected memory errors should be fairly unlikely. > Does "gdb" on the core file reveal anything interesting? E.g. > gdb -c ./core /usr/sbin/jfs_fsck -ex bt Unfortunately not, seems like there's no debug symbols. Instead I checked out the latest jfsutils sources, and compiled that with -g -ggdb, here's what happens when I run jfs_fsck in gdb: # gdb --args ./jfs_fsck -a -p -v /dev/loop18 GNU gdb (Gentoo 7.9.1 vanilla) 7.9.1 Copyright (C) 2015 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./jfs_fsck...done. (gdb) r Starting program: /root/pkg/jfs/jfsutils/fsck/jfs_fsck -a -p -v /dev/loop18 /root/pkg/jfs/jfsutils/fsck/jfs_fsck version 1.1.15, Sep 2 2015 processing started: 9/2/2015 20:57:20 The current device is: /dev/loop18 Open(...READ/WRITE EXCLUSIVE...) returned rc = 0 Primary superblock is valid. The type of file system for the device is JFS. Block size in bytes: 4096 Filesystem size in blocks: 2097152 **Phase 0 - Replay Journal Log LOGREDO: Log record for Sync Point at: 0x011f85e4 LOGREDO: Beginning to update the Inode Allocation Map. Correcting Inode Allocation Group F-585027579 invalid Allocation Group (29366). Program received signal SIGSEGV, Segmentation fault. iMapRead (vol=0, page_number=382326830, page_buffer=0x72b000) at log_map.c:814 814 imr_rc = ujfs_rw_diskblocks(vopen[vol].fp, (gdb) bt f #0 iMapRead (vol=0, page_number=382326830, page_buffer=0x72b000) at log_map.c:814 imr_rc = 0 #1 0x000000000043ec7c in writeImap (vol=0, fsimap=..., dp=0x6d2980 <buffer+352256>) at log_map.c:1090 imap_ctl = 0x729000 rc = 0 k = 100 iagpages = 147 npages = 148 next_iag = 382326829 iagfree = 0 numinos = 4096 agno = 0 iagp = 0x72a000 iag_pg = 0x72b000 next_imap_page = 102 iag_datarec = 0x732a00 maplen = 1024 inoext_arrlen = 1024 #2 0x000000000043e795 in updateMaps (vol=0) at log_map.c:940 rc = 0 dip = 0x6d2980 <buffer+352256> pxd1 = {len = 1, addr1 = 0, addr2 = 13} #3 0x0000000000436348 in jfs_logredo (pathname=0x7fffffffd976 "/dev/loop18", fp=0x71d780, use_2nd_aggSuper=0) at logredo.c:786 rc = 0 k = 0 logaddr = 18816552 nextaddr = 18816496 lastaddr = 18816552 nlogrecords = 4257 syncrecord = 18843108 ld = {logtid = 2569532, backchain = 18816496, type = 8, length = 20, aggregate = 0, log = {redopage = {fileset = 16, inode = 172077, type = 8, l2linesize = 1, pxd = {len = 1, addr1 = 0, addr2 = 720921}}, noredopage = {fileset = 16, inode = 172077, type = 8, rsrvd = 1, pxd = {len = 1, addr1 = 0, addr2 = 720921}}, updatemap = {fileset = 16, inode = 172077, type = 8, nxd = 1, pxd = {len = 1, addr1 = 0, addr2 = 720921}}, noredoinoext = {fileset = 16, iagnum = 172077, inoext_idx = 65544, pxd = {len = 1, addr1 = 0, addr2 = 720921}}, syncpt = {sync = 16}, freextent = { type = 16, nextent = 172077}, noredofile = {fileset = 16, inode = 172077}, newpage = {fileset = 16, inode = 172077, type = 65544, pxd = {len = 1, addr1 = 0, addr2 = 720921}}}} lowest_lr_byte = 8200 highest_lr_byte = 33554396 log_has_wrapped = 0 logend = 19296148 in_use = 0 #4 0x00000000004315ad in phase0_processing () at xchkdsk.c:1888 p0_rc = 0 agg_blks = 2097152 use_2ndary_superblock = 0 #5 0x000000000042e723 in main (argc=5, argv=0x7fffffffd608) at xchkdsk.c:333 rc = 0 Current_Time = 140737488344576 (gdb) Hopefully this helps. -- < Jernej Simončič ><><><><>< http://eternallybored.org/ > A memorandum is written not to inform the reader but to protect the writer. -- Acheson's Rule of the Bureaucracy ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ Jfs-discussion mailing list Jfs-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jfs-discussion