Bug 815272 - qemu test suite fails on ARM
qemu test suite fails on ARM
Product: Fedora
Classification: Fedora
Component: qemu (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Fedora Virtualization Maintainers
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks: ARMTracker
  Show dependency treegraph
Reported: 2012-04-23 05:15 EDT by Peter Robinson
Modified: 2013-01-09 07:01 EST (History)
10 users (show)

See Also:
Fixed In Version: qemu-1.0-17.fc17
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-05-03 09:14:11 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Peter Robinson 2012-04-23 05:15:14 EDT
Release 6 has the following changes:

* Mon Feb 13 2012 Daniel P. Berrange <berrange@redhat.com> - 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:
Comment 1 Daniel Berrange 2012-04-23 05:27:12 EDT
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@redhat.com>
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
$ grep '/qemu-i486:$' qemu.binfmt
$ echo $?
Comment 2 Peter Robinson 2012-04-23 05:31:28 EDT
I'm not a qemu expert so you're likely right hence the bug report :)
Comment 3 Paolo Bonzini 2012-04-23 05:46:11 EDT
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 05:53:05 EDT
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 06:07:25 EDT
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 06:30:13 EDT
qemu-1.0-17.fc17 has been submitted as an update for Fedora 17.
Comment 7 Peter Robinson 2012-04-23 10:11:28 EDT
Still failing with release 17

Comment 8 Daniel Berrange 2012-04-23 10:15:35 EDT
Ok, but this is a completely different bug now:

+ make check
Running suite(s): QFloat test-suite
100%: Checks: 2, Failures: 0, Errors: 0
Running suite(s): QJSON test-suite
100%: Checks: 21, Failures: 0, Errors: 0
/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 11:56:05 EDT
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-23 23:16:54 EDT
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:
then log in and leave karma (feedback).
Comment 11 Fedora Update System 2012-05-02 00:47:53 EDT
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 02:56:22 EDT
This still isn't fixed in that qemu is still fails to build on ARM
Comment 13 Peter Robinson 2012-05-03 09:14:11 EDT
It built later on, not sure what changed.

Note You need to log in before you can comment on or make changes to this bug.