Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 998722

Summary: qemu 1.6.0-1.fc20 on *i686* is very broken: undefined symbol: rbd_aio_flush
Product: [Fedora] Fedora Reporter: Richard W.M. Jones <rjones>
Component: qemuAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: amit.shah, berrange, cfergeau, dwmw2, itamar, pbonzini, rjones, scottt.tw, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-20 14:18:03 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: 910269    

Description Richard W.M. Jones 2013-08-19 21:40:18 UTC
Description of problem:

All qemu *i686* binaries are broken.  They all say:

$ qemu-system-i386 --help
qemu-system-i386: symbol lookup error: qemu-system-i386: undefined symbol: rbd_aio_flush

Version-Release number of selected component (if applicable):

qemu-system-x86-1.6.0-1.fc20.i686

How reproducible:

100%

Steps to Reproduce:
1. Run any qemu binary.

Comment 1 Daniel Berrangé 2013-08-20 11:47:25 UTC
What is odd here is that I can see qemu linking to librbd.so.1, and I can also see that librbd.so.1 exports rbd_aio_flush ! 

$ ldd ./usr/bin/qemu-system-i386  | grep rbd
	librbd.so.1 => not found

(ignore the 'not found' message here)

$ rpm2cpio ../ceph-libs-0.61.7-2.fc20.i686.rpm  | cpio -idmv 
./usr/lib/librados.so.2
./usr/lib/librados.so.2.0.0
./usr/lib/librbd.so.1
./usr/lib/librbd.so.1.0.0
...snip...
9648 blocks
$ nm -a -D .//usr/lib/librbd.so.1 | grep rbd_aio_flush
000192e0 T rbd_aio_flush

Comment 2 Richard W.M. Jones 2013-08-20 11:50:41 UTC
I tried building this locally on a fully up to date Rawhide
32 bit VM, and it built the binary fine.  So I just bumped the
release number and tried a Koji build.

http://koji.fedoraproject.org/koji/taskinfo?taskID=5832553

I also added qemu-system-x86_64 -help into the %build section,
which ought to catch outright build brokenness in future.
Full change is here:

http://pkgs.fedoraproject.org/cgit/qemu.git/commit/?id=64e123aeee810a6d5d5de36ac064c483b67869e9

Comment 3 Richard W.M. Jones 2013-08-20 11:55:19 UTC
(In reply to Daniel Berrange from comment #1)
> What is odd here is that I can see qemu linking to librbd.so.1, and I can
> also see that librbd.so.1 exports rbd_aio_flush ! 
> 
> $ ldd ./usr/bin/qemu-system-i386  | grep rbd
> 	librbd.so.1 => not found
> 
> (ignore the 'not found' message here)
> 
> $ rpm2cpio ../ceph-libs-0.61.7-2.fc20.i686.rpm  | cpio -idmv 
> ./usr/lib/librados.so.2
> ./usr/lib/librados.so.2.0.0
> ./usr/lib/librbd.so.1
> ./usr/lib/librbd.so.1.0.0
> ...snip...
> 9648 blocks
> $ nm -a -D .//usr/lib/librbd.so.1 | grep rbd_aio_flush
> 000192e0 T rbd_aio_flush

On an actual machine:

$ ldd /usr/bin/qemu-system-x86_64 | grep rbd.so
	librbd.so.1 => /usr/lib/librbd.so.1 (0xb6849000)
$ rpm -qf /usr/lib/librbd.so.1
ceph-libs-0.56.4-1.fc20.i686
ceph-devel-0.56.4-1.fc20.i686

[erm, what?]

There is, however, a new ceph-libs available -- just this
morning.  It wasn't available in either Koji or regular Rawhide
installs until this morning, so perhaps there was a Rawhide
compose failure?

Anyway:

$ sudo yum install ceph-libs
[...]
================================================================================
 Package                     Arch       Version             Repository     Size
================================================================================
Updating:
 ceph-devel                  i686       0.61.7-2.fc20       rawhide       272 k
Installing for dependencies:
 boost-program-options       i686       1.54.0-2.fc20       rawhide       145 k
Updating for dependencies:
 boost-system                i686       1.54.0-2.fc20       rawhide        37 k
 boost-thread                i686       1.54.0-2.fc20       rawhide        56 k
 ceph                        i686       0.61.7-2.fc20       rawhide        12 M
 ceph-libcephfs              i686       0.61.7-2.fc20       rawhide       1.3 M
 ceph-libs                   i686       0.61.7-2.fc20       rawhide       1.4 M
 liborcus                    i686       0.5.1-5.fc20        rawhide       204 k

Transaction Summary
================================================================================
Install             ( 1 Dependent package)
Upgrade  1 Package  (+6 Dependent packages)
[...]

And now qemu works.

Comment 4 Richard W.M. Jones 2013-08-20 11:56:31 UTC
Will close this CLOSED -> RAWHIDE if the build in comment 2 works.

Comment 5 Richard W.M. Jones 2013-08-20 14:18:03 UTC
This one is built and works for me now (you have to also
update ceph-libs):

http://koji.fedoraproject.org/koji/taskinfo?taskID=5832553