From trac at boxbackup.org Sat Feb 6 12:00:01 2010 From: trac at boxbackup.org (trac at boxbackup.org) Date: Sat, 6 Feb 2010 12:00:01 +0000 (GMT) Subject: [Boxbackup-dev] Current open tickets Message-ID: <20100206120001.C4ECC325FF4@www.boxbackup.org> Note: to view an indiviual ticket, use: https://www.boxbackup.org/trac/ticket/(number) The following is a listing of current problems submitted by Box Backup users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Ticket Owner Component Summary - ------ ------ ------------- ------------------------------------------------------------ n 4 martin box libraries Port Box Backup to AIX n 6 box libraries Contribute code: SMTP client, HTTP server, Database drivers, n 7 box libraries Improve restore speed on local repositories n 8 chris box libraries Improve handling of directories with many files n 13 chris bbackupd Fix file locking on Windows n 14 chris bbackupd Fix large file issues on Windows n 16 chris bbackupquery Restore deleted directories may fail a 17 chris bbackupquery List files using wildcards a 20 chris bbackupctl bbackupctl reload reports prior settings n 45 ben bbackupd File diff performance patch (reduced disk IO and wall time n 46 chris bbackupd bbackupd only ever saves reverse diffs, corrupted files on s n 47 chris bbackupd Account numbers greater than 2^31 (0x7fffffff) do not work c n 48 chris bbackupd Locations that don't exist on first run are never tried agai n 49 chris bbackupd ID map (rename tracking) broken since [288] n 50 chris bbackupquery No way to capture stderr under Windows n 51 chris bbackupd No way to force bbackupd to re-upload files under Windows n 52 chris bbackupd Unable to control the maintenance of old vs. deleted files n 53 chris bbackupd Comparing root directory locations does not work under Windo n 54 chris bbackupd Locations not found on disk (e.g. unmounted filesystems) can n 55 chris bbackupd Should store and preserve directory timestamps n 56 bbackupquery Windows: User can polute restore directory by adding a trail n 57 ben bbackupd Create boxbackupresume and other files in DataDirectory n 58 ben bbackupd bbackupquery connection timeout results in error message, sh n 59 ben bbackupd Inconsistent treatment of NotifyScript between Box Backup an n 60 ben bbstored Case sensitivity between bbstored-certs and Boxi n 61 ben bbackupd File statistics: Log the number of uploaded files in additio n 62 ben bbackupd Backups of deleted files may be removed very quickly by hous n 63 ben bbackupd Support hard links in directories 28 tickets total. From pjalajas at gigalock.com Sun Feb 7 20:25:19 2010 From: pjalajas at gigalock.com (Peter Jalajas, GigaLock Backup Services) Date: Sun, 7 Feb 2010 15:25:19 -0500 Subject: [Boxbackup-dev] =?windows-1252?q?BackupQueries=2Ecpp=3A1568=3A_er?= =?windows-1252?q?ror=3A_expected_=60=3B=27_before_=91localDirPath?= =?windows-1252?q?=92?= Message-ID: <74d01c7a1002071225r69c9b93ie40a6e55bed5f56b@mail.gmail.com> Hi all, Trying to get a fresher boxbackup client on my home server. petjal at gl3:~/doc/teb/cli/bu/trunk$ grep -e "CODENAME" -e "DESCRIPTION" /etc/lsb-release DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS" petjal at gl3:~/doc/teb/cli/bu/trunk$ bbackupquery --version 0.10 petjal at gl3:~/doc/teb/cli/bu/trunk$ dpkg -l | grep -i boxb ii boxbackup-client 0.10+really0.10-1ubuntu3 client for the BoxBackup remote backup syste Had an old svn trunk checkout, so went in there and per http://www.boxbackup.org/trac/wiki/SourceCodeRepository did svn update Seemed to go fine, got: Updated to revision 2602. Then did: ./bootstrap && ./configure && make && echo "Finished." and got BackupQueries.cpp:1568: error: expected `;' before ?localDirPath? Screen scrape below. Not sure what to do--any suggestions? I guess I could go ahead and put that semi-colon in there, but not sure... Thanks! Pete petjal at gl3:~/doc/teb/cli/bu/trunk$ ./bootstrap && ./configure && make && echo "Finished." /usr/share/aclocal/libmcrypt.m4:17: warning: underquoted definition of AM_PATH_LIBMCRYPT /usr/share/aclocal/libmcrypt.m4:17: run info '(automake)Extending aclocal' /usr/share/aclocal/libmcrypt.m4:17: or see http://sources.redhat.com/automake/automake.html#Extending-aclocal ... Regular expressions: yes Large files: yes Berkeley DB: yes Readline: yes Extended attributes: yes (cd bin/bbackupd; make RELEASE=1) ... [CXX] Timer.cpp Timer.cpp: In static member function ?static void Timers::Cleanup()?: Timer.cpp:86: warning: unused variable ?result? [CXX] UnixUser.cpp ... BackupStoreFile.cpp: In static member function ?static void BackupStoreFile::DecodeFile(IOStream&, const char*, int, const BackupClientFileAttributes*)?: BackupStoreFile.cpp:304: warning: unused variable ?drained? ... [CXX] bbackupd.cpp [LINK] ../../release/bin/bbackupd/bbackupd make[1]: Leaving directory `/home/petjal/doc/teb/cli/bu/trunk/bin/bbackupd' mkdir -p parcels/boxbackup-trunk_2602-backup-client-linux-gnu cp -p release/bin/bbackupd/bbackupd parcels/boxbackup-trunk_2602-backup-client-linux-gnu (cd bin/bbackupquery; make RELEASE=1) make[1]: Entering directory `/home/petjal/doc/teb/cli/bu/trunk/bin/bbackupquery' [CXX] BackupQueries.cpp BackupQueries.cpp: In member function ?void BackupQueries::Compare(int64_t, const std::string&, const std::string&, BoxBackupCompareParams&)?: BackupQueries.cpp:1568: error: expected `;' before ?localDirPath? make[1]: *** [../../release/bin/bbackupquery/BackupQueries.o] Error 1 make[1]: Leaving directory `/home/petjal/doc/teb/cli/bu/trunk/bin/bbackupquery' make: *** [release/bin/bbackupquery/bbackupquery] Error 2 petjal at gl3:~/doc/teb/cli/bu/trunk$ From chris at qwirx.com Sun Feb 7 21:41:46 2010 From: chris at qwirx.com (Chris Wilson) Date: Sun, 7 Feb 2010 22:41:46 +0100 (CET) Subject: [Boxbackup-dev] =?iso-8859-7?q?BackupQueries=2Ecpp=3A1568=3A_erro?= =?iso-8859-7?q?r=3A_expected_=60=3B=27_before_=A1localDirPath=A2?= In-Reply-To: <74d01c7a1002071225r69c9b93ie40a6e55bed5f56b@mail.gmail.com> References: <74d01c7a1002071225r69c9b93ie40a6e55bed5f56b@mail.gmail.com> Message-ID: Hi Pete, On Sun, 7 Feb 2010, Peter Jalajas, GigaLock Backup Services wrote: > svn update > Seemed to go fine, got: > Updated to revision 2602. > Then did: > ./bootstrap && ./configure && make && echo "Finished." > and got > BackupQueries.cpp:1568: error: expected `;' before ?localDirPath? > Screen scrape below. > > Not sure what to do--any suggestions? I guess I could go ahead and > put that semi-colon in there, but not sure... Thanks for the bug report. It should be fixed now. Please could you update and try again? Cheers, Chris. -- _ ___ __ _ / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | From pjalajas at gigalock.com Mon Feb 8 16:36:00 2010 From: pjalajas at gigalock.com (Peter Jalajas, GigaLock Backup Services) Date: Mon, 8 Feb 2010 11:36:00 -0500 Subject: [Boxbackup-dev] =?windows-1252?q?BackupQueries=2Ecpp=3A1568=3A_er?= =?windows-1252?q?ror=3A_expected_=60=3B=27_before_=91localDirPath?= =?windows-1252?q?=92?= In-Reply-To: References: <74d01c7a1002071225r69c9b93ie40a6e55bed5f56b@mail.gmail.com> Message-ID: <74d01c7a1002080836o24fe6b32u619dbafcd94eb538@mail.gmail.com> Hi Chris, Worked like a charm, thanks! Pete On Sun, Feb 7, 2010 at 4:41 PM, Chris Wilson wrote: > Hi Pete, > > On Sun, 7 Feb 2010, Peter Jalajas, GigaLock Backup Services wrote: > >> svn update >> Seemed to go fine, got: >> Updated to revision 2602. >> Then did: >> ./bootstrap && ./configure && make && echo "Finished." >> and got >> BackupQueries.cpp:1568: error: expected `;' before ?localDirPath? >> Screen scrape below. >> >> Not sure what to do--any suggestions? ?I guess I could go ahead and >> put that semi-colon in there, but not sure... > > Thanks for the bug report. It should be fixed now. Please could you update > and try again? > > Cheers, Chris. > -- > _ ___ __ ? ? _ > ?/ __/ / ,__(_)_ ?| Chris Wilson <0000 at qwirx.com> - Cambs UK | > / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | > \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | > _______________________________________________ > Boxbackup-dev mailing list > Boxbackup-dev at boxbackup.org > http://lists.boxbackup.org/cgi-bin/mailman/listinfo/boxbackup-dev > > From trac at boxbackup.org Sat Feb 13 12:00:01 2010 From: trac at boxbackup.org (trac at boxbackup.org) Date: Sat, 13 Feb 2010 12:00:01 +0000 (GMT) Subject: [Boxbackup-dev] Current open tickets Message-ID: <20100213120001.8EDF4326045@www.boxbackup.org> Note: to view an indiviual ticket, use: https://www.boxbackup.org/trac/ticket/(number) The following is a listing of current problems submitted by Box Backup users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Ticket Owner Component Summary - ------ ------ ------------- ------------------------------------------------------------ n 4 martin box libraries Port Box Backup to AIX n 6 box libraries Contribute code: SMTP client, HTTP server, Database drivers, n 7 box libraries Improve restore speed on local repositories n 8 chris box libraries Improve handling of directories with many files n 13 chris bbackupd Fix file locking on Windows n 14 chris bbackupd Fix large file issues on Windows n 16 chris bbackupquery Restore deleted directories may fail a 17 chris bbackupquery List files using wildcards a 20 chris bbackupctl bbackupctl reload reports prior settings n 45 ben bbackupd File diff performance patch (reduced disk IO and wall time n 46 chris bbackupd bbackupd only ever saves reverse diffs, corrupted files on s n 47 chris bbackupd Account numbers greater than 2^31 (0x7fffffff) do not work c n 48 chris bbackupd Locations that don't exist on first run are never tried agai n 49 chris bbackupd ID map (rename tracking) broken since [288] n 50 chris bbackupquery No way to capture stderr under Windows n 51 chris bbackupd No way to force bbackupd to re-upload files under Windows n 52 chris bbackupd Unable to control the maintenance of old vs. deleted files n 53 chris bbackupd Comparing root directory locations does not work under Windo n 54 chris bbackupd Locations not found on disk (e.g. unmounted filesystems) can n 55 chris bbackupd Should store and preserve directory timestamps n 56 bbackupquery Windows: User can polute restore directory by adding a trail n 57 ben bbackupd Create boxbackupresume and other files in DataDirectory n 58 ben bbackupd bbackupquery connection timeout results in error message, sh n 59 ben bbackupd Inconsistent treatment of NotifyScript between Box Backup an n 60 ben bbstored Case sensitivity between bbstored-certs and Boxi n 61 ben bbackupd File statistics: Log the number of uploaded files in additio n 62 ben bbackupd Backups of deleted files may be removed very quickly by hous n 63 ben bbackupd Support hard links in directories n 64 bbackupquery Always a lot of 'has different attributes to store file' mes 29 tickets total. From trac at boxbackup.org Sat Feb 20 12:00:00 2010 From: trac at boxbackup.org (trac at boxbackup.org) Date: Sat, 20 Feb 2010 12:00:00 +0000 (GMT) Subject: [Boxbackup-dev] Current open tickets Message-ID: <20100220120001.31192325FF4@www.boxbackup.org> Note: to view an indiviual ticket, use: https://www.boxbackup.org/trac/ticket/(number) The following is a listing of current problems submitted by Box Backup users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Ticket Owner Component Summary - ------ ------ ------------- ------------------------------------------------------------ n 4 martin box libraries Port Box Backup to AIX n 6 box libraries Contribute code: SMTP client, HTTP server, Database drivers, n 7 box libraries Improve restore speed on local repositories n 8 chris box libraries Improve handling of directories with many files n 13 chris bbackupd Fix file locking on Windows n 14 chris bbackupd Fix large file issues on Windows n 16 chris bbackupquery Restore deleted directories may fail a 17 chris bbackupquery List files using wildcards a 20 chris bbackupctl bbackupctl reload reports prior settings n 45 ben bbackupd File diff performance patch (reduced disk IO and wall time n 46 chris bbackupd bbackupd only ever saves reverse diffs, corrupted files on s n 47 chris bbackupd Account numbers greater than 2^31 (0x7fffffff) do not work c n 48 chris bbackupd Locations that don't exist on first run are never tried agai n 49 chris bbackupd ID map (rename tracking) broken since [288] n 50 chris bbackupquery No way to capture stderr under Windows n 51 chris bbackupd No way to force bbackupd to re-upload files under Windows n 52 chris bbackupd Unable to control the maintenance of old vs. deleted files n 53 chris bbackupd Comparing root directory locations does not work under Windo n 54 chris bbackupd Locations not found on disk (e.g. unmounted filesystems) can n 55 chris bbackupd Should store and preserve directory timestamps n 56 bbackupquery Windows: User can polute restore directory by adding a trail n 57 ben bbackupd Create boxbackupresume and other files in DataDirectory n 58 ben bbackupd bbackupquery connection timeout results in error message, sh n 59 ben bbackupd Inconsistent treatment of NotifyScript between Box Backup an n 60 ben bbstored Case sensitivity between bbstored-certs and Boxi n 61 ben bbackupd File statistics: Log the number of uploaded files in additio n 62 ben bbackupd Backups of deleted files may be removed very quickly by hous n 63 ben bbackupd Support hard links in directories n 64 bbackupquery Always a lot of 'has different attributes to store file' mes 29 tickets total. From james at netinertia.co.uk Mon Feb 22 22:32:20 2010 From: james at netinertia.co.uk (James O'Gorman) Date: Mon, 22 Feb 2010 22:32:20 +0000 Subject: [Boxbackup-dev] [Box Backup-commit] COMMIT r2631 - box/trunk/bin/bbackupd In-Reply-To: <20100222221004.C9868325044@www.boxbackup.org> References: <20100222221004.C9868325044@www.boxbackup.org> Message-ID: <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> Hi Chris, Out of interest, what's the advantage to QDBM over BDB? Will switching over cause any loss of state/config/etc? James On 22 Feb 2010, at 22:10, subversion at boxbackup.org wrote: > Author: chris > Date: 2010-02-22 22:10:04 +0000 (Mon, 22 Feb 2010) > New Revision: 2631 > > Modified: > box/trunk/bin/bbackupd/BackupClientInodeToIDMap.cpp > box/trunk/bin/bbackupd/BackupClientInodeToIDMap.h > box/trunk/bin/bbackupd/BackupDaemon.cpp > Log: > Remove all references to bdb databases, use QDBM instead. > > > Modified: box/trunk/bin/bbackupd/BackupClientInodeToIDMap.cpp > =================================================================== > --- box/trunk/bin/bbackupd/BackupClientInodeToIDMap.cpp 2010-02-22 21:57:36 UTC (rev 2630) > +++ box/trunk/bin/bbackupd/BackupClientInodeToIDMap.cpp 2010-02-22 22:10:04 UTC (rev 2631) > @@ -9,32 +9,53 @@ > > #include "Box.h" > > -#ifdef HAVE_DB > - // Include db headers and other OS files if they're needed for the disc implementation > - #include > - #include > - #include > - #include > - #include > -#endif > +#include > +#include > > #define BACKIPCLIENTINODETOIDMAP_IMPLEMENTATION > #include "BackupClientInodeToIDMap.h" > +#undef BACKIPCLIENTINODETOIDMAP_IMPLEMENTATION > > #include "BackupStoreException.h" > > - > #include "MemLeakFindOn.h" > > -// What type of Berkeley DB shall we use? > -#define TABLE_DATABASE_TYPE DB_HASH > - > typedef struct > { > int64_t mObjectID; > int64_t mInDirectory; > } IDBRecord; > > +#define BOX_DBM_MESSAGE(stuff) stuff << " (qdbm): " << dperrmsg(dpecode) > + > +#define BOX_LOG_DBM_ERROR(stuff) \ > + BOX_ERROR(BOX_DBM_MESSAGE(stuff)) > + > +#define THROW_DBM_ERROR(message, filename, exception, subtype) \ > + BOX_LOG_DBM_ERROR(message << ": " << filename); \ > + THROW_EXCEPTION_MESSAGE(exception, subtype, \ > + BOX_DBM_MESSAGE(message << ": " << filename)); > + > +#define ASSERT_DBM_OK(operation, message, filename, exception, subtype) \ > + if(!(operation)) \ > + { \ > + THROW_DBM_ERROR(message, filename, exception, subtype); \ > + } > + > +#define ASSERT_DBM_OPEN() \ > + if(mpDepot == 0) \ > + { \ > + THROW_EXCEPTION_MESSAGE(BackupStoreException, InodeMapNotOpen, \ > + "Inode database not open"); \ > + } > + > +#define ASSERT_DBM_CLOSED() \ > + if(mpDepot != 0) \ > + { \ > + THROW_EXCEPTION_MESSAGE(CommonException, Internal, \ > + "Inode database already open: " << mFilename); \ > + } > + > // -------------------------------------------------------------------------- > // > // Function > @@ -44,11 +65,9 @@ > // > // -------------------------------------------------------------------------- > BackupClientInodeToIDMap::BackupClientInodeToIDMap() > -#ifndef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > : mReadOnly(true), > mEmpty(false), > - dbp(0) > -#endif > + mpDepot(0) > { > } > > @@ -62,19 +81,12 @@ > // -------------------------------------------------------------------------- > BackupClientInodeToIDMap::~BackupClientInodeToIDMap() > { > -#ifndef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - if(dbp != 0) > + if(mpDepot != 0) > { > -#if BDB_VERSION_MAJOR >= 3 > - dbp->close(0); > -#else > - dbp->close(dbp); > -#endif > + Close(); > } > -#endif > } > > - > // -------------------------------------------------------------------------- > // > // Function > @@ -83,56 +95,53 @@ > // Created: 20/11/03 > // > // -------------------------------------------------------------------------- > -void BackupClientInodeToIDMap::Open(const char *Filename, bool ReadOnly, bool CreateNew) > +void BackupClientInodeToIDMap::Open(const char *Filename, bool ReadOnly, > + bool CreateNew) > { > -#ifndef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > + mFilename = Filename; > + > // Correct arguments? > ASSERT(!(CreateNew && ReadOnly)); > > // Correct usage? > - ASSERT(dbp == 0); > + ASSERT_DBM_CLOSED(); > ASSERT(!mEmpty); > > // Open the database file > -#if BDB_VERSION_MAJOR >= 3 > - dbp = new Db(0,0); > - dbp->set_pagesize(1024); /* Page size: 1K. */ > - dbp->set_cachesize(0, 32 * 1024, 0); > - dbp->open(NULL, Filename, NULL, DB_HASH, DB_CREATE, 0664); > -#else > - dbp = dbopen(Filename, (CreateNew?O_CREAT:0) | (ReadOnly?O_RDONLY:O_RDWR), S_IRUSR | S_IWUSR | S_IRGRP, TABLE_DATABASE_TYPE, NULL); > -#endif > - if(dbp == NULL) > + int mode = ReadOnly ? DP_OREADER : DP_OWRITER; > + if(CreateNew) > { > - THROW_EXCEPTION(BackupStoreException, BerkelyDBFailure); > + mode |= DP_OCREAT; > } > > + mpDepot = dpopen(Filename, mode, 0); > + > + ASSERT_DBM_OK(mpDepot, "Failed to open inode database", mFilename, > + BackupStoreException, BerkelyDBFailure); > + > // Read only flag > mReadOnly = ReadOnly; > -#endif > } > > // -------------------------------------------------------------------------- > // > // Function > // Name: BackupClientInodeToIDMap::OpenEmpty() > -// Purpose: 'Open' this map. Not associated with a disc file. Useful for when a map > -// is required, but is against an empty file on disc which shouldn't be created. > -// Implies read only. > +// Purpose: 'Open' this map. Not associated with a disc file. > +// Useful for when a map is required, but is against > +// an empty file on disc which shouldn't be created. > +// Implies read only. > // Created: 20/11/03 > // > // -------------------------------------------------------------------------- > void BackupClientInodeToIDMap::OpenEmpty() > { > -#ifndef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - ASSERT(dbp == 0); > + ASSERT_DBM_CLOSED(); > + ASSERT(mpDepot == 0); > mEmpty = true; > mReadOnly = true; > -#endif > } > > - > - > // -------------------------------------------------------------------------- > // > // Function > @@ -143,75 +152,46 @@ > // -------------------------------------------------------------------------- > void BackupClientInodeToIDMap::Close() > { > -#ifndef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - if(dbp != 0) > - { > -#if BDB_VERSION_MAJOR >= 3 > - if(dbp->close(0) != 0) > -#else > - if(dbp->close(dbp) != 0) > -#endif > - { > - THROW_EXCEPTION(BackupStoreException, BerkelyDBFailure); > - } > - dbp = 0; > - } > -#endif > + ASSERT_DBM_OPEN(); > + ASSERT_DBM_OK(dpclose(mpDepot), "Failed to close inode database", > + mFilename, BackupStoreException, BerkelyDBFailure); > + mpDepot = 0; > } > > - > // -------------------------------------------------------------------------- > // > // Function > -// Name: BackupClientInodeToIDMap::AddToMap(InodeRefType, int64_t, int64_t) > -// Purpose: Adds an entry to the map. Overwrites any existing entry. > +// Name: BackupClientInodeToIDMap::AddToMap(InodeRefType, > +// int64_t, int64_t) > +// Purpose: Adds an entry to the map. Overwrites any existing > +// entry. > // Created: 11/11/03 > // > // -------------------------------------------------------------------------- > -void BackupClientInodeToIDMap::AddToMap(InodeRefType InodeRef, int64_t ObjectID, int64_t InDirectory) > +void BackupClientInodeToIDMap::AddToMap(InodeRefType InodeRef, int64_t ObjectID, > + int64_t InDirectory) > { > -#ifdef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - mMap[InodeRef] = std::pair(ObjectID, InDirectory); > -#else > if(mReadOnly) > { > THROW_EXCEPTION(BackupStoreException, InodeMapIsReadOnly); > } > > - if(dbp == 0) > + if(mpDepot == 0) > { > THROW_EXCEPTION(BackupStoreException, InodeMapNotOpen); > } > > + ASSERT_DBM_OPEN(); > + > // Setup structures > IDBRecord rec; > rec.mObjectID = ObjectID; > rec.mInDirectory = InDirectory; > > -#if BDB_VERSION_MAJOR >= 3 > - Dbt key(&InodeRef, sizeof(InodeRef)); > - Dbt data(&rec, sizeof(rec)); > - > - if (dbp->put(0, &key, &data, 0) != 0) { > - THROW_EXCEPTION(BackupStoreException, BerkelyDBFailure); > - } > -#else > - > - DBT key; > - key.data = &InodeRef; > - key.size = sizeof(InodeRef); > - > - DBT data; > - data.data = &rec; > - data.size = sizeof(rec); > - > - // Add to map (or replace existing entry) > - if(dbp->put(dbp, &key, &data, 0) != 0) > - { > - THROW_EXCEPTION(BackupStoreException, BerkelyDBFailure); > - } > -#endif > -#endif > + ASSERT_DBM_OK(dpput(mpDepot, (const char *)&InodeRef, sizeof(InodeRef), > + (const char *)&rec, sizeof(rec), DP_DOVER), > + "Failed to add record to inode database", mFilename, > + BackupStoreException, BerkelyDBFailure); > } > > // -------------------------------------------------------------------------- > @@ -228,100 +208,32 @@ > bool BackupClientInodeToIDMap::Lookup(InodeRefType InodeRef, > int64_t &rObjectIDOut, int64_t &rInDirectoryOut) const > { > -#ifdef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - std::map >::const_iterator i(mMap.find(InodeRef)); > - > - // Found? > - if(i == mMap.end()) > - { > - return false; > - } > - > - // Yes. Return the details > - rObjectIDOut = i->second.first; > - rInDirectoryOut = i->second.second; > - return true; > -#else > if(mEmpty) > { > // Map is empty > return false; > } > > - if(dbp == 0) > + if(mpDepot == 0) > { > THROW_EXCEPTION(BackupStoreException, InodeMapNotOpen); > } > - > -#if BDB_VERSION_MAJOR >= 3 > - Dbt key(&InodeRef, sizeof(InodeRef)); > - Dbt data(0, 0); > - switch(dbp->get(NULL, &key, &data, 0)) > -#else > - DBT key; > - key.data = &InodeRef; > - key.size = sizeof(InodeRef); > > - DBT data; > - data.data = 0; > - data.size = 0; > + ASSERT_DBM_OPEN(); > > - switch(dbp->get(dbp, &key, &data, 0)) > -#endif > + IDBRecord rec; > > + if(dpgetwb(mpDepot, (const char *)&InodeRef, sizeof(InodeRef), > + 0, sizeof(IDBRecord), (char *)&rec) == -1) > { > - case 1: // key not in file > + // key not in file > return false; > - > - case -1: // error > - default: // not specified in docs > - THROW_EXCEPTION(BackupStoreException, BerkelyDBFailure); > - return false; > - > - case 0: // success, found it > - break; > } > - > - // Check for sensible return > -#if BDB_VERSION_MAJOR >= 3 > - if(key.get_data() == 0 || data.get_size() != sizeof(IDBRecord)) > - { > - // Assert in debug version > - ASSERT(key.get_data() == 0 || data.get_size() != sizeof(IDBRecord)); > > - // Invalid entries mean it wasn't found > - return false; > - } > - > - // Data alignment isn't guaranteed to be on a suitable boundary > - IDBRecord rec; > - > - ::memcpy(&rec, data.get_data(), sizeof(rec)); > -#else > - if(key.data == 0 || data.size != sizeof(IDBRecord)) > - { > - // Assert in debug version > - ASSERT(key.data == 0 || data.size != sizeof(IDBRecord)); > - > - // Invalid entries mean it wasn't found > - return false; > - } > - > - // Data alignment isn't guaranteed to be on a suitable boundary > - IDBRecord rec; > - > - ::memcpy(&rec, data.data, sizeof(rec)); > -#endif > - > // Return data > rObjectIDOut = rec.mObjectID; > rInDirectoryOut = rec.mInDirectory; > > - // Don't have to worry about freeing the returned data > - > // Found > return true; > -#endif > } > - > - > > Modified: box/trunk/bin/bbackupd/BackupClientInodeToIDMap.h > =================================================================== > --- box/trunk/bin/bbackupd/BackupClientInodeToIDMap.h 2010-02-22 21:57:36 UTC (rev 2630) > +++ box/trunk/bin/bbackupd/BackupClientInodeToIDMap.h 2010-02-22 22:10:04 UTC (rev 2631) > @@ -8,26 +8,17 @@ > // -------------------------------------------------------------------------- > > #ifndef BACKUPCLIENTINODETOIDMAP_H > -#define BACKUPCLIENTINODETOIDMAP__H > +#define BACKUPCLIENTINODETOIDMAP_H > > #include > > #include > #include > > -// Use in memory implementation if there isn't access to the Berkely DB on this platform > -#ifndef HAVE_DB > - #define BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > -#endif > - > // avoid having to include the DB files when not necessary > #ifndef BACKIPCLIENTINODETOIDMAP_IMPLEMENTATION > -#ifdef BERKELY_V4 > - class Db; > -#else > - class DB; > + class DEPOT; > #endif > -#endif > > // -------------------------------------------------------------------------- > // > @@ -55,19 +46,12 @@ > void Close(); > > private: > -#ifdef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - std::map > mMap; > -#else > bool mReadOnly; > bool mEmpty; > -#ifdef BERKELY_V4 > - Db *dbp; // c++ style implimentation > -#else > - DB *dbp; // C style interface, use notation from documentation > -#endif // BERKELY_V4 > -#endif // BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > + std::string mFilename; > + DEPOT *mpDepot; > }; > > -#endif // BACKUPCLIENTINODETOIDMAP__H > +#endif // BACKUPCLIENTINODETOIDMAP_H > > > > Modified: box/trunk/bin/bbackupd/BackupDaemon.cpp > =================================================================== > --- box/trunk/bin/bbackupd/BackupDaemon.cpp 2010-02-22 21:57:36 UTC (rev 2630) > +++ box/trunk/bin/bbackupd/BackupDaemon.cpp 2010-02-22 22:10:04 UTC (rev 2631) > @@ -1784,31 +1784,11 @@ > // -------------------------------------------------------------------------- > void BackupDaemon::SetupIDMapsForSync() > { > - // Need to do different things depending on whether it's an > - // in memory implementation, or whether it's all stored on disc. > - > -#ifdef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - > // Make sure we have some blank, empty ID maps > DeleteIDMapVector(mNewIDMaps); > FillIDMapVector(mNewIDMaps, true /* new maps */); > - > - // Then make sure that the current maps have objects, > - // even if they are empty (for the very first run) > - if(mCurrentIDMaps.empty()) > - { > - FillIDMapVector(mCurrentIDMaps, false /* current maps */); > - } > - > -#else > - > - // Make sure we have some blank, empty ID maps > - DeleteIDMapVector(mNewIDMaps); > - FillIDMapVector(mNewIDMaps, true /* new maps */); > DeleteIDMapVector(mCurrentIDMaps); > FillIDMapVector(mCurrentIDMaps, false /* new maps */); > - > -#endif > } > > > @@ -1935,21 +1915,6 @@ > // -------------------------------------------------------------------------- > void BackupDaemon::CommitIDMapsAfterSync() > { > - // Need to do different things depending on whether it's an in memory implementation, > - // or whether it's all stored on disc. > - > -#ifdef BACKIPCLIENTINODETOIDMAP_IN_MEMORY_IMPLEMENTATION > - // Remove the current ID maps > - DeleteIDMapVector(mCurrentIDMaps); > - > - // Copy the (pointers to) "new" maps over to be the new "current" maps > - mCurrentIDMaps = mNewIDMaps; > - > - // Clear the new ID maps vector (not delete them!) > - mNewIDMaps.clear(); > - > -#else > - > // Get rid of the maps in memory (leaving them on disc of course) > DeleteIDMapVector(mCurrentIDMaps); > DeleteIDMapVector(mNewIDMaps); > @@ -1973,8 +1938,6 @@ > THROW_EXCEPTION(CommonException, OSFileError) > } > } > - > -#endif > } > > > @@ -1996,8 +1959,7 @@ > rVector.pop_back(); > > // Close and delete > - toDel->Close(); > - delete toDel; > +win32 rename delete toDel; > } > ASSERT(rVector.size() == 0); > } > > _______________________________________________ > Boxbackup-commit mailing list > Boxbackup-commit at boxbackup.org > http://lists.boxbackup.org/cgi-bin/mailman/listinfo/boxbackup-commit > From chris at qwirx.com Tue Feb 23 07:59:28 2010 From: chris at qwirx.com (Chris Wilson) Date: Tue, 23 Feb 2010 08:59:28 +0100 (CET) Subject: [Boxbackup-dev] Switch from BDB to QDBM (was re: COMMIT r2631) In-Reply-To: <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> References: <20100222221004.C9868325044@www.boxbackup.org> <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> Message-ID: Hi James, On Mon, 22 Feb 2010, James O'Gorman wrote: > Out of interest, what's the advantage to QDBM over BDB? It's small enough to bundle with Box Backup, designed to be simple and fast, means consistent behaviour across platforms and allows us to escape the nightmare mess of BDB version hell that we are currently stuck in. > Will switching over cause any loss of state/config/etc? There is probably no useful state to keep, because BDB support has been broken in Box Backup since forever: http://www.boxbackup.org/trac/ticket/49 I want a single, stable database library that I can code to and use for more advanced stuff (object reference tracking); it didn't seem to make sense to link Box with two different database libraries, one for the inode database and one for references; and I couldn't even figure out how to get the BDB autoconfigury to work reliably; so it was easier just to kick the whole thing out. Cheers, Chris. -- _ ___ __ _ / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | From james at netinertia.co.uk Tue Feb 23 20:05:14 2010 From: james at netinertia.co.uk (James O'Gorman) Date: Tue, 23 Feb 2010 20:05:14 +0000 Subject: [Boxbackup-dev] Switch from BDB to QDBM (was re: COMMIT r2631) In-Reply-To: References: <20100222221004.C9868325044@www.boxbackup.org> <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> Message-ID: <3068FCE0-E927-4D97-BD89-510AE09CC410@netinertia.co.uk> Hi Chris, Very useful information, thank you! In terms of packages, would it therefore be fair to say that only the bundled version of QDBM will be supported/detected by configure? What I'm getting at is whether packagers should or should not put in dependencies for any OS-supplied version of QDBM (if any, whether it be in base OS or another package). Cheers, James On 23 Feb 2010, at 07:59, Chris Wilson wrote: > Hi James, > > On Mon, 22 Feb 2010, James O'Gorman wrote: > >> Out of interest, what's the advantage to QDBM over BDB? > > It's small enough to bundle with Box Backup, designed to be simple and fast, means consistent behaviour across platforms and allows us to escape the nightmare mess of BDB version hell that we are currently stuck in. > >> Will switching over cause any loss of state/config/etc? > > There is probably no useful state to keep, because BDB support has been broken in Box Backup since forever: > > http://www.boxbackup.org/trac/ticket/49 > > I want a single, stable database library that I can code to and use for more advanced stuff (object reference tracking); it didn't seem to make sense to link Box with two different database libraries, one for the inode database and one for references; and I couldn't even figure out how to get the BDB autoconfigury to work reliably; so it was easier just to kick the whole thing out. > > Cheers, Chris. > -- > _ ___ __ _ > / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | > / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | > \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | > _______________________________________________ > Boxbackup-dev mailing list > Boxbackup-dev at boxbackup.org > http://lists.boxbackup.org/cgi-bin/mailman/listinfo/boxbackup-dev > From maillist at diffingo.com Wed Feb 24 06:11:48 2010 From: maillist at diffingo.com (Stewart Adam) Date: Wed, 24 Feb 2010 01:11:48 -0500 Subject: [Boxbackup-dev] Switch from BDB to QDBM (was re: COMMIT r2631) In-Reply-To: <3068FCE0-E927-4D97-BD89-510AE09CC410@netinertia.co.uk> References: <20100222221004.C9868325044@www.boxbackup.org> <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> <3068FCE0-E927-4D97-BD89-510AE09CC410@netinertia.co.uk> Message-ID: <4B84C324.5090507@diffingo.com> On 2010/02/23 3:05 PM, James O'Gorman wrote: > Hi Chris, > > Very useful information, thank you! I agree, this looks like a great improvement! > In terms of packages, would it therefore be fair to say that only the bundled version of QDBM will be supported/detected by configure? What I'm getting at is whether packagers should or should not put in dependencies for any OS-supplied version of QDBM (if any, whether it be in base OS or another package). Would it be possible to have the configure script probe for and use the bundled version only QDBM wasn't found on the system? I know that many distros (especially Fedora) frown upon bundled libraries. Stewart From chris at qwirx.com Wed Feb 24 18:33:50 2010 From: chris at qwirx.com (Chris Wilson) Date: Wed, 24 Feb 2010 19:33:50 +0100 (CET) Subject: [Boxbackup-dev] Switch from BDB to QDBM (was re: COMMIT r2631) In-Reply-To: <4B84C324.5090507@diffingo.com> References: <20100222221004.C9868325044@www.boxbackup.org> <98C8AFB9-33CD-4464-99CC-582BD1A788BD@netinertia.co.uk> <3068FCE0-E927-4D97-BD89-510AE09CC410@netinertia.co.uk> <4B84C324.5090507@diffingo.com> Message-ID: Hi Stewart and James, On Wed, 24 Feb 2010, Stewart Adam wrote: > On 2010/02/23 3:05 PM, James O'Gorman wrote: > >> In terms of packages, would it therefore be fair to say that only the >> bundled version of QDBM will be supported/detected by configure? Yes, in fact I was planning to remove the autodetection entirely and simple rely on the bundled copy being there and usable, for simplicity. >> What I'm getting at is whether packagers should or should not put in >> dependencies for any OS-supplied version of QDBM (if any, whether it be >> in base OS or another package). I think it would be better not to add any dependencies for external QDBM. > Would it be possible to have the configure script probe for and use the > bundled version only QDBM wasn't found on the system? I know that many > distros (especially Fedora) frown upon bundled libraries. I would rather avoid it if possible. It's not a big library, it's not common, I don't believe there is a security issue, and I want to avoid reintroducing the version hell that we're escaping by using a known, fixed version of qdbm with each build on every platform. Cheers, Chris. -- _ ___ __ _ / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | From melissa-bbox at littlebluecar.co.uk Thu Feb 25 21:13:49 2010 From: melissa-bbox at littlebluecar.co.uk (Melissa) Date: Thu, 25 Feb 2010 21:13:49 +0000 Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 Message-ID: Hiya, I've just checked out and tried to build box backup. It appears to be attempting to run ld with an illegal command option (-soname) No previous build errors. uname -a: Darwin Sed.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 Thanks, Mel bsdmake -C qdbm if uname -a | egrep -i 'SunOS' > /dev/null ; then gcc -shared -Wl,-G,-h,libqdbm.so.14 -o libqdbm.so.14.13.0 depot.o curia.o relic.o hovel.o cabin.o villa.o vista.o odeum.o myconf.o -L. -L/usr/local/lib -L/Users/melissa/lib -L/usr/local/lib -lc -lcrypto -lssl -lz -ledit ; else gcc -shared -Wl,-soname,libqdbm.so.14 -o libqdbm.so.14.13.0 depot.o curia.o relic.o hovel.o cabin.o villa.o vista.o odeum.o myconf.o -L. -L/usr/local/lib -L/Users/melissa/lib -L/usr/local/lib -lc -lcrypto -lssl -lz -ledit ; fi ld: unknown option: -soname collect2: ld returned 1 exit status *** Error code 1 Stop in /Users/melissa/boxbackup/trunk/qdbm. make: *** [qdbm-build] Error 1 From chris at qwirx.com Thu Feb 25 21:49:09 2010 From: chris at qwirx.com (Chris Wilson) Date: Thu, 25 Feb 2010 22:49:09 +0100 (CET) Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 In-Reply-To: References: Message-ID: Hi Melissa, On Thu, 25 Feb 2010, Melissa wrote: > I've just checked out and tried to build box backup. It appears to be > attempting to run ld with an illegal command option (-soname) Thanks for the bug report and for testing on OSX, to which I have no access :) > No previous build errors. I think this is because I just added QDBM to Box Backup, and it looks like the QDBM build process is perhaps not quite as portable. > bsdmake -C qdbm I've just checked in a fix for this, please could you update, reconfigure and try again? Cheers, Chris. -- _ ___ __ _ / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | From james at netinertia.co.uk Fri Feb 26 00:14:09 2010 From: james at netinertia.co.uk (James O'Gorman) Date: Fri, 26 Feb 2010 00:14:09 +0000 Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 In-Reply-To: References: Message-ID: Hi Chris, On 25 Feb 2010, at 21:49, Chris Wilson wrote: > Thanks for the bug report and for testing on OSX, to which I have no access :) If I get a chance this weekend, I'll see if I can set up the automated build bot on a few of my machines again - that'll be FreeBSD, Debian and OS X. I think a couple of other people (possibly Stefan?) had been running the buildbot too - not sure what happened! Unfortunately in my case a change of job meant I had much less free time (hence why the snapshot idea didn't really come to fruition...) James From james at netinertia.co.uk Fri Feb 26 21:28:25 2010 From: james at netinertia.co.uk (James O'Gorman) Date: Fri, 26 Feb 2010 21:28:25 +0000 Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 In-Reply-To: References: Message-ID: <2B15CABE-909F-4B44-9C73-98B9407D0D8A@netinertia.co.uk> Hi Chris, On 26 Feb 2010, at 00:14, James O'Gorman wrote: > If I get a chance this weekend, I'll see if I can set up the automated build bot on a few of my machines again - that'll be FreeBSD, Debian and OS X. I've had the bots running all day. You can see the output in trac (when logged in). So far the unit tests are failing on all three platforms. OS X client build is fixed since r2644. Another weird issue is on OS X the unit tests keep hanging at a certain point: 010-02-26 19:47:33,738 [bitten.build.shtools] INFO: TEST: test/common 2010-02-26 19:47:33,738 [bitten.build.shtools] INFO: Killing any running daemons... 2010-02-26 19:47:33,738 [bitten.build.shtools] INFO: Removing old test files... 2010-02-26 19:47:33,739 [bitten.build.shtools] INFO: chmod: testfiles: No such file or directory 2010-02-26 19:47:33,740 [bitten.build.shtools] INFO: Copying new test files... 2010-02-26 19:47:34,452 [bitten.build.shtools] INFO: WARNING: Failed to open file: testfiles/tempfile: No such file or directory (2) 2010-02-26 19:47:34,552 [bitten.build.shtools] INFO: WARNING: Failed to open file: testfiles/tempfile: No such file or directory (2) Not sure if that's an issue with my machine or Darwin. I'll see if I can run it on another OS X machine. James From chris at qwirx.com Fri Feb 26 23:27:23 2010 From: chris at qwirx.com (Chris Wilson) Date: Sat, 27 Feb 2010 00:27:23 +0100 (CET) Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 In-Reply-To: <2B15CABE-909F-4B44-9C73-98B9407D0D8A@netinertia.co.uk> References: <2B15CABE-909F-4B44-9C73-98B9407D0D8A@netinertia.co.uk> Message-ID: Hi James, On Fri, 26 Feb 2010, James O'Gorman wrote: > On 26 Feb 2010, at 00:14, James O'Gorman wrote: >> If I get a chance this weekend, I'll see if I can set up the automated >> build bot on a few of my machines again - that'll be FreeBSD, Debian >> and OS X. > > I've had the bots running all day. You can see the output in trac (when > logged in). > > So far the unit tests are failing on all three platforms. OS X client > build is fixed since r2644. Thanks very much for doing that. Unfortunately it's a bit difficult for me to debug without access to the boxes. In particular I have no 64-bit box to run tests on. Do you have access to such a machine, or do you think it would be possible to host some virtual machines somewhere and run the build bots on them, so that I can debug such test failures? > Not sure if that's an issue with my machine or Darwin. I'll see if I can > run it on another OS X machine. Thanks, please let me know if you can't resolve it. Cheers, Chris. -- _ ___ __ _ / __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer | \ _/_/_/_//_/___/ | We are GNU-free your mind-and your software | From james at netinertia.co.uk Fri Feb 26 23:44:00 2010 From: james at netinertia.co.uk (James O'Gorman) Date: Fri, 26 Feb 2010 23:44:00 +0000 Subject: [Boxbackup-dev] Build Error OSX - svn revision 2368 In-Reply-To: References: <2B15CABE-909F-4B44-9C73-98B9407D0D8A@netinertia.co.uk> Message-ID: Hi Chris, On 26 Feb 2010, at 23:27, Chris Wilson wrote: > Thanks very much for doing that. Unfortunately it's a bit difficult for me to debug without access to the boxes. In particular I have no 64-bit box to run tests on. Understood. > Do you have access to such a machine, or do you think it would be possible to host some virtual machines somewhere and run the build bots on them, so that I can debug such test failures? I can give you access to the FreeBSD and Debian boxes that are currently running the build bot. I'll contact you off-list later with details. Might be able to give you access to an OS X machine too. James From trac at boxbackup.org Sat Feb 27 12:00:01 2010 From: trac at boxbackup.org (trac at boxbackup.org) Date: Sat, 27 Feb 2010 12:00:01 +0000 (GMT) Subject: [Boxbackup-dev] Current open tickets Message-ID: <20100227120001.708CB32508E@www.boxbackup.org> Note: to view an indiviual ticket, use: https://www.boxbackup.org/trac/ticket/(number) The following is a listing of current problems submitted by Box Backup users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Ticket Owner Component Summary - ------ ------ ------------- ------------------------------------------------------------ n 4 martin box libraries Port Box Backup to AIX n 6 box libraries Contribute code: SMTP client, HTTP server, Database drivers, n 7 box libraries Improve restore speed on local repositories n 8 chris box libraries Improve handling of directories with many files n 13 chris bbackupd Fix file locking on Windows n 14 chris bbackupd Fix large file issues on Windows n 16 chris bbackupquery Restore deleted directories may fail a 17 chris bbackupquery List files using wildcards a 20 chris bbackupctl bbackupctl reload reports prior settings n 45 ben bbackupd File diff performance patch (reduced disk IO and wall time n 46 chris bbackupd bbackupd only ever saves reverse diffs, corrupted files on s n 47 chris bbackupd Account numbers greater than 2^31 (0x7fffffff) do not work c n 48 chris bbackupd Locations that don't exist on first run are never tried agai n 49 chris bbackupd ID map (rename tracking) broken since [288] n 50 chris bbackupquery No way to capture stderr under Windows n 51 chris bbackupd No way to force bbackupd to re-upload files under Windows n 52 chris bbackupd Unable to control the maintenance of old vs. deleted files n 53 chris bbackupd Comparing root directory locations does not work under Windo n 54 chris bbackupd Locations not found on disk (e.g. unmounted filesystems) can n 55 chris bbackupd Should store and preserve directory timestamps n 56 bbackupquery Windows: User can polute restore directory by adding a trail n 57 ben bbackupd Create boxbackupresume and other files in DataDirectory n 58 ben bbackupd bbackupquery connection timeout results in error message, sh n 59 ben bbackupd Inconsistent treatment of NotifyScript between Box Backup an n 60 ben bbstored Case sensitivity between bbstored-certs and Boxi n 61 ben bbackupd File statistics: Log the number of uploaded files in additio n 62 ben bbackupd Backups of deleted files may be removed very quickly by hous n 63 ben bbackupd Support hard links in directories n 64 bbackupquery Always a lot of 'has different attributes to store file' mes 29 tickets total.