| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
And compile errors on recent MinGW.
|
|
|
|
|
|
|
|
|
|
| |
Allows us to catch programming errors related to use of a cached reference
to a directory after the cache may have been invalidated by requesting another
directory from the cache, which could clear it.
In DEBUG builds, the cache is no longer cleared, but any entries in it are
invalidated, which is effectively a memory leak, but these builds should only
be used for running tests, where it doesn't matter.
|
| |
|
|
|
|
| |
May help to debug issues with directory cache invalidation in future.
|
|
|
|
|
|
| |
Hopefully all of these changes are inconsequential.
Merged back changes from the test refactor branch to reduce diffs.
|
| |
|
|
|
|
| |
This is hopefully the cause of the segfaults reported by Brendon Baumgartner.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When entries are added to a directory by a command (BackupStoreContext),
and when entries are removed from a directory (by housekeeping), update the
parent directory's entry for us if our size has changed.
Make BackupStoreCheck check for, report and fix errors when directory entries
are directories and the size is wrong (as well as files).
Conflicts:
test/backupstore/testbackupstore.cpp
Fix directories loaded without size being set, leading to warnings later.
We can't check that the old size in the parent entry matched the old real size
of the directory, unless we set the old real size in the directory.
And we don't need to pass the old directory size to
HousekeepStoreAccount::DeleteFile, because we can get it from the directory
itself.
|
|
|
|
|
|
|
| |
Passing the wrong object ID would just result in an assertion being thrown
(in debug builds) or silently doing the wrong thing (in release builds). I
can't see any useful use for this extra parameter, since we can get the
container ID from the directory anyway.
|
|
|
|
|
| |
An incorrect comment led me to believe that this parameter was the new
directory's AttributesModTime, but actually it was its hash.
|
|
|
|
|
| |
Allows creating a directory with a specified modtime (in the parent directory entry).
Tests to come shortly.
|
|
|
|
|
|
| |
Rename mrDaemon to mpHousekeeping and make it a pointer, so that it can
officially be NULL, and don't crash if it is, and we fail to get a lock
on the account.
|
| |
|
|
|
|
| |
Adding and deleting files was not always accounted properly before.
|
|
|
|
| |
It's used in several places, and about to be one more.
|
| |
|
|
|
|
|
| |
Will hopefully prevent future confusion about the meaning of this info
variable.
|
|
|
|
|
|
|
|
|
|
| |
Caused by removal of BackupStoreRefCountDatabase::CreateForRegeneration.
It's not safe to do this in housekeeping anyway, because it might not
complete the scan, leaving an incomplete database, that might persuade
BackupStoreContext that it's OK to delete an object that still really has
references to it.
If your refcount db disappears or is damaged, you need to run a check fix.
|
|
|
|
| |
More accurate name for this variable.
|
| |
|
|
|
|
|
| |
Rename ProtocolObject to Message.
|
|
than the other way around. This is needed to allow clients to have all the
code that they'd need to implement local backups (using the Local protocol)
in subsequent commits.
|