From: bugzilla-daemon@bugzilla.kernel.org
To: reiserfs-devel@vger.kernel.org
Subject: [Bug 29162] Reiserfs hang with dataloss sometimes
Date: Tue, 07 Apr 2015 10:05:14 +0000 [thread overview]
Message-ID: <bug-29162-695-sIABNGZIU3@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-29162-695@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=29162
Hamdi Hamdi <hhamdi@sevone.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hhamdi@sevone.com
--- Comment #66 from Hamdi Hamdi <hhamdi@sevone.com> ---
Hi,
After some research there is a scenario which triggered my suspicion (ref
http://lxr.free-electrons.com/source/fs/reiserfs/journal.c?v=3.3):
1) several threads call `queue_log_writer` and are put to sleep
2) J_WRITERS_QUEUED bit is set
3) `check_journal_end` returns nonzero value and the `do_journal_end`
continues it's execution
4) at line 4252 it clears the bit and wakes 1 thread
5) no other thread enters `queue_log_writer` due to some unknown reason and
the bit is not set again
5) the awaken thread ends up with `if (!check_journal_end(th, sb, nblocks,
flags)`
returning 0 which triggers the awakening of another thread
6) No one will be awaken since there is no bit set on `if
(test_and_clear_bit(J_WRITERS_QUEUED, &journal->j_state))`,
except when the execution reaches line 4253
One ugly workaround for testing purposes at line 4253:
4253 wake_up(&(journal->j_join_wait));
replaced with
4253 wake_up_all(&(journal->j_join_wait));
There must be a reason for this to happen on high loads only so any help and/or
suggestions is more that welcome !
--
You are receiving this mail because:
You are the assignee for the bug.
next prev parent reply other threads:[~2015-04-07 10:05 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-15 9:36 [Bug 29162] New: Reiserfs hang with dataloss sometimes bugzilla-daemon
2011-02-15 9:38 ` [Bug 29162] " bugzilla-daemon
2011-02-15 9:39 ` bugzilla-daemon
2011-02-15 9:39 ` bugzilla-daemon
2011-02-15 9:41 ` bugzilla-daemon
2011-02-15 9:44 ` bugzilla-daemon
2011-02-15 9:45 ` bugzilla-daemon
2011-02-15 9:47 ` bugzilla-daemon
2011-03-08 20:44 ` bugzilla-daemon
2011-03-15 3:13 ` bugzilla-daemon
2011-03-15 22:03 ` bugzilla-daemon
2011-03-28 9:33 ` bugzilla-daemon
2011-04-17 18:08 ` bugzilla-daemon
2011-05-02 16:11 ` bugzilla-daemon
2011-05-11 14:54 ` bugzilla-daemon
2011-05-13 13:09 ` bugzilla-daemon
2011-05-17 7:16 ` bugzilla-daemon
2011-05-17 9:19 ` bugzilla-daemon
2011-05-17 13:15 ` bugzilla-daemon
2011-05-21 14:37 ` bugzilla-daemon
2011-05-21 14:38 ` bugzilla-daemon
2011-05-22 11:06 ` bugzilla-daemon
2011-05-23 13:06 ` bugzilla-daemon
2011-05-23 13:11 ` bugzilla-daemon
2011-05-23 16:33 ` bugzilla-daemon
2011-05-23 16:35 ` bugzilla-daemon
2011-05-23 16:38 ` bugzilla-daemon
2011-05-23 18:54 ` bugzilla-daemon
2011-05-23 20:02 ` bugzilla-daemon
2011-06-07 14:23 ` bugzilla-daemon
2011-06-10 12:41 ` bugzilla-daemon
2011-06-11 17:29 ` bugzilla-daemon
2011-06-11 17:32 ` bugzilla-daemon
2011-06-13 15:10 ` bugzilla-daemon
2011-06-13 21:37 ` bugzilla-daemon
2011-06-14 9:14 ` bugzilla-daemon
2011-06-14 9:16 ` bugzilla-daemon
2011-06-20 7:38 ` bugzilla-daemon
2011-08-21 13:00 ` bugzilla-daemon
2011-08-21 14:11 ` bugzilla-daemon
2011-08-21 15:18 ` bugzilla-daemon
2011-08-22 12:34 ` bugzilla-daemon
2011-09-08 12:48 ` bugzilla-daemon
2012-02-06 18:57 ` bugzilla-daemon
2012-04-12 11:32 ` bugzilla-daemon
2012-06-06 8:32 ` bugzilla-daemon
2013-02-11 22:17 ` bugzilla-daemon
2013-02-18 19:45 ` bugzilla-daemon
2013-02-27 9:27 ` bugzilla-daemon
2013-03-02 10:36 ` bugzilla-daemon
2013-04-17 12:17 ` bugzilla-daemon
2013-05-11 15:03 ` bugzilla-daemon
2013-05-11 15:23 ` bugzilla-daemon
2013-05-11 15:51 ` bugzilla-daemon
2013-05-11 16:11 ` bugzilla-daemon
2013-05-30 21:54 ` bugzilla-daemon
2013-05-30 21:55 ` bugzilla-daemon
2013-09-20 19:23 ` bugzilla-daemon
2013-09-21 23:39 ` bugzilla-daemon
2013-12-18 21:01 ` bugzilla-daemon
2013-12-18 21:08 ` bugzilla-daemon
2013-12-20 22:41 ` bugzilla-daemon
2013-12-20 22:44 ` bugzilla-daemon
2014-01-05 19:47 ` bugzilla-daemon
2014-01-05 22:02 ` bugzilla-daemon
2014-01-06 16:05 ` bugzilla-daemon
2014-01-06 16:07 ` bugzilla-daemon
2014-01-06 18:45 ` bugzilla-daemon
2014-01-28 21:45 ` bugzilla-daemon
2014-02-04 20:20 ` bugzilla-daemon
2014-02-04 20:21 ` bugzilla-daemon
2014-02-04 20:22 ` bugzilla-daemon
2015-02-25 21:22 ` bugzilla-daemon
2015-04-07 10:05 ` bugzilla-daemon [this message]
2015-04-07 16:03 ` bugzilla-daemon
2016-02-16 22:05 ` bugzilla-daemon
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=bug-29162-695-sIABNGZIU3@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@bugzilla.kernel.org \
--cc=reiserfs-devel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.