From: Ove Kaaven <ovek@transgaming.com>
To: linux-kernel@vger.kernel.org
Subject: PROBLEM: SysV semaphore race vs SIGSTOP
Date: Fri, 28 Jan 2005 17:55:50 -0500 [thread overview]
Message-ID: <1106952950.15901.47.camel@renegade> (raw)
There seem to be a race when SIGSTOP-ing a process waiting for a SysV
semaphore. Even if it could not possibly have owned the semaphore when
the signal was sent (because the sender of the signal owned it at the
time), it still occasionally happens that it both stops execution *and*
acquires the semaphore, with a deadlocked application as the result.
This is a problem for some of the high-performance stuff I'm working on.
A sample test program exhibiting the problem is available at
http://www.ping.uio.no/~ovehk/sembug.c
For me, it will show "ACQUIRE FAILED!! DEADLOCK!!" almost every time I
run it. Occasionally it will run fine; if it does for you, just try
again a couple of times.
The kernel I currently use is:
Linux version 2.4.27-1-k7 (horms@tabatha.lab.ultramonkey.org) (gcc
version 3.3.5 (Debian 1:3.3.5-2)) #1 Wed Dec 1 20:12:01 JST 2004
and I run it on a uniprocessor system (AMD Athlon, 1.9GHz) with Debian
"sid" installed.
I'm not a kernel hacker, but from a quick peruse of the 2.4 code, it
didn't seem to me like the semaphore code in the kernel (ipc/sem.c) even
try to handle suspended threads (though I wouldn't know how to do so).
The 2.6 semaphore code looked almost the same to me, too, so it might be
a problem there as well.
Please Cc me on any questions or comments, since I am too wimpy to
subscribe yet.
next reply other threads:[~2005-01-28 22:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-28 22:55 Ove Kaaven [this message]
2005-02-01 3:52 ` PATCH: SysV semaphore race vs SIGSTOP Ove Kaaven
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=1106952950.15901.47.camel@renegade \
--to=ovek@transgaming.com \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox