Bug 815272

Summary: qemu test suite fails on ARM
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: qemuAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17CC: amit.shah, berrange, cfergeau, dwmw2, ehabkost, itamar, knoel, pbonzini, scottt.tw, virt-maint
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-1.0-17.fc17 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-05-03 13:14:11 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:
Bug Depends On:    
Bug Blocks: 245418    

Description Peter Robinson 2012-04-23 09:15:14 UTC
Release 6 has the following changes:

* Mon Feb 13 2012 Daniel P. Berrange <berrange> - 2:1.0-6 - Add many more missing BRs for misc QEMU features - Enable running of test suite during build

Ever since it's failed to build on ARM. It looks like there might be some x86 specific tests but as qemu emulates many different architectures it could well be that I'm just looking at that wrong.

+ for i in dummy qemu-i386 qemu-i486 qemu-alpha qemu-arm qemu-armeb qemu-mips qemu-mipsn32 qemu-mips64 qemu-mipsel qemu-mipsn32el qemu-mips64el qemu-m68k qemu-ppc qemu-sparc qemu-s390x qemu-sh4 qemu-sh4eb
+ test qemu-i486 = dummy
+ grep '/qemu-i486:$' /builddir/build/SOURCES/qemu.binfmt
error: Bad exit status from /var/tmp/rpm-tmp.7oNCeN (%install)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.7oNCeN (%install)
Child return code was: 1

qemu-1.0-15.fc17 failed build:
http://arm.koji.fedoraproject.org/taskinfo?taskID=753593

Comment 1 Daniel Berrangé 2012-04-23 09:27:12 UTC
I don't see how that quoted changeset can cause the failure shown in koji, since the code that's failing is completely unrelated. I think the problem is rather caused by this

commit a96ffe838d1b3a665eb26baf561f122ba1dbb040
Author: Paolo Bonzini <pbonzini>
Date:   Mon Apr 2 12:21:38 2012 +0200

    update qemu.binfmt from upstream


The grep rule is looking for a match at the end of the line, but the i486 is onyl at the start of the line:

$ grep '/qemu-i386:$' qemu.binfmt
:qemu-i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:
:qemu-i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:
$ grep '/qemu-i486:$' qemu.binfmt
$ echo $?
1

Comment 2 Peter Robinson 2012-04-23 09:31:28 UTC
I'm not a qemu expert so you're likely right hence the bug report :)

Comment 3 Paolo Bonzini 2012-04-23 09:46:11 UTC
Is the ARM builder configured differently in some respect?  Like it executes install scriptlets with "set -e" and koji.fedoraproject.org does not?

I fixed this in 1.0-17.fc17, but it would be great if you could find a minimal reproducer and a root cause, so I'm not closing the bug yet.  (The component should probably be changed though).

Comment 4 Peter Robinson 2012-04-23 09:53:05 UTC
No, it should execute everything the same way on all platforms. The only difference should be 1) compiler options and flags that are platform specific 2) any missing packages on ARM (there's not that many). In general the experience in koji should be identical.

Comment 5 Paolo Bonzini 2012-04-23 10:07:25 UTC
Doh, the obvious difference is that qemu-i386 binfmt support is only added on non-x86 architectures.

Comment 6 Fedora Update System 2012-04-23 10:30:13 UTC
qemu-1.0-17.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/qemu-1.0-17.fc17

Comment 7 Peter Robinson 2012-04-23 14:11:28 UTC
Still failing with release 17

http://arm.koji.fedoraproject.org/taskinfo?taskID=755292

Comment 8 Daniel Berrangé 2012-04-23 14:15:35 UTC
Ok, but this is a completely different bug now:

+ make check
./check-qfloat
Running suite(s): QFloat test-suite
100%: Checks: 2, Failures: 0, Errors: 0
./check-qjson
Running suite(s): QJSON test-suite
100%: Checks: 21, Failures: 0, Errors: 0
./test-coroutine
/basic/lifecycle: make: *** [run-check-test-coroutine] Aborted
error: Bad exit status from /var/tmp/rpm-tmp.tXrFn6 (%check)

There's a chance this test suite is flawed, but my money is on QEMU's coroutine impl being broken on Arm.

I don't have easy access to any Arm hardware, so can you do a manual build of QEMU and then run 'test-coroutine' under GDB and capture a full stack trace

Comment 9 Paolo Bonzini 2012-04-23 15:56:05 UTC
These commits are needed:

commit fe91bfa8a26832cc07a6b74b8decfb687499caee
    coroutine: adding configure option for sigaltstack coroutine backend

commit 519175a2fdfd3766f99bc29f0b199e23d57a3dd2
    coroutine: adding configure choose mechanism for coroutine backend

commit 3194c8ceeba06c3b54621ea7afd6879bc50c2d1d
    coroutine: adding sigaltstack method (.c source)
    

Plus you need to configure with --with-coroutine=sigaltstack (only needed on ARM only, but if build passes we can do it for x86 too, the performance penalty is small).

Comment 10 Fedora Update System 2012-04-24 03:16:54 UTC
Package qemu-1.0-17.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing qemu-1.0-17.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-6457/qemu-1.0-17.fc17
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2012-05-02 04:47:53 UTC
qemu-1.0-17.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Peter Robinson 2012-05-02 06:56:22 UTC
This still isn't fixed in that qemu is still fails to build on ARM

Comment 13 Peter Robinson 2012-05-03 13:14:11 UTC
It built later on, not sure what changed.