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