Unable to generate core files with s390x or ppc64le

Hi-
I am investigating a program that segfaults only when run in the travis environment (it runs ok outside of travis :(. I would like for the system to generate a core file to gather debug information. This works great on amd64 and arm64 but ppc64le and s390x do not generate core files. Here is an example showing a test of all 4 archs. My program is written to always segfault.

https://travis-ci.org/djlwilder/TravisSegfaultDebug/builds/632498995

I think the problem is with the setting of: /proc/sys/kernel/core_pattern

AMD 64: (works ok)
$ cat /proc/sys/kernel/core_pattern
/usr/share/apport/apport %p %s %c %d %P

Arm64: (works ok)
$ cat /proc/sys/kernel/core_pattern
0
core

S390x and ppc64le are not generating core files.
cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c %d %P

I know very little about apport, but my guess is:

  • arm64, ppc64le and s390x all run in containers.
  • amd64 runs in a VM.
  • /proc/sys/kernel/core_pattern is set by the host os or VM, It cant be set by an unprivileged container.
  • ppc64le and s390x VMs (or host where the containers are hosted) have apport installed (?), therefor if the cores are generated apport is storing them on the host filesystem where the container can’t access them (?).
  • Since core_pattern on arm64 is configured to “core” the core file is created in the pwd.
2 Likes