qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation
@ 2012-10-19 23:22 Bugdal
  2012-10-19 23:25 ` [Qemu-devel] [Bug 1068900] " Bugdal
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Bugdal @ 2012-10-19 23:22 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

Thread cancellation (and certain other implementation-internal things
such as set*id() and timers) are implemented in userspace on Linux by
stealing a couple of the realtime signals for internal use by the
implementation, leaving them unavailable to applications. Unfortunately,
this bites qemu application-level emulation when the application being
run uses thread cancellation or other features that need such signals.
The signal handler is unable to be set (because sigaction on the host
rejects the signal numbers) and attempts to send the signals result in
it being received not by the emulated application code, but by the
libc/libpthread code on which qemu is running; this in turn seems to
cause qemu to crash.

The best solution I can think of is for qemu to steal one of the
realtime signals for its own use, and multiplex signal numbers outside
the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
top of this stolen signal. This would both allow cancellation to work,
and would allow applications the full range of realtime signals when the
guest has more signals than the host (e.g. MIPS running on x86 host).

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  New

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
@ 2012-10-19 23:25 ` Bugdal
  2012-10-20 19:36 ` Aurelien Jarno
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Bugdal @ 2012-10-19 23:25 UTC (permalink / raw)
  To: qemu-devel

Patch for the issue is available here:

https://lists.eait.uq.edu.au/pipermail/microblaze-
linux/2012-October/005760.html

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  New

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
  2012-10-19 23:25 ` [Qemu-devel] [Bug 1068900] " Bugdal
@ 2012-10-20 19:36 ` Aurelien Jarno
  2012-10-20 19:59 ` Bugdal
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Aurelien Jarno @ 2012-10-20 19:36 UTC (permalink / raw)
  To: qemu-devel

** Changed in: qemu
       Status: New => Fix Committed

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  Fix Committed

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
  2012-10-19 23:25 ` [Qemu-devel] [Bug 1068900] " Bugdal
  2012-10-20 19:36 ` Aurelien Jarno
@ 2012-10-20 19:59 ` Bugdal
  2012-10-21  0:28 ` Aurelien Jarno
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Bugdal @ 2012-10-20 19:59 UTC (permalink / raw)
  To: qemu-devel

Arg, somehow I added the above comment on the wrong bug. Thus bug is not
fixed. The other bug report I recently filed was fixed.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  Fix Committed

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
                   ` (2 preceding siblings ...)
  2012-10-20 19:59 ` Bugdal
@ 2012-10-21  0:28 ` Aurelien Jarno
  2016-12-16  9:14 ` Thomas Huth
  2017-02-15  4:17 ` Launchpad Bug Tracker
  5 siblings, 0 replies; 7+ messages in thread
From: Aurelien Jarno @ 2012-10-21  0:28 UTC (permalink / raw)
  To: qemu-devel

** Changed in: qemu
       Status: Fix Committed => New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  New

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
                   ` (3 preceding siblings ...)
  2012-10-21  0:28 ` Aurelien Jarno
@ 2016-12-16  9:14 ` Thomas Huth
  2017-02-15  4:17 ` Launchpad Bug Tracker
  5 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2016-12-16  9:14 UTC (permalink / raw)
  To: qemu-devel

The URL from comment #1 is unfortunately not valid anymore. If this
issue is still pending, could you please post your patch again to the
qemu-devel mailing list to get it discussed and included? Thanks!

** Changed in: qemu
       Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  Incomplete

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [Bug 1068900] Re: Thread cancellation broken in app-level emulation
  2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
                   ` (4 preceding siblings ...)
  2016-12-16  9:14 ` Thomas Huth
@ 2017-02-15  4:17 ` Launchpad Bug Tracker
  5 siblings, 0 replies; 7+ messages in thread
From: Launchpad Bug Tracker @ 2017-02-15  4:17 UTC (permalink / raw)
  To: qemu-devel

[Expired for QEMU because there has been no activity for 60 days.]

** Changed in: qemu
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1068900

Title:
  Thread cancellation broken in app-level emulation

Status in QEMU:
  Expired

Bug description:
  Thread cancellation (and certain other implementation-internal things
  such as set*id() and timers) are implemented in userspace on Linux by
  stealing a couple of the realtime signals for internal use by the
  implementation, leaving them unavailable to applications.
  Unfortunately, this bites qemu application-level emulation when the
  application being run uses thread cancellation or other features that
  need such signals. The signal handler is unable to be set (because
  sigaction on the host rejects the signal numbers) and attempts to send
  the signals result in it being received not by the emulated
  application code, but by the libc/libpthread code on which qemu is
  running; this in turn seems to cause qemu to crash.

  The best solution I can think of is for qemu to steal one of the
  realtime signals for its own use, and multiplex signal numbers outside
  the range SIGRTMIN..SIGRTMAX, as well as the stolen signal itself, on
  top of this stolen signal. This would both allow cancellation to work,
  and would allow applications the full range of realtime signals when
  the guest has more signals than the host (e.g. MIPS running on x86
  host).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1068900/+subscriptions

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-02-15  4:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-19 23:22 [Qemu-devel] [Bug 1068900] [NEW] Thread cancellation broken in app-level emulation Bugdal
2012-10-19 23:25 ` [Qemu-devel] [Bug 1068900] " Bugdal
2012-10-20 19:36 ` Aurelien Jarno
2012-10-20 19:59 ` Bugdal
2012-10-21  0:28 ` Aurelien Jarno
2016-12-16  9:14 ` Thomas Huth
2017-02-15  4:17 ` Launchpad Bug Tracker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).