Antoine Pitrou pit...@free.fr added the comment:
Committed in r84489 (3.x), r84490 (3.1) and r84491 (2.7). Thank you!
--
resolution: - fixed
stage: patch review - committed/rejected
status: open - closed
versions: -Python 2.6
___
Python tracker
Nikolaus Rath nikol...@rath.org added the comment:
Does this patch still need review? Both Martin and Antoine already commented
that the patch is ok, so it'd be great if someone could actually apply it...
--
___
Python tracker rep...@bugs.python.org
Martin v. Löwis mar...@v.loewis.de added the comment:
I think the bug here is really in the application, which makes a system call to
fuse and the fuse callback in the same process. This isn't supported, and IMO
doesn't need to be. Python makes no promises that it will accept callbacks
while
Nikolaus Rath nikol...@rath.org added the comment:
The patch works fine for me too. Also, I did not discover any other such
problems for other syscalls (but I did not systematically try all os.*
functions).
--
___
Python tracker
Changes by Antoine Pitrou pit...@free.fr:
--
nosy: +loewis
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7736
___
___
Python-bugs-list mailing
Antoine Pitrou pit...@free.fr added the comment:
Releasing the GIL when calling C library functions (e.g. opendir()) is not a
requirement, it's just an optimization for slightly better multi-threading.
Also, as shown in the backtrace, PyGILState_Ensure() is called which should
only try to
Nikolaus Rath nikol...@rath.org added the comment:
In this simple example, FUSE does not fork and does not start any threads.
Note that PyGILState_Ensure() cannot do anything here. What happens is this:
- call_hello.py calls FUSE in a new thread, releasing the GIL.
- FUSE mounts the file
Antoine Pitrou pit...@free.fr added the comment:
Ah, thanks for the explanation. Yes indeed the patch looks ok for the
job. You should just be aware that similar problems may appear with
other system calls. I don't think we have ever considered that common C
calls such as opendir() could call
Nikolaus Rath nikol...@rath.org added the comment:
I have used both of them in the past, but in the end I wrote my own bindings
(currently only available as part of the http://code.google.com/p/s3ql source
code, but I intend to factor it out at some point),
since neither fuse.py
Nikolaus Rath nikol...@rath.org added the comment:
On 01/20/2010 07:19 AM, Antoine Pitrou wrote:
Ah, thanks for the explanation. Yes indeed the patch looks ok for the
job. You should just be aware that similar problems may appear with
other system calls. I don't think we have ever considered
Antoine Pitrou pit...@free.fr added the comment:
Well, now that I know what to look for, tracking down more of these
problems should be significantly faster and easier. Are you generally
going to accept similar patches for other unprotected syscalls?
Until now the rule of thumb was to
Marcin Bachry hegel...@gmail.com added the comment:
Still, I'd be extremly grateful if someone could tell me the trick how
to create a backtrace in such a deadlock situation
Sorry, I should have mentioned that. In order to get backtrace you let the
process freeze, attach gdb to it (it will
Changes by Nikolaus Rath nikol...@rath.org:
--
title: ctypes freezes/deadlocks process - os.listdir hangs since opendir() and
closedir() do not release GIL
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7736
Changes by Brian Curtin cur...@acm.org:
--
keywords: +needs review
nosy: +brian.curtin
priority: - normal
stage: - patch review
versions: +Python 3.2
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7736
14 matches
Mail list logo