[tahoe-lafs-trac-stream] [Tahoe-LAFS] #897: "tahoe backup" thinks "ctime" means "creation time"

Tahoe-LAFS trac at tahoe-lafs.org
Thu Sep 24 19:43:40 UTC 2015


#897: "tahoe backup" thinks "ctime" means "creation time"
-------------------------+-------------------------------------------------
     Reporter:  zooko    |      Owner:  warner
         Type:  defect   |     Status:  new
     Priority:  major    |  Milestone:  soon
    Component:  code-    |    Version:  1.6.1
  frontend-cli           |   Keywords:  forward-compatibility docs tahoe-
   Resolution:           |  backup time
Launchpad Bug:           |
-------------------------+-------------------------------------------------

Comment (by daira):

 Replying to [comment:18 zooko]:
 > Replying to [comment:3 warner]:
 > >
 > > == using ctime/mtime in backupdb ==
 > >
 > > In particular, I'm not worried about trying to avoid re-uploading in
 the face of user-triggered changes to metadata that doesn't actually
 change file contents. If someone does a "chown" or "chmod" or "touch" on a
 bunch of files, I think they'll accept the fact that "tahoe backup" will
 subsequently do more work on those files than if they had not gone and run
 those commands.
 >
 > But why should we re-upload those files? The unix operating system is
 asserting, by giving us a changed {{{change time}}} and an unchanged
 {{{modify time}}}, that the file contents have not changed. If we are
 relying on the operating system about this sort of thing, for improved
 efficiency, then why not believe it about this and skip the re-upload?
 >
 > Obviously if the operating system asserts that the {{{creation time}}}
 has changed, then we should re-upload.

 It is possible for `ctime` to change but `mtime` not, when the file
 contents change. In particular, suppose there are two files `foo` and
 `bar` that have different contents but the same size and `mtime` (for
 example because they were created at the same time to within the `mtime`
 resolution). Then, `mv bar foo` will not change `foo`'s `mtime`, but will
 set its `ctime` to the current time. (Verified on Linux.)

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/897#comment:22>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list