qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <1895305@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: [Bug 1895305] Re: pthread_cancel fails with "RT33" with musl libc
Date: Tue, 27 Apr 2021 04:20:59 -0000	[thread overview]
Message-ID: <161949725965.4401.18129197045610568045.malone@gac.canonical.com> (raw)
In-Reply-To: 159983459206.747.8861900115459003190.malonedeb@chaenomeles.canonical.com

Ok, thanks, since this was a regressin in Alpine, I'm marking the bug as
closed here.

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

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

Title:
  pthread_cancel fails with "RT33" with musl libc

Status in QEMU:
  Invalid

Bug description:
  From my testing it seems that QEMU built against musl libc crashes on
  pthread_cancel cancel calls - if the binary is also built with musl
  libc.

  Minimal sample:

  #include <pthread.h>
  #include <stdio.h>
  #include <unistd.h>
  void* threadfunc(void* ignored) {
  	while (1) {
  		pause();
  	}
  	return NULL;
  }
  int main() {
  	pthread_t thread;
  	pthread_create(&thread, NULL, &threadfunc, NULL);
  	sleep(1);
  	pthread_cancel(thread);
  	printf("OK, alive\n");
  }

  In an Alpine Linux aarch64 chroot (on an x86_64 host) the binary will
  just output RT33 and has exit code 161.

  Using qemu-aarch64 on an x86_64 host results in the output (fish shell)
    fish: “qemu-aarch64-static ./musl-stat…” terminated by signal Unknown (Unknown)
  or (bash)
    Real-time signal 2

  and exit code 164.

  It doesn't matter whether the binary is linked dynamically or static.
  You can see my test results in the following table:

  |                      | QEMU glibc | QEMU musl |
  |----------------------|------------|-----------|
  | binary glibc dynamic | ✓          | ✓         |
  | binary glibc static  | ✓          | ✓         |
  | binary musl dynamic  | ✓          | ✗         |
  | binary musl static   | ✓          | ✗         |

  Both QEMU builds are v5.1.0 (glibc v2.32 / musl v1.2.1)

  I've uploaded all my compile and test commands (plus a script to
  conveniently run them all) to https://github.com/z3ntu/qemu-
  pthread_cancel . It also includes the built binaries if needed. The
  test script output can be found at https://github.com/z3ntu/qemu-
  pthread_cancel/blob/master/results.txt

  Further links:
  - https://gitlab.com/postmarketOS/pmaports/-/issues/190#note_141902075
  - https://gitlab.com/postmarketOS/pmbootstrap/-/issues/1970

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


      parent reply	other threads:[~2021-04-27  4:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 14:29 [Bug 1895305] [NEW] pthread_cancel fails with "RT33" with musl libc Luca Weiss
2020-09-11 14:54 ` [Bug 1895305] " Laurent Vivier
2021-04-26  8:54 ` Ariadne Conill
2021-04-27  4:20 ` Thomas Huth [this message]

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=161949725965.4401.18129197045610568045.malone@gac.canonical.com \
    --to=1895305@bugs.launchpad.net \
    --cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).