Bug 815272 - qemu test suite fails on ARM
Summary: qemu test suite fails on ARM
Alias: None
Product: Fedora
Classification: Fedora
Component: qemu
Version: 17
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Fedora Virtualization Maintainers
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: ARMTracker
TreeView+ depends on / blocked
Reported: 2012-04-23 09:15 UTC by Peter Robinson
Modified: 2013-01-09 12:01 UTC (History)
10 users (show)

Fixed In Version: qemu-1.0-17.fc17
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2012-05-03 13:14:11 UTC
Type: Bug

Attachments (Terms of Use)

Description Peter Robinson 2012-04-23 09:15:14 UTC
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 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@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 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.

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


Comment 8 Daniel Berrangé 2012-04-23 14:15:35 UTC
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 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:
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.

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