The support forum

Release 78

Aug 29, 2017

Release at a glance

⦁    Completely reworked file/folder exclusion/inclusion module
⦁    Added support for "quiet times" in the scheduler
⦁    Added support for verbose reporting of configuration issues

Notable fixes

⦁    Fixed an issue with monthly schedules
⦁    Fixed an issue with handling out-of-space condition
⦁    Fixed an issue with the "scroll to last error" UI feature
⦁    Fixed an issue with preserving delta state when copying errors out

Smaller changes

⦁    Periodic backups can now be scheduled for Feb 29th
⦁    Auto-updates will now wait until the backup engine is idle
⦁    .bzvol folder is now excluded by default
⦁    All .ini files now start with an UTF-8 byte-order-mark

Important changes from later 77.xx releases

⦁    Speeded up the scanning of remote shares

⦁    New mode for email alerts - "on changes and errors"

⦁    Periodic scheduling fallback for faulty real-time jobs

⦁    Support for grouping jobs into scheduling queues

Aug 29, 2017

Completely reworked file/folder exclusion/inclusion module

The way exclusion/inclusion rules work got a major overhaul resulting in a simpler and more flexible filtering logic.

        Details are here -

An immediate effect of this change is that the point-and-click part of the "Backup What" window now supports _including_ items in _excluded_ folders and vice verse.

        Details are here -

Aug 29, 2017

Added support for "quiet times" in the scheduler

It's now possible to suppress scheduled and real-time backups from running on specific dates/times.

        Details are here -

Aug 29, 2017

Added support for verbose reporting of configuration issues

Prior to this release Bvckup 2 performed certain sanity checks of backup jobs when it was loading them (e.g. that the source location is specified) and _it did not load jobs_ that failed these checks.

However over the years the program accumulated quite a few ini-only features that come with fairly complicated configuration requirements. The freshly introduced "quiet times" is a good example.

Starting with this release the program *will* load a misconfigured job. It will then log relevant complaints, disable the job and keep it disabled until reported issues are resolved and the program is restarted (or the job is reloaded via the command line).

        It looks like this -

Aug 29, 2017

Notable fixes

⦁    Fixed an issue with monthly schedules - in some rare cases it would calculate the time of next run that was off.

⦁    Fixed an issue with handling out-of-space condition - more specifically, with very large backups and in the presence of large swap files generated by the scanning module. Now it gracefully complains instead of panicking, just as it should.

⦁    Fixed an issue with the "scroll to last error" UI feature - more specifically, in a case when the log file was unreadable, so the log viewer got confused as to where exactly it should be scrolling.

⦁    Fixed an issue with preserving delta state - the delta state was incorrectly discarded if a delta copying attempt failed exactly at the first write request. Now it doesn't do that, just retains the state as it was.

Aug 29, 2017

Smaller changes

⦁    Periodic backups can now be scheduled for Feb 29th - that is, added proper support for leap years. Woot.

⦁    Auto-updates will now wait until the backup engine is idle - when the check-for-updates option is set to auto-update, the program will now apply the update only when there are no running jobs. This can be suppressed and the update module can be told to go ahead asap by setting the following bvckup2-engine.ini key:

        updates.conf.auto_update.asap      1

⦁    .bzvol folder is now excluded by default - courtesy of Backblaze

⦁    All .ini files now start with an UTF-8 byte-order-mark - as per

Aug 30, 2017

Release 78.1 & 78.2

⦁    Non-critical backup configuration issues no longer cause the job to be disabled on program's launch. Instead, the program will merely log a complaint and ask to review the problem as time permits.

⦁    Resolved an issue with validation of filtering rules when they are being converted to a new format. In particular, the program would complain that "verbose rule sequence" is invalid if the filtering mode was set to "start with a blank list".

Sep 01, 2017

Release 78.3

⦁    Reduced log verbosity during the scanning phase. Now the rule matches are logged only if the rule reverses the default action for the item, i.e. if its parent folder is set to include and the rule says "exclude" or vice verse.

⦁    Patched scanning module to not descend into excluded folders if these are excluded with a "final" rule. This should speed things up a bit in certain cases.

⦁    Resolved an issue with real-time monitoring when the monitoring is set up _while the backup is running_, e.g. when a manual job is started, then its type is changed to real-time and then the run is cancelled. Prior to this patch Bvckup 2 would've tried to set up the monitoring twice, noticed that and shut itself down as a precaution. No more of this.

⦁    Resolved an issue with monthly scheduling.

Sep 10, 2017

Release 78.4

⦁    Resolved an issue with the UI spamming for feedback.
      This as per

This was caused by a bug in handling of deprecated INI items. Older versions used to store the bitmask of all shown notifications in a key called "show_once". A couple of years ago this key was renamed to "messages_shown". The old key was still read and processed, but it was marked as read-only and was never written out.

When a "feedback" message is shown, the "messages_shown" mask is updated and its INI key is marked to be written out. The bug was that 78.x releases would mark the _old_ key (because it came first on the internal list) rather than the new key. The old key was read-only, so nothing got actually put into the INI => the UI kept asking for feedback on every restart.

Sep 18, 2017

Release 78.5

⦁    Added support for OneDrive reparse points - recent updates to W10 rolled out a newer version of OneDrive that now uses reparse points to inject its principle folder into the file system. This change tells Bvckup 2 to process this folder as a regular directory. For the context see [1].

⦁    Added new default exclusion for a file internal to OneDrive - a zero-sized file called .849C9593-D756-4E56-8D6E-42412F2A707B with System and Hidden attributes is now excluded from the backups by default.

⦁    Added .ini support for specifying share passwords in plaintext - this is as per [2]. For a password settings (such as the one for a share or an SMTP server login) it's now possible to specify the password in the INI file in plaintext. This is done by starting the right-hand part with ! sign, e.g.

        conf.dst_net_user             guest
        conf.dst_net_pass             !SuperSecret

Note that passwords are always stored obfuscated, so the plaintext will be replaced with an obfuscated version the next time bvckup2 saves the INI file.

⦁    Fixed a small issue with error handling in the delta copier - one of the internal self-consistency checks was too strict and erroneously fired when a file needed updating at an offset of 0 and the write request failed immediately.


Oct 04, 2017

Release 78.6

⦁    Added support for copying NTFS alternate data streams on files. See here for details -

NOTE that streams on *folders* are NOT replicated or processed in any way. This is by design, but it's subject to change in later releases.

⦁    Reworked the [More Options] > [Copy Also] section of backup settings. See here for details -

⦁    Reworked how security attributes (owner, group, DACL, SACL) are cloned. Previously this was done with NtQuery/SetSecurityObject from Native API and it was setting each piece separately. Now it uses Get/SetSecurityInfo from Win32 API and it queries and sets all required bits in one go.

⦁    Switching back to desktop mode now unconditionally removes "Bvckup 2 Service" user account if it exists. Previously, it was removing this account only if it was still used by the bvckup2 service. This led to an issue when the service was switched to run under another account and the app was switched to the desktop mode. At this point trying to switch the app back to the service mode would fail (as a precaution) as the "Bvckup 2 Service" account would already be there.

⦁    Added support for 0xA000001D reparse point type, it is now ignored by default, as per

⦁    Fixed an issue with reading plaintext passwords from the INI files, as per

⦁    Fixed an exclusion rule for OneDrive internal file to actually _exclude_ the file rather than _include_ it, as per

Oct 05, 2017

Release 78.7

⦁    Re-reworked how security attributes are copied to the backup. For the context, see here -

Oct 08, 2017

Release 78.8

⦁    Resolved an issue with recording file timestamps in snapshot.

This had to do with 78.6 and 78.7 trying to reduce the number of kernel requests it makes when copying file/folder meta info (timestamps, attributes, etc.) They would first try to use certain API that is usually available except for some cases (such as Samba based shares). For these cases there’s a fallback option that it a bit more verbose but known to work unconditionally. Now, the irony is that the fallback option wasn’t correctly reading back timestamps off backup copies, so when they got recorded in the snapshot (to be used on the next run) they remained at zeroes, causing affected file to always appear as modified.

⦁    Reworked how the file system API support is tested

Tangentially related to the above. Earlier releases would check if the meta can be retrieved *and* set using this faster API as a *single* test. This wasn't a very smart thing to do, because the test would fail if the source location happens to be read-only. So this release splits this test into two and detects API support for Get and Set operations separately.

Oct 19, 2017

Release 78.9

⦁    Added an option for running a backup on program's start.

This can be enabled on per-job basis by setting the following entry in job's settings.ini to 1:

        conf.run_on_engine_start                           1

See for more.

⦁    Added an option for running a backup when it exits "Waiting for the device" state. For example, when a removable backup drive is plugged into the machine.

This can be enabled on per-job basis by setting the following entry in job's settings.ini to 1:

        conf.run_on_device_arrival                         1

See for more.

⦁    Added a message to the report of "Switch mode" failures to cover the case when an older instance of Bvckup2 service is pending removal, because it has a Properties window open in Service Manager.

⦁    Resolved an "access denied" issue when updating zero-sized files.

When Bvckup 2 sees an empty file, it uses a simpler code to back it up, e.g. it doesn't bother with the data copying loop, etc. In recent releases it also adheres to the "least privilege" principle when requesting access to the source/backup copies and so it wasn't asking for full "write" access when processing zero-sized files, because no actual _writing_ is planned.

Apparently, in some cases "write" access still needs to be requested and if it's not, then the file access request fails with "access denied". Fixed now.

⦁    Resolved an issue with the appearance of a _static_ version of the systray icon used in "Busy" state. See the last item here for the context -

⦁    Resolved an issue with the system tray icon not showing alerts for missed backups on program's launch _if_ the program is set to start minimized.

Dino :

Oct 20, 2017

conf.run_on_device_arrival                         1

Nice :-)

Oct 24, 2017

Release 78.10

⦁    Added support for new OneDrive version distributed with Windows 10 Fall Creators Update. See for the context.

⦁    Reworked "Backup Settings > Backup What" file/folder browser to show the content of supported reparse points, including new OneDrive folder.

⦁    Reworked backup engine to clear Hidden attribute off the backup copy of files before working with them. Previously, the engine only cleared the ReadOnly attribute in this way. Kudos to Rens W. for reporting this one.

⦁    Reworked pre/post command processing to allow merely launching commands and to also tolerate timeouts when the job is set not to care about command's return values. Kudos to SEKCobra for reporting this one -

Nov 09, 2017

Release 78.11

⦁    Resolved an issue with $time_attempted variable not getting expanded when sending "Missed a backup run" email alerts. Kudos to Ian, as per

Nov 26, 2017

Release 78.12

⦁    Added context fpr "DigestSymlink failed" errors logged during the scanning phase. Now shows the exact item this applies to as well as the target item the link is pointing at. As per -

⦁    Added an option for customizing location of the file used to save destination file index (a "snapshot") between the backups. By default it is stored in the backup's configuration directory, but in some cases it makes more sense to save elsewhere, e.g. with the backup itself.

When the file is indeed stored with the backup, it will be automatically ignored by the engine when it scans destination.

This is a per-job setting and it is controlled by the following key -

        conf.scanning.snapshot_file   X:\save\it\here\snapshot.dat

Note - this should be a full _file_ name, not just a path to a folder.

See for how to find and edit job's settings.ini file.

⦁    Weekday-based quiet periods now don't require the repeat interval. It can still be specified (in 1 week multiple), but if it's not, then it is assumed to be 1 week. For example, previously it was required to say

         conf.quiet_time    Monday 12:34, 10 hours, 1 week

whereby now it's possible to shorten it to just

         conf.quiet_time    Monday 12:34, 10 hours

For context, see -

Nov 27, 2017

Release 78.13

⦁    Resolved an issue with backups getting stuck in the Scanning phase, as per

This had to do with a module responsible for multi-threaded processing of streams of homogeneous tasks, e.g. of a "scan this folder" type. This in turn was caused by the prep work for R79, which, if all goes as planned, will introduce an option of fully parallel backup processing built on top of this new threading engine.

*** If you are on version 78.12, the update is strongly recommended ***

Dec 04, 2017

Release 78.14

⦁    Added an option for blocking system reboots such as those imposed by Windows Updates while backups are running. See for details.

Dec 05, 2017

Release 78.15

⦁    Resolved an issue with backups getting stuck in the Scanning phase, as per

Part two of the issue resolved in 78.13. Manifested itself on the machines where thread spawning was somewhat slower than on average. Resolved now.

Dec 08, 2017

Release 78.16

⦁    Resolved an issue with saving a snapshot of destination index when destination scan is cancelled mid-way through, whereby the snapshot should've not been saved. Obviously.

⦁    Resolved an issue in a caching layer of the swap module [1], whereby entries that crossed a page boundary might've had their on-disk image saved incorrectly. This might've potentially led to swap-related errors or even a full-blown application crash.

⦁    Starting with this release, we now build an alternative version of the setup package that includes an _uncompressed_ 64-bit binary. This is due to a rare (and currently unidentified) issue with upx compressor as per [2]. The uninstaller and 32-bit bvckup2.exe in this setup package are still compressed.

This version is distributed on as-needed basis only. If we ask you to switch to this version, then you will be automatically put on a dedicated update channel, meaning that "upx-less" installs will receive "upx-less" updates.


New topic

Made by Pipemetrics in Switzerland

Dev blog
Miscellanea Press resources
On robocopy

Legal Terms