powerpc segfault on exponential of negative in python

Bug #1871451 reported by Jakub Kaczmarzyk
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-images
Invalid
Undecided
Unassigned
python3-defaults (Ubuntu)
New
Undecided
Unassigned
qemu (Ubuntu)
Incomplete
Undecided
Unassigned

Bug Description

When calculating the exponential of a negative number in python 3.6 with the Ubuntu 18.04 Docker image (ppcle64), I receive a segfault.

```
python3 -c "import math; math.exp(-1)"
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault
```

I am running this in Docker on macOS. Here are the steps to reproduce the error.

```
docker run --rm -it --platform linux/ppc64le ubuntu:18.04
apt-get update -qq && apt-get install -y -qq python3
python3 -c "import math; print(math.exp(0))" # 1.0
python3 -c "import math; print(math.exp(-0))" # 1.0
python3 -c "import math; print(math.exp(1))" # 2.718281828459045
python3 -c "import math; print(math.exp(-1))"
```

This error does not happen when using the debian:10 or alpine images.

Here is the output of docker version on my machine:

```
Client: Docker Engine - Community
 Version: 19.03.8
 API version: 1.40
 Go version: go1.12.17
 Git commit: afacb8b
 Built: Wed Mar 11 01:21:11 2020
 OS/Arch: darwin/amd64
 Experimental: true

Server: Docker Engine - Community
 Engine:
  Version: 19.03.8
  API version: 1.40 (minimum version 1.12)
  Go version: go1.12.17
  Git commit: afacb8b
  Built: Wed Mar 11 01:29:16 2020
  OS/Arch: linux/amd64
  Experimental: true
 containerd:
  Version: v1.2.13
  GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version: 1.0.0-rc10
  GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version: 0.18.0
  GitCommit: fec3683
```

Cross-posted to StackOverflow: https://stackoverflow.com/questions/61084969/python-segfault-calculating-exponential-of-negative-ppc64le

information type: Public → Public Security
information type: Public Security → Public
description: updated
Revision history for this message
Daniel Axtens (daxtens) wrote :

Hi,

I tested this on a real ppc64le machine:

root@1325f5985861:/# python3 -c "import math; print(math.exp(-1))"
0.36787944117144233
root@1325f5985861:/# uname -a
Linux 1325f5985861 5.4.0-21-generic #25+lp1866909v202004031128-Ubuntu SMP Fri Apr 3 18:38:30 UTC 202 ppc64le ppc64le ppc64le GNU/Linux

It looks like it's a qemu bug.

Revision history for this message
Jakub Kaczmarzyk (kaczmarj) wrote :

Thank you. I have posted this as an issue on moby/qemu https://github.com/moby/qemu/issues/10

Revision history for this message
Robert C Jennings (rcj) wrote :

This would be an issue for the package, I will close the track for cloud-images.

Changed in cloud-images:
status: New → Invalid
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Hi,
to be sure - this is qemu-tcg (emulation) for ppc64 right?

We hit quite some issues when glibc added new instructions, that qemu-tcg could not run it anymore. Newer qemu fixed that just to see 20.04 added even more instrcutions that now fail now. But the lessons learned is that TCG on ppc64 is often a bit behind, so trying the very latest qemu often helps.

Which qemu did you use - I assume just the one of 18.04.
If you can try the builds from Ubuntu cloud archive which are for 18.04:
$ add-apt-repository cloud-archive:ussuri-proposed

Changed in qemu (Ubuntu):
status: New → Incomplete
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Oh I just read "Docker on Mac" plus the qemulation layer I assume through qemu-static, but it even isn't "our" qemu of Ubuntu then :-/

Not sure what to suggest, but just generally doe this trigger with all qemu's?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.