** Description changed:

- This is related to  
+ This is related to
  - Gnome's bugzilla bug 611936 
https://bugzilla.gnome.org/show_bug.cgi?id=611936
  - https://bugzilla.redhat.com/show_bug.cgi?id=629964 in Fedora's bugtracker
  
  It seems that the 8.3 version of libdbd-sqlite3 delivered with Ubuntu
  10.10 i386 is complied with optimisation -ffast-math which causes all
  the numeric values in gnucash 2.3.15  (svn r19751) with SQLite backend
  to be retrieved as zero.
  
  This problem only started after I upgraded from Ubuntu 10.04 to 10.10.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 10.10
  Package: libdbd-sqlite3 0.8.3-1-0ubuntu1
  ProcVersionSignature: Ubuntu 2.6.35-22.35-generic 2.6.35.4
  Uname: Linux 2.6.35-22-generic i686
  Architecture: i386
  Date: Wed Nov 10 11:40:17 2010
  InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release i386 (20100427.1)
  ProcEnviron:
-  LANG=en_AU.utf8
-  SHELL=/bin/bash
+  LANG=en_AU.utf8
+  SHELL=/bin/bash
  SourcePackage: libdbi-drivers
+ 
+ == SRU Information ==
+ 
+ === IMPACT ===
+ 
+ This bug prevents any programs that use floating point numbers in a
+ libdbi accessed database from functioning properly on i386. This
+ includes GNUcash, a widely used piece of accounting software.
+ 
+ === DEV FIX ===
+ 
+ This was fixed by turning off fast-math optimizations in libdbi.
+ 
+ === PATCH ===
+ 
+ See linked merge proposal against maverick
+ 
+ === TEST CASE: ===
+ 
+ This only affects the i386 architecture, and so much be run on an i386
+ machine/chroot/vm.
+ 
+ 1. sudo apt-get install libdbd-sqlite3 -- note this should install libdbi0 as 
well
+ 2. sudo apt-get build-dep libdbi-drivers
+ 3. apt-get source libdbi-drivers
+ 4. cd into libdbi-drivers-$version
+ 5. run 'debian/rules build'
+ 6. run 'make check'
+ 7. Accept the default answer for libdbidriver directory of /usr/lib/dbd
+ 8. type in 'sqlite3' to answer 'test which driver?'
+ 9. Accept the default answer for database directory and database name
+ 10. Tests will run with "SUCCESS", but the test for double floats will look 
like this:
+ 
+ the_double: in:1.7976931348623157E+307 out:0.000000e+00<<
+ 
+ 11. Upgrade libdbi0 to the fixed package, then rerun steps 6 - 10, the
+ test should now look like this:
+ 
+ the_double: in:1.7976931348623157E+307 out:1.797693e+307<<
+ 
+ 
+ === REGRESSION POTENTIAL ===
+ 
+ This is a change only in compile flags, and so the only regression
+ potential is that it will slow down all floating point operations in
+ libdbi. Given that the alternative is the wrong answer, slower is
+ actually better in this case.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/673307

Title:
  libdbi / libdbd-sqlite3 returns incorrect values for several data
  types

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to