stress-ng mmap failing on zVM and LPAR
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
stress-ng (Ubuntu) |
Fix Released
|
High
|
Colin Ian King | ||
Xenial |
Fix Released
|
High
|
Colin Ian King |
Bug Description
[SRU, Xenial]
When running stress-ng on zVM and LPAR we are hitting SIGBUS errors because we have a sparsely allocated mmap'd backing file which due to over commit and a full file system causes pages not to be mapped in and causes memory accesses on unbacked pages to trigger a SIGBUS.
[REPRODUCER + FIX]
Run stress-ng --mmap 64 --maximize on a filesystem that is very nearly full and the SIGBUS triggers and the stressor exits early with SIGBUS. With the fix, the SIGBUS is caught and the stressor can continue without premature early exit.
[REGRESSION POTENTIAL]
I am requesting syncing with 0.05.24 micro release as this contains the fix plus a few SIGSEGV stack trapping fixes. stress-ng is a universe leaf project and the fixes touch just a few of the stress tests. These have been regression checked on various architectures and the code passes static analysis on cppcheck, CoverityScan and clang's scan-build, so regression potential is minimal.
-------
Running stress-ng on s390 in all three modes. This seems to work ok in z/KVM, however, on zVM and LPAR as of a few days ago on Xenial the mmap stressor has started failing.
I tried to get detailed logs but either don't know the correct switches or they simply aren't there.
Here is the output when I used --log-file and --verbose on an LPAR:
root@s1lp10-
stress-ng: debug: [179421] 4 processors online, 4 processors configured
stress-ng: info: [179421] dispatching hogs: 4 mmap
stress-ng: debug: [179421] cache allocate: reducing cache level from L3 (too high) to L2
stress-ng: info: [179421] cache allocate: default cache size: 2048K
stress-ng: debug: [179421] starting stressors
stress-ng: debug: [179422] stress-ng-mmap: started [179422] (instance 0)
stress-ng: debug: [179423] stress-ng-mmap: started [179423] (instance 1)
stress-ng: debug: [179424] stress-ng-mmap: started [179424] (instance 2)
stress-ng: debug: [179421] 4 stressors spawned
stress-ng: debug: [179425] stress-ng-mmap: started [179425] (instance 3)
stress-ng: debug: [179424] stress-ng-mmap: exited [179424] (instance 2)
stress-ng: debug: [179422] stress-ng-mmap: exited [179422] (instance 0)
stress-ng: debug: [179421] process [179422] terminated
stress-ng: debug: [179421] process 179423 (stress-ng-mmap) terminated on signal: 7 (Bus error)
stress-ng: debug: [179421] process [179423] terminated
stress-ng: debug: [179421] process [179424] terminated
stress-ng: debug: [179421] process 179425 (stress-ng-mmap) terminated on signal: 7 (Bus error)
stress-ng: debug: [179421] process [179425] terminated
stress-ng: info: [179421] unsuccessful run completed in 300.68s (5 mins, 0.68 secs)
That is the only info I have for the failure, unfortunately.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: stress-ng 0.05.23-1
ProcVersionSign
Uname: Linux 4.4.0-18-generic s390x
ApportVersion: 2.20.1-0ubuntu1
Architecture: s390x
Date: Tue Apr 12 12:47:49 2016
ProcEnviron:
TERM=screen
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: stress-ng
UpgradeStatus: No upgrade log present (probably fresh install)
tags: | added: blocks-hwcert-server |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in stress-ng (Ubuntu Xenial): | |
importance: | Undecided → High |
assignee: | nobody → Colin Ian King (colin-king) |
status: | New → In Progress |
This is the command line used: ng-mmap- fail.log --mmap 0
stress-ng --aggressive --verbose -t 300 --log-file stress-