xfs
[Top] [All Lists]

Assertion failed: atomic_read(&mp->m_active_trans)

To: xfs@xxxxxxxxxxx
Subject: Assertion failed: atomic_read(&mp->m_active_trans)
From: Donald Douwsma <donaldd@xxxxxxx>
Date: Tue, 25 Nov 2008 19:00:21 +1100
User-agent: Thunderbird 2.0.0.17 (X11/20080925)
We still occasionally see transactions in flight after remounting
read-only. This has come up a few times in the past, but we never
seem to have gotten to the bottom of it.

http://www.gossamer-threads.com/lists/linux/kernel/868139

Most recently we've seen this on 2.6.27, when unmounting the root
filesystem during shutdown/reboot.

Stack traceback for pid 13170
0xffff81024dcd9080    13170    12901  1    1   R  0xffff81024dcd93c0 *mount
rsp                rip                Function (args)
0xffff8101fb977d18 0xffffffff803b8acd assfail+0x1a (invalid, invalid, invalid)
0xffff8101fb977d50 0xffffffff803a57e4 xfs_attr_quiesce+0x4a (0xffff8102211e4b20)
0xffff8101fb977d70 0xffffffff803a589b xfs_mntupdate+0x7c (0xffff8102211e4b20, 
invalid, invalid)
0xffff8101fb977d90 0xffffffff803b7cf6 xfs_fs_remount+0x49 (invalid, 
0xffff8101fb977dd4, invalid)
0xffff8101fb977dc0 0xffffffff802830fe do_remount_sb+0xe9 (0xffff81025c804670, 
invalid, 0xffff8101ee490000, invalid)
0xffff8101fb977e00 0xffffffff8029698d do_remount+0x7d (0xffff8101fb977e58, 
invalid, invalid, 0xffff8101ee490000)
0xffff8101fb977e40 0xffffffff802974fd do_mount+0x13b (0xffff8102079c2000, 
0xffff8102004ea000, 0xffff810219cb0000, invalid, 0xffff8101ee490000)
0xffff8101fb977f20 0xffffffff8029761a sys_mount+0x89 (0x523d90, invalid, 
invalid, 0xffffffffc0ed0021, 0x523e30)
0xffff8101fb977f80 0xffffffff8020b18b system_call_after_swapgs+0x7b (invalid, 
invalid, invalid, invalid, invalid, invalid)

Previously we've discussed changing the ASSERT_ALWAYS to a normal
ASSERT to lessen the impact for users. Any objections to doing this
until we fix the underlying problem?

Don


Dont assert if transactions are in flight for release builds. 

--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -371,7 +371,7 @@ xfs_quiesce_attr(
        /* flush inodes and push all remaining buffers out to disk */
        xfs_quiesce_fs(mp);
 
-       ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0);
+       ASSERT(atomic_read(&mp->m_active_trans) == 0);
 
        /* Push the superblock and write an unmount record */
        error = xfs_log_sbcount(mp, 1);

<Prev in Thread] Current Thread [Next in Thread>
  • Assertion failed: atomic_read(&mp->m_active_trans), Donald Douwsma <=