On Sat, 8 Mar 2014 16:06:15 +0000
Colin Percival <[email protected]> wrote:

> On 03/08/14 07:24, tarsnap wrote:
> > On Sat, 8 Mar 2014 14:41:50 +0000
> > Colin Percival <[email protected]> wrote:
> >> I'd recommend using the --checkpoint-bytes option with a fairly low
> >> setting (e.g., --checkpoint-bytes 32M) so that you'll have lots of
> >> checkpoints created.  That way when an archive fails you'll still
> >> have the first section of the archive stored -- and that data can
> >> then be used for deduplication purposes when you create another
> >> archive, which will make future archives use less bandwidth and
> >> complete faster.
> > 
> > Thanks for your reply.
> > So I have to do 2 things:
> > 1) add the checkpoints option
> > 2) create another (NOT the same) archive?
> 
> You can try creating an archive with the same name as you used
> before.  If it fails, that means the previous archive got created
> successfully.
> 
> >> Of course, finding an internet connection which doesn't break for 5
> >> minutes at a time would be ideal.  (5 minutes is how long tarsnap
> >> will keep on trying to reconnect.)
> > 
> > The internet connection breaks down when the power goes out, which
> > happens quite frequently: 2 times a day for 2 hours each.
> > The laptop runs longer than 5 minutes on its own battery, which
> > means tarsnap will always 'give up'.
> > 
> > Which brings me to the following feature request: 
> > A command line option to set the
> > 'retry time' (from 5 min. to inf., and frequency--if not automatic
> > as function of 'retry time').
> 
> The attached patch adds a completely untested and undocumented
> --retry-forever option.  Let me know if it works and is useful. :-)
> 

I'm afraid something went wrong, any idea what it is?
Beow follows:
1) tarsnap version
2) CLI
3) netpacket_op.c.rej


tnx



1)
$ tarsnap --version
tarsnap 1.0.35


2)
[user@fedora-18-x64-use netpacket]$ patch netpacket_op.c <
tarsnap_retryforever.patch 
patching file netpacket_op.c
patching file netpacket_op.c
Hunk #1 FAILED at 469.
Hunk #2 FAILED at 531.
Hunk #3 FAILED at 1466.
Hunk #4 FAILED at 1495.
4 out of 4 hunks FAILED -- saving rejects to file netpacket_op.c.rej
patching file netpacket_op.c
Hunk #1 FAILED at 105.
Hunk #2 FAILED at 199.
Hunk #3 FAILED at 214.
3 out of 3 hunks FAILED -- saving rejects to file netpacket_op.c.rej
patching file netpacket_op.c
Hunk #1 FAILED at 130.
Hunk #2 FAILED at 144.
2 out of 2 hunks FAILED -- saving rejects to file netpacket_op.c.rej
patching file netpacket_op.c
Hunk #1 FAILED at 4.
1 out of 1 hunk FAILED -- saving rejects to file netpacket_op.c.rej
[user@fedora-18-x64-use netpacket]$


3)
--- bsdtar.c    2014-02-17 01:37:46.000000000 -0800
+++ bsdtar.c    2014-03-08 07:58:45.000000000 -0800
@@ -469,6 +469,9 @@
                case OPTION_NO_QUIET:
                        optq_push(bsdtar, "no-quiet", NULL);
                        break;
+               case OPTION_NO_RETRY_FOREVER:
+                       optq_push(bsdtar, "no-retry-forever", NULL);
+                       break;
                case OPTION_NO_SAME_OWNER: /* GNU tar */
                        bsdtar->extract_flags &=
~ARCHIVE_EXTRACT_OWNER; break;
@@ -531,6 +534,9 @@
                case OPTION_RECOVER:
                        set_mode(bsdtar, opt, "--recover");
                        break;
+               case OPTION_RETRY_FOREVER:
+                       optq_push(bsdtar, "retry-forever", NULL);
+                       break;
                case OPTION_SNAPTIME: /* multitar */
                        optq_push(bsdtar, "snaptime", bsdtar->optarg);
                        break;
@@ -1466,6 +1472,11 @@
                        goto optset;
 
                bsdtar->option_quiet_set = 1;
+       } else if (strcmp(conf_opt, "no-retry-forever") == 0) {
+               if (bsdtar->option_retry_forever_set)
+                       goto optset;
+
+               bsdtar->option_retry_forever_set = 1;
        } else if (strcmp(conf_opt, "no-snaptime") == 0) {
                if (bsdtar->option_snaptime_set)
                        goto optset;
@@ -1495,6 +1506,12 @@
 
                bsdtar->option_quiet = 1;
                bsdtar->option_quiet_set = 1;
+       } else if (strcmp(conf_opt, "retry-forever") == 0) {
+               if (bsdtar->option_retry_forever_set)
+                       goto optset;
+
+               tarsnap_opt_retry_forever = 1;
+               bsdtar->option_retry_forever_set = 1;
        } else if (strcmp(conf_opt, "snaptime") == 0) {
                if (bsdtar->mode != 'c')
                        goto badmode;
--- bsdtar.h    2014-02-17 01:37:46.000000000 -0800
+++ bsdtar.h    2014-03-08 07:54:57.000000000 -0800
@@ -105,6 +105,7 @@
        int               option_no_config_include_set;
        int               option_quiet;
        int               option_quiet_set;
+       int               option_retry_forever_set;
        int               option_insane_filesystems;
        int               option_insane_filesystems_set;
        const char      **configfiles;          /*
--configfile */ @@ -199,6 +200,7 @@
        OPTION_NO_NODUMP,
        OPTION_NO_PRINT_STATS,
        OPTION_NO_QUIET,
+       OPTION_NO_RETRY_FOREVER,
        OPTION_NO_SAME_OWNER,
        OPTION_NO_SAME_PERMISSIONS,
        OPTION_NO_SNAPTIME,
@@ -214,6 +216,7 @@
        OPTION_RECOVER,
        OPTION_RECOVER_DELETE,  /* Operation mode, not a real
option */ OPTION_RECOVER_WRITE, /* Operation mode, not a real
option */
+       OPTION_RETRY_FOREVER,
        OPTION_QUIET,
        OPTION_SNAPTIME,
        OPTION_STORE_ATIME,
--- cmdline.c   2014-02-17 01:37:46.000000000 -0800
+++ cmdline.c   2014-03-08 07:51:48.000000000 -0800
@@ -130,6 +130,7 @@
        { "no-print-stats",       0, OPTION_NO_PRINT_STATS },
        { "no-quiet",             0, OPTION_NO_QUIET },
        { "no-recursion",         0, 'n' },
+       { "no-retry-forever",     0, OPTION_NO_RETRY_FOREVER },
        { "no-same-owner",        0, OPTION_NO_SAME_OWNER },
        { "no-same-permissions",  0, OPTION_NO_SAME_PERMISSIONS },
        { "no-snaptime",          0, OPTION_NO_SNAPTIME },
@@ -144,6 +145,7 @@
        { "quiet",                0, OPTION_QUIET },
        { "read-full-blocks",     0, 'B' },
        { "recover",              0, OPTION_RECOVER },
+       { "retry-forever",        0, OPTION_RETRY_FOREVER },
        { "same-owner",           0, OPTION_SAME_OWNER },
        { "same-permissions",     0, 'p' },
        { "snaptime",             1, OPTION_SNAPTIME },
--- tarsnap_opt.h       2014-02-17 01:37:46.000000000 -0800
+++ tarsnap_opt.h       2014-03-08 07:48:30.000000000 -0800
@@ -4,6 +4,9 @@
 /* Use multiple TCP connections when writing an archive. */
 extern int tarsnap_opt_aggressive_networking;
 
+/* Keep trying forever if connection lost. */
+extern int tarsnap_opt_retry_forever;
+
 /* Print statistics using "human-readable" SI prefixes. */
 extern int tarsnap_opt_humanize_numbers;
 

Reply via email to