This may be quite a unique error but never the less I thought it was worth sharing in case someone else sees it, so if you have found this article as a result of a Google search then please leave a comment below if it helped you out.
The error ‘STATUS_ACCESS_VIOLATION‘ only affects BackupAssist Rsync jobs that are connecting directly to a remote Rsync Daemon rather than using the more recommended option of using Rsync over SSH.
When connecting to the Rsync Daemon, BackupAssist must use a local Rsync.exe command which is part of the cygwin components to establish the session to the remote Rsync server and push data to the Rsync Daemon on the remote server. The default port for an Rsync daemon server is 873.
In contrast when using the ‘Rsync over SSH’ option, BackupAssist first establishes a SSH tunnel (default port 22) to the remote Rsync Server and from within this tunnel uses the remote Rsync command to synchronise and pull data from the client to the server on the remote system or NAS device.
So why do we see this Error?
When BackupAssist is using the Rsync Daemon mode there are two Rsync processes talking to each other – one at the client (BackupAssist) and one on the server. For it to be sucessful both ends must support the same Rsync command set of options. Unfortunately often the exact version of the remote server may not be as up to date as the one used in BackupAssist and then you can see errors where data is not recognised and the job fails with a violation error. In an ideal world we would always try to use the same version of Rsync on both ends, but this may not be easy to setup on remote server depending on whether it is a Windows server running cwrsync, a NAS device or even a Linux distribution.
So how do we fix it?
Where possible we recommend using Rsync over SSH option as this negates the need to match Rsync versions. If this is not an option then one other thing you can try is to tell BackupAssist to try a slightly older version of the rsync.exe executable, which in BackupAssist is provided via the cygwin command set.
There are two supported versions of cygwin 1.7(default) and 1.5. By selecting 1.5 under the Rsync Options, it is more likely to be compatible with older Rsync versions at the remote end.
After changing this try to re-run the job, and you should hopefully see that it runs through without any further errors.