Description of Problem: Any perl script that uses the DB_File module in the recommended manner (ie. as seen in 'man DB_File') will not be able to open existing db's after an upgrade to RH7. I reckon this is because the new perl (5.6.0) is linked with the newer libdb. How Reproducible: Every Time Steps to Reproduce: 1. install RH6.2 ;) 2. create a .db database using DB_File 3. upgrade to RH7 4. attempt to open the .db from step 2 Actual Results: A spurious "File Exists" error is returned. Expected Results: The file should have been opened correctly. Additional Information: The error message returned by the DB_File module's "tie" command is EEXIST, "File exists". Here's a sample strace line: open("/home/jm/.webmake/nethome_jm_ftp_ettext_doc_documentation/cache.db", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists) The perl line that produced this was: my $dbobj = tie (%db, $dbtype, $self->{filename}, O_CREAT|O_RDWR, 0600) Note -- no O_EXCL was specified, but perl/db is using it for some reason, as the strace proves! The O_CREAT|O_RDWR options are recommended in the DB_File manpage. The error will persist as long as the existing .db file exists. Once it is removed, the script will work fine. I can provide a sample .db file which illustrates this.
Created attachment 18271 [details] a copy of the existing .db file which illustrates the problem (gzipped .db file)
you can fix your database by a dump/load pair. I was able to read it via this command: db2_dump rh62cache.db | db_load foo.db Then I could tie properly to foo.db. This is a workaround, but it should solve your problems.