The support forum

Retrying on errors while scanning

Nov 14, 2016

As of release 76.12 the app includes support for retrying directory retrieval requests while in Scanning phase.

Context


On Windows, an app retrieves directory listings by first saying "get me the first item from *this* directory" and then repeatedly asking "get me the next item" until Windows says "there is no more".

In some case these "get next" requests may fail and with some bizarre error codes. For example, in one case certain NAS device would spit out "invalid command length" error at an arbitrary spot while traversing certain directory. If an app is to retry the same request in a moment, it would go through and the enumeration would continue as normal. This makes very little sense, but apparently this happens.

Retrying on scanning errors


To accommodate for this behavior, the app now allows retrying every request during the scanning phase for a configurable number of times, holding a configurable pause before each attempt.

Furthermore, the app can be set to retry on all, but some errors OR it can be set to retry on specific errors only.

The default


The default is to retry once after a second on all, but "Access denied" errors.

This default is provisional and subject to change in later releases. If it changes, we'll post a note to that effect here.

INI entries


The following two ini entries control the attempt number and the pause interval for a backup job:

     conf.scanning.retry.count         7
     conf.scanning.retry.pause        650 ms

This example sets 7 retries (so it's 8 in total), 650 ms apart. The 'pause' is in a "<count> <time-units>" format , whereby time-units are us, ms, sec, min, hour, etc.

Additionally, the following controls which errors are retried:

     conf.scanning.retry.inclusive    1
     conf.scanning.retry.except        123
     conf.scanning.retry.except        456

This will retry on all errors *except* for 123 and 456.

Conversely:

     conf.scanning.retry.inclusive    0
     conf.scanning.retry.except        123
     conf.scanning.retry.except        456
     conf.scanning.retry.except        789

seting "inclusive" to 0 will empty the retryable error set except for 123, 456 and 789.

As per usual, to find settings.ini for a job - right-click on the job in main window, select Open Folder > Configuration & Logging. To edit the INI - exit the app, open INI in a text editor, e.g. Notepad, make your changes, save, exit editor, start the app.

New topic

Create
Made by Pipemetrics in Switzerland
Support


Follow
Twitter
Dev blog
Miscellanea Press resources
Testimonials
On robocopy
Company
Imprint

Legal Terms
Privacy