Bug 1339628

Summary: Multiple unhandled syscalls when running systemd under valgrind in nspawn on aarch64
Product: Red Hat Enterprise Linux 7 Reporter: Frantisek Sumsal <fsumsal>
Component: valgrindAssignee: Mark Wielaard <mjw>
Status: CLOSED ERRATA QA Contact: Miloš Prchlík <mprchlik>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.2CC: jakub, mbenitez, mcermak, mjw, mprchlik, ohudlick, qe-baseos-tools-bugs
Target Milestone: rc   
Target Release: ---   
Hardware: aarch64   
OS: Unspecified   
Whiteboard:
Fixed In Version: valgrind-3.11.0-22.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1339609 Environment:
Last Closed: 2016-11-04 02:56:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Valgrind log from aarch64 machine none

Description Frantisek Sumsal 2016-05-25 13:20:57 UTC
Created attachment 1161423 [details]
Valgrind log from aarch64 machine

When running systemd under valgrind in nspawn container, on some architectures (ppc64, ppc64le and aarch64) boot process ends with an error due to unhandled syscalls. Running systemd without valgrind works as expected.

Version-Release number of selected component (if applicable):
valgrind-3.10.0-16.el7.aarch64

How reproducible:
## Create a minimal nspawn container
# mkdir vm
# yum -y --nogpgcheck --installroot $PWD/vm groupinstall minimal
# cp -f /etc/yum.repos.d/* vm/etc/yum.repos.d/
# yum -y --nogpgcheck --installroot $PWD/vm install valgrind
## Run systemd under valgrind in nspawn container
# systemd-nspawn -D vm/ valgrind --leak-check=full --log-file=valgrind.log /usr/lib/systemd/systemd

Actual results:
Boot process ends with an error:
Failed to enable ctrl-alt-del handling: Function not implemented
Failed to wait for system-generators: Function not implemented
...
Failed to run main loop: Function not implemented
[!!!!!!] Failed to run main loop, freezing.

Expected results:
Container should boot successfully as tested on x86_64 and s390x architectures.

Additional info:
Valgrind log with unhandled syscalls is included in the attachment.

Comment 1 Mark Wielaard 2016-05-25 13:54:18 UTC
The specific aarch64 syscalls mentioned in the attachment are:

WARNING: unhandled syscall: 142 (reboot)
WARNING: unhandled syscall: 264 (name_to_handle_at)
WARNING: unhandled syscall: 278 (getrandom)
WARNING: unhandled syscall: 81 (sync)
WARNING: unhandled syscall: 95 (waitid)

sync and waitid are already implemented upstream and backported to the valgrind-3.11.0 package. name_to_handle_at and getrandom are implemented on other arches and should be easy to enable for aarch64 too. reboot isn't implemented anywhere yet.

Comment 2 Mark Wielaard 2016-05-30 13:43:30 UTC
getrandom also was already implemented upstream and should already be in 3.11.0.
That just leaves name_to_handle_at.

Comment 3 Mark Wielaard 2016-05-30 14:20:19 UTC
Fixed upstream as valgrind svn r15887.

Comment 7 Miloš Prchlík 2016-06-08 12:05:40 UTC
Verified for build valgrind-3.11.0-22.el7.

Comment 9 errata-xmlrpc 2016-11-04 02:56:26 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2297.html