On Dec 17 2015, Nikolaus Rath <[email protected]> wrote:
> That was not a good idea. If you had specified the cachedir, you
> wouldn't have lost any of the data. Note that you must have seen the
> following warning from fsck.s3ql:
>
>
>               Backend reports that file system is still mounted elsewhere. 
> Either the file system
>               has not been unmounted cleanly or the data has not yet 
> propagated through the backend.
>               In the later case, waiting for a while should fix the problem, 
> in the former case you
>               should try to run fsck on the computer where the file system 
> has been mounted most
>               recently.
>
>               Enter "continue" to use the outdated data anyway:
>
> I'm not sure how to make it more explicit that this is a dangerous
> operation. Note that you had to enter "continue" - it wasn't enough to
> just press enter or 'y'.

Thinking about it, there is soom room to make this harder to do by
accident. I just committed this change:

diff --git a/src/s3ql/fsck.py b/src/s3ql/fsck.py
--- a/src/s3ql/fsck.py
+++ b/src/s3ql/fsck.py
@@ -1203,13 +1203,18 @@
               In the later case, waiting for a while should fix the problem, 
in the former case you
               should try to run fsck on the computer where the file system has 
been mounted most
               recently.
+
+              You may also continue and use whatever metadata is available in 
the backend.
+              However, in that case YOU MAY LOOSE ALL DATA THAT HAS BEEN 
UPLOADED OR MODIFIED
+              SINCE THE LAST SUCCESSFULL METADATA UPLOAD. Moreover, files and 
directories that
+              you have deleted since then MAY REAPPEAR WITH SOME OF THEIR 
CONTENT LOST.
               ''')))
 
-        print('Enter "continue" to use the outdated data anyway:',
+        print('Enter "continue, I know what I am doing" to use the outdated 
data anyway:',
               '> ', sep='\n', end='')
         if options.batch:
             raise QuietError('(in batch mode, exiting)', exitcode=41)
-        if sys.stdin.readline().strip() != 'continue':
+        if sys.stdin.readline().strip() != 'continue, I know what I am doing':
             raise QuietError(exitcode=42)
 
         param['seq_no'] = seq_no


Hopefully this will prevent some such accidents in future.

Best,
-Nikolaus

-- 
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

             »Time flies like an arrow, fruit flies like a Banana.«

-- 
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to