Project

General

Profile

Bug #1004

hanging writes, bisected to i_state locking change

Added by Sage Weil over 8 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
-
Category:
fs/ceph
Target version:
Start date:
04/15/2011
Due date:
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:

Description

Date: Fri, 15 Apr 2011 11:00:58 -0600
From: Jim Schutt <jaschut@sandia.gov>
To: dchinner@redhat.com, viro@zeniv.linux.org.uk
Cc: linux-kernel@vger.kernel.org,
    "ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: [Regression,bisected] 2.6.39-rc3 ceph client write hangs

    [ The following text is in the "utf-8" character set. ]
    [ Your display is set for the "iso-8859-1" character set.  ]
    [ Some characters may be displayed incorrectly. ]

Hi,

This command is hanging on 2.6.39-rc3, where /mnt/ceph is
a ceph file system:
  dd conv=fdatasync if=/dev/zero of=/mnt/ceph/zero.`hostname -s` bs=4k count=4k

It works on 2.6.38.  As of commit e38f5b745075 in Linus'
tree it still doesn't work.

I bisected this to:

250df6ed274d767da844a5d9f05720b804240197 is the first bad commit
commit 250df6ed274d767da844a5d9f05720b804240197
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Mar 22 22:23:36 2011 +1100

    fs: protect inode->i_state with inode->i_lock

In the early stages of the bisection, bad commits would show this
in dmesg:

[  137.004963] libceph: loaded (mon/osd proto 15/24, osdmap 5/6 5/6)
[  137.056431] ceph: loaded (mds proto 32)
[  137.063213] libceph: client4283 fsid 950217ad-499e-eab1-03f7-f6d245f42751
[  137.063826] libceph: mon0 172.17.40.34:6789 session established
[  219.658002] INFO: rcu_sched_state detected stall on CPU 0 (t=60000 jiffies)

For the last couple of bad commits during the bisection, the
client box would just hang and I'd have to power-cycle it.

When I reboot/remount after a hang, the file I was trying
to write is there, with size and date both zero:

# ls -l --time-style=+%s /mnt/ceph/zero.an1024
-rw-r--r-- 1 jaschut jaschut 0 0 /mnt/ceph/zero.an1024

strace suggests it's the write that hangs:

close(3)                                = 0
close(0)                                = 0
open("/dev/zero", O_RDONLY)             = 0
lseek(0, 0, SEEK_CUR)                   = 0
close(1)                                = 0
open("/mnt/ceph/zero.an1024", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 1
rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, {0x401a20, [INT USR1], SA_RESTORER, 0x7f3a97f292d0}, NULL,
8) = 0
rt_sigaction(SIGINT, {0x401a10, [INT USR1], SA_RESTORER|SA_NODEFER|SA_RESETHAND,
0x7f3a97f292d0}, NULL, 8) = 0
clock_gettime(CLOCK_MONOTONIC, {216, 671807533}) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096) = 4096
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096

Let me know if I can do anything else to help sort this out.

-- Jim

(Please Cc: me as I am not subscribed to lkml.)

History

#1 Updated by Sage Weil over 8 years ago

  • Status changed from New to Resolved

commit:283a85d

#2 Updated by Sage Weil over 8 years ago

  • translation missing: en.field_story_points set to 1
  • translation missing: en.field_position set to 1
  • translation missing: en.field_position changed from 1 to 564

Also available in: Atom PDF