linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Zorro Lang <zlang@redhat.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [Bug report] XFS: Assertion failed: XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0
Date: Fri, 25 May 2018 14:05:06 -0700	[thread overview]
Message-ID: <20180525210506.GT14384@magnolia> (raw)
In-Reply-To: <20180524181639.GW4893@hp-dl360g9-06.rhts.eng.pek2.redhat.com>

On Fri, May 25, 2018 at 02:16:39AM +0800, Zorro Lang wrote:
> Hi,
> 
> I just hit a XFS crash [1] when I tested XFS on a 500T storage. And a XFS
> corruption [2] can be found by "xfs_repair -n".
> 
> Tested on 4.17-rc6, xfsprogs-4.16.1. mkfs.xfs options are "-m crc=1,finobt=1,
> rmapbt=1,reflink=1 -i sparse=1".
> 
> I've report a bug as below:
> https://bugzilla.kernel.org/show_bug.cgi?id=199825
> 
> [1]
>  kernel: XFS: Assertion failed: XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0, file: fs/xfs/xfs_super.c, line: 984

Maybe it's time I cleaned up & sent out my patch that dumps the data and
cow forks to ftrace when we hit this assert.

Also, I think i_dlayed_blks should be xfs_filblks_t, not unsigned int...

--D

>  kernel: WARNING: CPU: 39 PID: 487 at fs/xfs/xfs_message.c:105 asswarn+0x1e/0x30 [xfs]
>  kernel: Modules linked in: loop intel_powerclamp coretemp kvm_intel sunrpc kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel crypto_simd cryptd glue_helper iTCO_wdt gpio_ich iTCO_vendor_support dm_service_time pcspkr ipmi_ssif ipmi_si ipmi_devintf hpilo hpwdt sg i7core_edac lpc_ich ipmi_msghandler shpchp acpi_power_meter pcc_cpufreq dm_multipath ip_tables xfs libcrc32c sr_mod cdrom ata_generic pata_acpi radeon i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm ata_piix sd_mod drm mpt3sas libata crc32c_intel serio_raw hpsa netxen_nic i2c_core raid_class scsi_transport_sas dm_mirror dm_region_hash dm_log dm_mod
>  kernel: CPU: 39 PID: 487 Comm: kswapd0 Not tainted 4.17.0-rc6+ #2
>  kernel: Hardware name: HP ProLiant DL580 G7, BIOS P65 10/01/2013
>  kernel: RIP: 0010:asswarn+0x1e/0x30 [xfs]
>  kernel: RSP: 0018:ffff9b9887d9fbc0 EFLAGS: 00010246
>  kernel: RAX: 0000000000000000 RBX: ffff882b91e009d8 RCX: 0000000000000000
>  kernel: RDX: ffff9b9887d9fae0 RSI: 000000000000000a RDI: ffffffffc05ecff9
>  kernel: RBP: ffff882b91e008c8 R08: 0000000000000000 R09: 0000000000000021
>  kernel: R10: 0000000000000000 R11: 000000000000000a R12: ffff882b91e00780
>  kernel: R13: 000000000000ce58 R14: 000000000000000c R15: 00000000000000e5
>  kernel: FS:  0000000000000000(0000) GS:ffff882f6fbc0000(0000) knlGS:0000000000000000
>  kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>  kernel: CR2: 00007f832588eff0 CR3: 0000000a2dc0a002 CR4: 00000000000206e0
>  kernel: Call Trace:
>  kernel: xfs_fs_destroy_inode+0x1db/0x200 [xfs]
>  kernel: dispose_list+0x48/0x60
>  kernel: prune_icache_sb+0x52/0x70
>  kernel: super_cache_scan+0x139/0x190
>  kernel: shrink_slab+0x249/0x430
>  kernel: shrink_node+0x44a/0x490
>  kernel: balance_pgdat+0x188/0x360
>  kernel: kswapd+0x171/0x410
>  kernel: ? remove_wait_queue+0x60/0x60
>  kernel: kthread+0xf8/0x130
>  kernel: ? balance_pgdat+0x360/0x360
>  kernel: ? kthread_bind+0x10/0x10
>  kernel: ret_from_fork+0x35/0x40
>  kernel: Code: 99 f9 ff ff 0f 0b e8 c2 d4 4e c8 66 90 66 66 66 66 90 48 89 f1 41 89 d0 48 c7 c6 08 7f 5f c0 48 89 fa 31 c0 31 ff e8 b2 fc ff ff <0f> 0b c3 0f 1f 44 00 00 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 
>  kernel: ---[ end trace 6d72efdc406c28bc ]---
> 
> [2]
> 
> Phase 1 - find and verify superblock...
>         - reporting progress in intervals of 15 minutes
> Memory available for repair (48300MB) may not be sufficient.
> At least 64121MB is needed to repair this filesystem efficiently
> If repair fails due to lack of memory, please
> turn prefetching off (-P) to reduce the memory footprint.
> Phase 2 - using internal log
>         - zero log...
>         - scan filesystem freespace and inode maps...
> sb_fdblocks 2570207456, counted 2570207543
>         - 10:12:40: scanning filesystem freespace - 501 of 501 allocation groups done
>         - found root inode chunk
> Phase 3 - for each AG...
>         - scan (but don't clear) agi unlinked lists...
>         - 10:12:40: scanning agi unlinked lists - 501 of 501 allocation groups done
>         - process known inodes and perform inode discovery...
>         - agno = 0
>         - agno = 15
>         ...
>         (501 AGs)
>         ...
>         - agno = 254                           
>         - 10:57:14: process known inodes and inode discovery - 21719296 of 19087328 inodes done
>         - process newly discovered inodes...   
>         - 10:57:14: process newly discovered inodes - 501 of 501 allocation groups done        
> Phase 4 - check for duplicate blocks...        
>         - setting up duplicate extent list...  
>         - 10:57:17: setting up duplicate extent list - 501 of 501 allocation groups done       
>         - check for inodes claiming duplicate blocks...                                        
>         - agno = 30                            
>         - agno = 0                             
>         - agno = 45
>         ...                                    
>         (501 AGs)                              
>         ...
>         - agno = 253                           
>         - agno = 254                           
>         - 11:42:57: check for inodes claiming duplicate blocks - 21719296 of 19087328 inodes done
> No modify flag set, skipping phase 5           
> Phase 6 - check inode connectivity...          
>         - traversing filesystem ...            
>         - traversal finished ...               
>         - moving disconnected inodes to lost+found ...                                         
> Phase 7 - verify link counts...                
>         - 11:52:50: verify and correct link counts - 501 of 501 allocation groups done         
> No modify flag set, skipping filesystem flush and exiting.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2018-05-25 21:05 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-24 18:16 [Bug report] XFS: Assertion failed: XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0 Zorro Lang
2018-05-25 21:05 ` Darrick J. Wong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180525210506.GT14384@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=zlang@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).