This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Omer.Katz
Recipients Omer.Katz
Date 2014-12-02.23:16:33
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1417562194.55.0.557233180564.issue22985@psf.upfronthosting.co.za>
In-reply-to
Content
I have found what appears to be a segfualt in time.sleep but I'm not sure.
I have verified that the segfualt occurs both on Python 2.7.8 and 3.4.2.

The following program that reproduces the segfault uses my fork of billiard, a replacement for the multiprocessing module that is used by celery.

In order to install: pip install git+https://github.com/thedrow/billiard@topic/dill-with-threads

The program:
from billiard.pool import ThreadPool

p1 = ThreadPool()

class Foo(object):
    def a(self):
        print("a")
        return 1

    def do(self):
        return p1.apply_async(self.a)


foo = Foo()
r = foo.do()

print(r.get())
p1.close()
p1.join()

The output from gdb:
gdb -ex r -q --args python mt_example.py
Reading symbols from python...done.
Starting program: /home/omer/.virtualenvs/billiard/bin/python mt_example.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff31db700 (LWP 2897)]
[New Thread 0x7ffff29da700 (LWP 2898)]
[New Thread 0x7ffff21d9700 (LWP 2899)]
[New Thread 0x7ffff19d8700 (LWP 2900)]
[New Thread 0x7ffff11d7700 (LWP 2901)]
[New Thread 0x7ffff09d6700 (LWP 2902)]
[New Thread 0x7fffdbfff700 (LWP 2903)]

Program received signal SIGTERM, Terminated.
[Switching to Thread 0x7ffff21d9700 (LWP 2899)]
0x00007ffff71dc1c3 in select () at ../sysdeps/unix/syscall-template.S:81
81	../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0  0x00007ffff71dc1c3 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007ffff5fd5d5d in floatsleep (secs=<optimized out>) at Modules/timemodule.c:948
#2  time_sleep (self=<optimized out>, args=<optimized out>) at Modules/timemodule.c:206
#3  0x00000000004b658c in call_function (oparg=<optimized out>, pp_stack=0x7ffff21d8540) at Python/ceval.c:4033
#4  PyEval_EvalFrameEx (f=f@entry=0x7ffff463eda8, throwflag=throwflag@entry=0) at Python/ceval.c:2679
#5  0x00000000004b6f6b in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, 
    argcount=argcount@entry=4, kws=<optimized out>, kwcount=0, defs=0x7ffff40bab68, defcount=1, closure=0x0) at Python/ceval.c:3265
#6  0x00000000004b5b28 in fast_function (nk=<optimized out>, na=4, n=<optimized out>, pp_stack=0x7ffff21d8730, func=0x7ffff31e2938)
    at Python/ceval.c:4129
#7  call_function (oparg=<optimized out>, pp_stack=0x7ffff21d8730) at Python/ceval.c:4054
#8  PyEval_EvalFrameEx (f=f@entry=0x7fffe8000b50, throwflag=throwflag@entry=0) at Python/ceval.c:2679
#9  0x00000000004b6f6b in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, 
    argcount=argcount@entry=1, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3265
#10 0x00000000004b5b28 in fast_function (nk=<optimized out>, na=1, n=<optimized out>, pp_stack=0x7ffff21d8920, func=0x7ffff31e28c0)
    at Python/ceval.c:4129
#11 call_function (oparg=<optimized out>, pp_stack=0x7ffff21d8920) at Python/ceval.c:4054
#12 PyEval_EvalFrameEx (f=f@entry=0x7fffe8000910, throwflag=throwflag@entry=0) at Python/ceval.c:2679
#13 0x00000000004b5bc7 in fast_function (nk=<optimized out>, na=1, n=<optimized out>, pp_stack=0x7ffff21d8a70, func=0x7ffff7e55230)
---Type <return> to continue, or q <return> to quit---
    at Python/ceval.c:4119
#14 call_function (oparg=<optimized out>, pp_stack=0x7ffff21d8a70) at Python/ceval.c:4054
#15 PyEval_EvalFrameEx (f=f@entry=0x7ffff31f1210, throwflag=throwflag@entry=0) at Python/ceval.c:2679
#16 0x00000000004b6f6b in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=args@entry=0x7ffff31dca68, argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, 
    defcount=defcount@entry=0, closure=0x0) at Python/ceval.c:3265
#17 0x0000000000529e70 in function_call (func=0x7ffff7e55140, arg=0x7ffff31dca50, kw=0x0) at Objects/funcobject.c:526
#18 0x0000000000422f5a in PyObject_Call (func=func@entry=0x7ffff7e55140, arg=arg@entry=0x7ffff31dca50, kw=kw@entry=0x0)
    at Objects/abstract.c:2529
#19 0x000000000042747d in instancemethod_call (func=0x7ffff7e55140, arg=0x7ffff31dca50, kw=0x0) at Objects/classobject.c:2602
#20 0x0000000000422f5a in PyObject_Call (func=func@entry=0x7ffff4636d70, arg=arg@entry=0x7ffff7f93050, kw=<optimized out>)
    at Objects/abstract.c:2529
#21 0x00000000004b07f7 in PyEval_CallObjectWithKeywords (func=0x7ffff4636d70, arg=0x7ffff7f93050, kw=<optimized out>) at Python/ceval.c:3902
#22 0x00000000004fae92 in t_bootstrap (boot_raw=0x8899c0) at ./Modules/threadmodule.c:614
#23 0x00007ffff7bc40a5 in start_thread (arg=0x7ffff21d9700) at pthread_create.c:309
#24 0x00007ffff71e484d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
History
Date User Action Args
2014-12-02 23:16:34Omer.Katzsetrecipients: + Omer.Katz
2014-12-02 23:16:34Omer.Katzsetmessageid: <1417562194.55.0.557233180564.issue22985@psf.upfronthosting.co.za>
2014-12-02 23:16:34Omer.Katzlinkissue22985 messages
2014-12-02 23:16:33Omer.Katzcreate