]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/DB.pm
Fix some problems with config/database reloading
[deb/packages.git] / lib / Packages / DB.pm
index 1402690c6f1211f1aedf4cd1ace155fd9bfc0da9..e6d1b3f26b434270d083c3acde7445e7594dee96 100644 (file)
@@ -19,31 +19,44 @@ our $db_read_time ||= 0;
 
 sub init {
     my $dbmodtime = (stat("$DBDIR/packages_small.db"))[9] || 0;
-    if ($dbmodtime >= $db_read_time) {
+    if ($dbmodtime > $db_read_time) {
+       undef $obj;
+       untie %packages;
        $obj = tie %packages, 'DB_File', "$DBDIR/packages_small.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $DBDIR/packages_small.db: $!";
+       undef $s_obj;
+       untie %sources;
        $s_obj = tie %sources, 'DB_File', "$DBDIR/sources_small.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $DBDIR/sources_small.db: $!";
+       untie %src2bin;
        tie %src2bin, 'DB_File', "$DBDIR/sources_packages.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't open $DBDIR/sources_packages.db: $!";
+       untie %descriptions;
        tie %descriptions, 'DB_File', "$DBDIR/descriptions.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $DBDIR/descriptions.db: $!";
+       untie %desctrans;
        tie %desctrans, 'DB_File', "$DBDIR/descriptions_translated.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $DBDIR/descriptions_translated.db: $!";
+       untie %did2pkg;
        tie %did2pkg, 'DB_File', "$DBDIR/descriptions_packages.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $DBDIR/descriptions_packages.db: $!";
+       untie %debtags;
        tie %debtags, 'DB_File', "$TOPDIR/files/debtags/vocabulary.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie DB $TOPDIR/files/debtags/vocabulary.db: $!";
+       undef $p_obj;
+       untie %postf;
        $p_obj = tie %postf, 'DB_File', "$DBDIR/package_postfixes.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie postfix db $DBDIR/package_postfixes.db: $!";
+       undef $sp_obj;
+       untie %spostf;
        $sp_obj = tie %spostf, 'DB_File', "$DBDIR/source_postfixes.db",
        O_RDONLY, 0666, $DB_BTREE
            or die "couldn't tie postfix db $DBDIR/source_postfixes.db: $!";