Swap file failure on job with 3.077.383 files

Michael :

Jan 22, 2016

Hi,

I have 30 or some jobs on the same server backing up many TB from fileservers to offsite server.
All jobs runs correct, except one which had run successful but the other day it started to fail with this error:

Its running on Srv2008R2 with 8GB RAM.
All sources are mapped network drives, all destinations are local disks.
Other jobs share network drive and destination drives, so its not a source or destination error.

This happens when there's a folder with more than 1,000,000 files in it. It was put in place as a "sanity check", but apparently it was too conservative for the real world :)

It also happens one of very few hardcoded thresholds in the app, so it cannot be changed through an INI file edit. However this has been resolved in a development build. If you'd like to get a copy, drop me an email at support@pipemetrics.com (it's basically the latest production release plus a small patch to rework this sanity check).

Error 10002 means that the file name was empty (zero-sized) when a file record was read from the swap file. Technically, file names cannot be empty, but a program may end up seeing one if the name merely _starts_ with a NUL character. This in turn may happen if a file is created via so-called "native" (low-level) API and this is usually done to conceal the file from the normal programs. DRM software and rootkits used to do this routinely before, but when it would happen now - I'm not sure.

Now, if that's in fact the case (that is, you have a zero-sized file name), then you should also see a complain about that during the scanning phase. If you don't, then this probably means a bug in bvckup2 itself.

In this case, you should see ~scanner-dst.swp file being left intact in the job's configuration folder after the job completes. It's going to be very big, but it will also be very sparse, so it will compress really well. Please do just that and forward it to me at support@pipemetrics.com *together with the exact error* (just as you have above).

Keep in mind that .swp will contain names of files and folders in your backup, so if you'd rather not share these, let me know and we'll need to find some other way to tackle this.

Actually, I think it's possible that my memory got corrupted as I'm noticing applications crash with no obvious reason sometimes, and it happens more often than few weeks ago. I only ran Windows Memory Diagnostic once and it returned no errors, but I suspect it's not a very good tool. I'll going to test it some more soon.

This is an incorrectly reported error reading a swap file. But it's an IO error nonetheless. More specifically, swap files are used as a temporary off-RAM storage for source/destination file indexes. When operating with a large number of files, the program will periodically write out and read back big chunks of memory to/from a swap file. If an attempt to read from a swap file would fail for some reason, the error wasn't handled right away, but passed on in a form of zero-filled memory chunk to the requesting part of the program. This part would then discard this chunk as corrupted and emit 2 or 3 different kinds of errors depending on the context.

We'll have this reworked for clarity, should be in the next maintenance release.