Issue 8714: Delayed signals in the REPL on OpenBSD (possibly libpthread related) (original) (raw)

Created on 2010-05-14 16:26 by skrah, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (6)

msg105720 - (view)

Author: Stefan Krah (skrah) * (Python committer)

Date: 2010-05-14 16:26

On OpenBSD, SIGINT handling in the REPL is delayed until further input:

Python 2.7b2+ (trunk:81162, May 14 2010, 14:47:52) [GCC 3.3.5 (propolice)] on openbsd4 Type "help", "copyright", "credits" or "license" for more information.

<= here Ctrl-C is pressed but nothing appears Only after hitting a traceback appears: Traceback (most recent call last): File "", line 1, in KeyboardInterrupt

This behavior was introduced (exposed by?) r68460.

When Python is compiled without threads, the behavior is normal.

msg106124 - (view)

Author: Henry Precheur (henry.precheur)

Date: 2010-05-20 01:59

The bug is also present with Python 3.1 on OpenBSD 4.7-current.

msg140972 - (view)

Author: Charles-François Natali (neologix) * (Python committer)

Date: 2011-07-23 11:08

This behavior was introduced (exposed by?) r68460.

After a quick look, I don't see anything wrong with r68460, but it might very well have exposed this problem which was lurking before.

When Python is compiled without threads, the behavior is normal.

We've already had some problems - especially on *BSD - when mixing signals and threads (and it might be even worse on OpenBSD, since pthreads are implemented in user-space). However, IIUC, in this case you only have a single thread, right?

Could you post the output of an strace (well, ktrace on OpenBSD)? Is Python compiled with readline support?

msg141007 - (view)

Author: Stefan Krah (skrah) * (Python committer)

Date: 2011-07-23 19:25

I know, the OpenBSD libpthread has problems. I listed some possible candidates in #8712.

For instance:

http://www.openbsd.org/cgi-bin/cvsweb/checkout/ports/lang/python/2.6/patches/Attic/patch-Lib_test_test_signal_py?rev=1.3;content-type=text%2Fplain

The comment says: "siginterrupt not reliable (does not mix well with threading"

To answer your questions:

  1. Yes, there is only a single thread.

  2. I only have an old OpenBSD 4.5, so it's not so useful to test there; I know Philip Guenther fixed some libpthread problems in the meantime.

msg141012 - (view)

Author: Stefan Krah (skrah) * (Python committer)

Date: 2011-07-23 19:58

I forgot: readline support is enabled, and there are known problems:

http://marc.info/?t=128327329300003&r=1&w=2

msg180124 - (view)

Author: Stefan Krah (skrah) * (Python committer)

Date: 2013-01-17 12:13

Fixed in OpenBSD 5.2.

History

Date

User

Action

Args

2022-04-11 14:57:01

admin

set

github: 52960

2013-01-17 12:13:33

skrah

set

status: open -> closed
resolution: out of date
messages: +

2011-10-17 01:07:50

vstinner

set

nosy: + vstinner

2011-07-23 19:58:55

skrah

set

messages: +

2011-07-23 19:25:57

skrah

set

messages: +

2011-07-23 11:08:23

neologix

set

nosy: + neologix
messages: +

2010-05-20 02:09:01

henry.precheur

set

versions: + Python 3.1

2010-05-20 01:59:16

henry.precheur

set

messages: +

2010-05-14 16:26:02

skrah

create