** 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
