Bug 133253 - libaio backwards compatibility severely broken
libaio backwards compatibility severely broken
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: libaio (Show other bugs)
3
All Linux
medium Severity high
: ---
: ---
Assigned To: Jeffrey Moyer
:
Depends On:
Blocks: FC3Blocker 134551
  Show dependency treegraph
 
Reported: 2004-09-22 15:07 EDT by Joel Becker
Modified: 2007-11-30 17:10 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-04-03 18:12:10 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Joel Becker 2004-09-22 15:07:23 EDT
Description of problem:
libaio 0.3.98 and above return -1 and set errno upon return from the
io_* system calls.  libaio 0.3.96 and below returned -errno.  This is
an ABI breakage that affects all previously built users of the
library, as no symbol version or .so version has changed.

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

How reproducible:
Every time.  All users see errors of EPERM (-1).

Additional info:
The right answer would have been to bump the .so version, or better,
leave the non-errno-hampered calling convention.
Comment 1 Jeffrey Moyer 2004-09-22 18:48:56 EDT
I will address this as soon as possible.

Thanks.
Comment 2 Joel Becker 2004-09-22 19:45:38 EDT
Fair enough, but please let us in on the discussion regarding this. 
We have to deal with Oracle compatibility as well.
Comment 3 Jeffrey Moyer 2004-10-14 12:43:57 EDT
I've just built a new version of libaio into fc3 which should address
this issue: libaio-0.3.102-1.  You can get this version and build it
from CVS if you want to test it early:

cvs -d :pserver:anonymous@rhlinux.redhat.com:/usr/local/CVS co libaio

I built and did simple regression tests on i386, x86_64, ia64, s390,
s390x, ppc64pseries.

To be clear, the agreed-upon solution was to change back to the old
behaviour of returning -errno.
Comment 4 Jay Turner 2004-10-18 07:08:43 EDT
Oracle, is this new version of the libaio packages working for you in
your testing?
Comment 5 Jay Turner 2004-10-26 07:42:43 EDT
libaio-0.3.102-1 is included in the latest RHEL4 beta trees, so I'm
closing this bug due to not hearing anything back from Oracle.  If an
issue still remains, please reopen this bug.
Comment 6 Joel Becker 2005-01-19 14:54:27 EST
It would appear that the soname for the package has changed.  This
means that the file-based dependancies for the package list

libaio.so.1.0.0

instead of

libaio.so.1

This causes problems both for installing packages that have a
find-requires dependancy on libaio.so.1 and for running programs that
have libaio.so.1 in their dynamic headers.  Any program compiled
against the older version will have fun issues.
Comment 7 Van Okamura 2005-01-19 16:48:33 EST
Opened bug 145581 for RHEL 4.
Comment 8 Jeffrey Moyer 2005-01-20 13:40:30 EST
I've tested programs built and linked against libaio-0.3.96-5 on a system
running libaio-0.3.102-2, and they run fine.

Changing the soname was an error on my part, to be sure.  However, please
elaborate on what problems this will cause for you.  What is a find-requires
dependency?  Can this issue be fixed with a Provides line in the spec file?

Thanks for your enduring patience on this matter.
Comment 9 Joel Becker 2005-01-20 13:54:00 EST
Well, Thorsten from Novell says that a program linked against libaio-0.3.9x from
SLES8 fails to work with libaio-0.3.102.  I've not checked fully on what the
reason is, given that I haven't had time to test.  I'll make sure that I follow
up, because I'm the one playing ping/pong between the two vendors to make sure
that libaio behavior is consistent.

As far as the find-requires bit goes, I'm talking about RPM file-based
dependancies.  Any RPM package that depends on libaio.so.1 (so generated from
RPM's find-requires script seeing libaio-0.3.9x) will perhaps have a problem
when libaio-0.3.102 only provides libaio.so.1.0.0.
Comment 10 Jeffrey Moyer 2005-02-14 14:00:57 EST
A fix for this has been committed to CVS and will be available in the
near future.  I'll update the bug when the fixed package is pushed.
Comment 11 Jeffrey Moyer 2005-03-01 17:48:21 EST
An erratum has been filed.  Packages versioned 0.3.103-3 and later have this fix.

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