Front page

fsck behavior

ff42e71f2a9c45d6926168e25649542c
ZULU DECEMBER TRANSIT

From: Martin Hoßbach <mhossbach@gmail.com>
Date: Wed, 23 Mar 2016 08:48:53 +0100

   Hi everyone,
   
   yesterday, when trying to add a new client to my backup, I got the
   "chunk not found" error, so I assume there is some kind of corruption
   in the repository. However: I assume it is nothing serious, and that
   the missing chunk might actually not be used by any client. I did add
   and later remove a client some time ago.
   
   Since fsck is said to take a long time, I started with a simple
   experiment this morning. Created an empty folder, backup up "/etc"
   into it (not important, but I wanted a small sample backup), ran
   -> obnam fsck --fsck-fix --fsck-rm-unused"
   and it found no problems.
   
   Next, I tried to "replicate" the problem, so I picked a file from the
   chunks folder an deleted it. As expected, fsck reported a problem in
   one file. So far so good.
   
   So to get closer to the real problem, I deleted the test client
   -> obnam remove-client test
   and then ran fsck again. It did report that there were 18 unused chunks, but
   a) I would say that number is too low, because I had just removed a
   client holding ~800 files
   b) there was no file actually deleted.
   
   Finally, to replicate the error message, I re-ran the backup, and
   eventually got this error:
   ERROR: R43272X: Repository doesn't contain chunk 3891238620795924913.
   It is expected at chunks/1683/1112/935/360074e8b0d271b1
   
   Now, had fsck actually removed everything unused, I would expect this
   error not to happen.
   
   Oh, also, for the record:
   # obnam --version
   1.19.1
   
   So, my questions:
   * Is this the correct behavior of fsck, given the parameters I've given?
   * What would be the fast/least painful way to find out which
   client/generation/file references this missing chunk, and get rid of
   it, given that I assume that the corresponding client doesn't exist
   anymore?
   
   Thanks,
   Martin
   
   _______________________________________________
   obnam-support mailing list
   obnam-support@obnam.org
   http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-support-obnam.org
From: Martin Hoßbach <mhossbach@gmail.com>
Date: Wed, 23 Mar 2016 08:48:53 +0100

   Hi everyone,
   
   yesterday, when trying to add a new client to my backup, I got the
   "chunk not found" error, so I assume there is some kind of corruption
   in the repository. However: I assume it is nothing serious, and that
   the missing chunk might actually not be used by any client. I did add
   and later remove a client some time ago.
   
   Since fsck is said to take a long time, I started with a simple
   experiment this morning. Created an empty folder, backup up "/etc"
   into it (not important, but I wanted a small sample backup), ran
   -> obnam fsck --fsck-fix --fsck-rm-unused"
   and it found no problems.
   
   Next, I tried to "replicate" the problem, so I picked a file from the
   chunks folder an deleted it. As expected, fsck reported a problem in
   one file. So far so good.
   
   So to get closer to the real problem, I deleted the test client
   -> obnam remove-client test
   and then ran fsck again. It did report that there were 18 unused chunks, but
   a) I would say that number is too low, because I had just removed a
   client holding ~800 files
   b) there was no file actually deleted.
   
   Finally, to replicate the error message, I re-ran the backup, and
   eventually got this error:
   ERROR: R43272X: Repository doesn't contain chunk 3891238620795924913.
   It is expected at chunks/1683/1112/935/360074e8b0d271b1
   
   Now, had fsck actually removed everything unused, I would expect this
   error not to happen.
   
   Oh, also, for the record:
   # obnam --version
   1.19.1
   
   So, my questions:
   * Is this the correct behavior of fsck, given the parameters I've given?
   * What would be the fast/least painful way to find out which
   client/generation/file references this missing chunk, and get rid of
   it, given that I assume that the corresponding client doesn't exist
   anymore?
   
   Thanks,
   Martin
   
   _______________________________________________
   obnam-support mailing list
   obnam-support@obnam.org
   http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-support-obnam.org
From: Martin Hoßbach <mhossbach@gmail.com>
Date: Wed, 23 Mar 2016 08:57:14 +0100

   ...and in addition:
   
   * backup some files into test repository
   * forget all generations
   * remove client
   * fsck --fsck-fix --fsck-rm-unused
   gives:
   forest chunklist: index node 4: No children
   forest chunksums: index node 4: No children
   Checking 18/18: extra chunks
   
   So that explains how I got the idea of the 18 additional chunks -- the
   actual list of unused chunks was much longer -- but it still gives me
   the impression that something is not right here...
   
   Martin
   
   
   
   On Wed, Mar 23, 2016 at 8:48 AM, Martin Hoßbach <mhossbach@gmail.com> wrote:
   > Hi everyone,
   >
   > yesterday, when trying to add a new client to my backup, I got the
   > "chunk not found" error, so I assume there is some kind of corruption
   > in the repository. However: I assume it is nothing serious, and that
   > the missing chunk might actually not be used by any client. I did add
   > and later remove a client some time ago.
   >
   > Since fsck is said to take a long time, I started with a simple
   > experiment this morning. Created an empty folder, backup up "/etc"
   > into it (not important, but I wanted a small sample backup), ran
   > -> obnam fsck --fsck-fix --fsck-rm-unused"
   > and it found no problems.
   >
   > Next, I tried to "replicate" the problem, so I picked a file from the
   > chunks folder an deleted it. As expected, fsck reported a problem in
   > one file. So far so good.
   >
   > So to get closer to the real problem, I deleted the test client
   > -> obnam remove-client test
   > and then ran fsck again. It did report that there were 18 unused chunks, but
   > a) I would say that number is too low, because I had just removed a
   > client holding ~800 files
   > b) there was no file actually deleted.
   >
   > Finally, to replicate the error message, I re-ran the backup, and
   > eventually got this error:
   > ERROR: R43272X: Repository doesn't contain chunk 3891238620795924913.
   > It is expected at chunks/1683/1112/935/360074e8b0d271b1
   >
   > Now, had fsck actually removed everything unused, I would expect this
   > error not to happen.
   >
   > Oh, also, for the record:
   > # obnam --version
   > 1.19.1
   >
   > So, my questions:
   > * Is this the correct behavior of fsck, given the parameters I've given?
   > * What would be the fast/least painful way to find out which
   > client/generation/file references this missing chunk, and get rid of
   > it, given that I assume that the corresponding client doesn't exist
   > anymore?
   >
   > Thanks,
   > Martin
From: Lars Wirzenius <liw@liw.fi>
Date: Sat, 16 Jul 2016 11:23:34 +0300

   On Wed, Mar 23, 2016 at 08:48:53AM +0100, Martin Hoßbach wrote:
   > * Is this the correct behavior of fsck, given the parameters I've given?
   
   No, probably not. I'm afraid "obnam fsck" is in need of some careful
   fixing.
   
   > * What would be the fast/least painful way to find out which
   > client/generation/file references this missing chunk, and get rid of
   > it, given that I assume that the corresponding client doesn't exist
   > anymore?
   
   I'm also afraid Obnam doesn't have anything to help with that, but
   it'd be possible for someone to write a plugin to provide a new
   command for that.