Bvckup 2 v79.15 Released (December 12, 2018) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.15 Release 79.15 Added an option for quickly reloading a backup job via the right- click menu. This is an advanced option so it requires holding Ctrl down when opening a menu - https://bvckup2.com/wip/12122018 This option is meant specifically for re-reading job settings after applying a manual override. Previously this required a program restart. Now it doesn't, so - a progress. It is also now possible to reload a job using external command-l line control, which compliments nicely already present "load" and "unload" commands. ⦁ Added human-friendly description for ERROR_FILE_CORRUPT and ERROR_DISK_CORRUPT errors. The program will also log an advice to check disk for mark-up and hardware errors as soon as possible. ⦁ Added an option for automatically re-activating a license when the installation fingerprint changes. Details are available on as-needed basis. ⦁ Changed scan thread count to be an option tied to the source and destination instead of being specified for local/remote location types. ⦁ Changed the run counter used for the %RUN#...% variable to *not* include backup runs that produced no changes. As per - https://bvckup2.com/support/forum/topic/1135 See https://bvckup2.com/support/forum/topic/1091 for the context. ⦁ Changed "Create Backup" flow to allow destination folder to be a subfolder of the source, with a warning. Previously this was only allowed if destination was the OneDrive folder, and it was flat out disallowed in earlier releases. ⦁ Fixed an issue with delayed display of the copying progress. As per - https://bvckup2.com/support/forum/topic/1132 The root cause was that the service and UI processes have their own microsecond-resolution clocks that are used for high-prevision things such as IO timers and some such. These clocks are started when the process starts, so in service mode they end up being offset relative to each other (because the UI typically starts some time after the service). So what happened is that the start time of current backup step was recorded by the engine using this clock rather than the system clock. It then passed it to the UI for display, but on UI's scale it was offset and appeared in the future => hence the delay. ⦁ Fixed an issue handling out-of-disk-space condition when saving destination snapshot at the end of a backup run.
Bvckup 2 v79.16 Released (December 21, 2018) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.16 Release 79.16 ⦁ Resolved an issue with bvckup2.exe starting to eat ~10% of CPU once machine's uptime goes over 49 days. This was a good one. For internal housekeeping tasks the engine uses a millisecond resolution clock that is stored as 64 bits. This is plenty enough for storing milliseconds, but there was one place in the code that treated it as 32-bit. The problem was with the code that scheduled timers. You tell it that in X ms you want a callback, and it gives you a callback around that time. Timers. This code sorts all scheduled timers into logarithmicaly-spaced buckets similar to "timer wheels" as used in the Linux kernel [2]. The problem was with a bit of code that determined how far out the next timer was from _now_. It erroneously treated milliseconds as a 32-bit value, so after (2^32/1000/60/60/24) days of uptime this code invariably decided that the next time was already past due. This caused the main loop in the engine to spin without sleeping and that led to elevated idle CPU usage. BUT. You are rightfully thinking - how come this only affects 79.15? Excellent question. Prior to this release RDTSC value was offset so that it would read 0 at the moment of _program_ launch. This meant that the 10% CPU issue was still there, but it didn't manifest itself until the _program_ was up for 50 days. This is not a common case, so the whole issue remained unnoticed since... well... pretty much version 0.1. Then, in 79.15 this RDTSC offset was removed to sync internal clocks between the engine and the UI. This resolved the first "Fixed" entry on 79.15 change log, but it also pushed the CPU issue into the spotlight as there *is* a fair number of boxes with good uptime. All in all though, it's all compiler's fault. Entirely. [1] https://en.wikipedia.org/wiki/Time_Stamp_Counter [2] https://lkml.org/lkml/2005/10/19/46 ⦁ Resolved an issue with backup jobs auto-disabling themselves. In particular this happened when the program was running in service mode *and* if the UI was not launched within first 30 minutes from the service launch. Again, this was specific to 79.15 because it included a rework of the UI-to-engine communication protocol. One part of the change had to do with verifying program's self-consistency and one of the checks failed if the UI wasn't present. This led to the program entering a "safe mode" of sorts when it disabled a backup job after a run as a precaution. ⦁ It's now possible to use $QUOTE in job's description to have it expanded into job's custom queue name if there's one set. This is related to https://bvckup2.com/support/forum/topic/934 The same change also adds BVCKUP_queue env. var to the pre/post commands and email alert templates.
Bvckup 2 v79.17 Released (December 29, 2018) Website / Download: https://bvckup2.com/update Release Notes
Bvckup 2 v79.18 Released (January 14, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changes v79.18 Release 79.18 ⦁ New storage devices, volumes and drives monitoring module. See here for details - https://bvckup2.com/wip/14012019 ⦁ New power events monitoring module. In particular, it now uses native service notifications for receiving power events when the program is running in service mode. Previously, the engine relied on windows messages for that, which required creating an invisible (dummy) window and this sometimes failed - seemingly randomly, but exclusively on Windows Server machines. ⦁ Tentative fix for staged copying conflicting with an obscure Windows feature called "file tunneling": https://blogs.msdn.microsoft.com/oldnewthing/20050715-14/?p=34923 More specifically, when set to copy files in full (and when copying files smaller than the delta copying threshold) the engine defaults to using so-called "staged copying". That is, it would copy the file into a temp file first and then rename it in place, overwriting an older copy if one exists. The fix is in response to the report that described "created" time on a backup copy somehow getting out of sync with the source, even though the timestamps sync completes without errors. The fix is _tentative_ because file tunneling is the only plausible explanation for this lovely behavior, and because the report came in late in the release cycle. ⦁ Resolved an issue with erroneously suppressing copying of "created" timestamps when a quirky Synology volume is detected at _source_ location. As per - https://bvckup2.com/support/forum/topic/1151
Bvckup 2 v79.19 Released (January 23, 2019) Website / Download: https://bvckup2.com/update Release Notes
Bvckup 2 v79.20 Released (February 4, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.20 Release 79.20 ⦁ Reworked monitoring of mapped network drives. First, drives that appear offline after program's start, but can be "resuscitated" with Windows' help are now correctly recognized as online after connection is re-established. This bit got broken in 79.18 with introduction of the new storage tracking module. Kudos to Greg for reporting the issue and helping with isolating it. Second, the engine now also detects network drives going offline, which is something it didn't do before at all. ⦁ Reworked reporting of ini/override warnings. In particular, this relates to reporting bad override entries on job's reload. As of this release, the engine tracks which configuration setting was picked up from which INI file and it will report this file when logging an INI warning. Kudos to Martin for running into this - https://bvckup2.com/support/forum/topic/971/6386 ⦁ Added workaround for buggy SD card readers. SD card readers of certain vendor will for reasons unknown sometimes report that "the volume is not ready" when the volume is in fact A-OK. In other times they would refuse to report drive's geometry or partition information. The program can now tolerate this eccentric behavior. ⦁ Added workaround for strange 'sparse reparse' points. This is second workaround for an issue with bizarre reparse points surfacing in C:\Windows folder, always somehow attached to Sparse files. See https://bvckup2.com/support/forum/topic/1116 for details. The workaround itself is to treat a reparse point as a regular file IF its reparse tag is less than 0x00100000 (hex) and if it has a Sparse attribute set. This can be disable in job's settings if needed. ⦁ Cosmetic changes to the logs - tidied up messages here and there, removed extraneous line breaks, etc.
Bvckup 2 v79.21 Released (February 19, 2019) Website / Download: https://bvckup2.com/update Release Notes
Bvckup 2 v79.22 Released (March 4, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.22 Release 79.22 ⦁ Added check to detect dead symlinks during the scan as per - https://bvckup2.com/support/forum/topic/1162 ⦁ Added an alternative warning for when creating a new backup job that points at existing non-empty destination folder AND when "Deleting" option is changed to "Keep backup copies": https://bvckup2.com/support/data/destination-exists-warning-alt.png Same warning, with "Deleting" left at its default "Archive" setting: https://bvckup2.com/support/data/destination-exists-warning.png ⦁ Resolved an issue with internal delta state clean up. This is referring to the removal of block-hash state files after respective source file is either deleted or shrunk down to no longer qualify for delta copying. ⦁ Resolved an issue with updating empty files when a System attribute is set on their backup copy. Previously this would fail with "Access denied" error due to a certain (rather obscure) provision in the file system API. With this release Bvckup2 will clear this attribute off the backup copy prior to updating it. This is an extension to an existing mechanism that clears ReadOnly and Hidden attributes, so the program now basically checks if any of these three attributes are set on the backup copy and clears them if they are. ⦁ Further UI improvements to double-buffered control rendering.
I'm not sure what you mean by "clashing" but Bvckup2 has a completely parallel architecture allowing multiple backups to occur simultaneously. There is an option you may set to allow "single streaming" to occur... basically one operation at a time when multiples are simultaneously scheduled.
Bvckup2 offers that option as lots of simultaneous backups can possibly eat up quite a bit of your disk to disk hardware bandwidth, which may affect your System interactively while you are trying to use it during that time. It's a very efficient program using your System's I/O capability... getting the most out of your hardware subsystems.
Bvckup 2 v79.23 Released (April 3, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.23 Release 79.23 Reworked the program mode switching process. Read all about it here - https://bvckup2.com/wip/29032019 ⦁ Reworked storage monitoring to be asynchronous. The initial scan of the storage stack is still done synchronously (that is, the program waits for it to complete before continuing with its initialization), but all subsequent updates in response to device/volume activity is now done asynchronously, in the background. The main reason for the change is that despite all the efforts to avoid making any blocking or slow requests, there are still cases when even the most trivial request may take several seconds to complete. This includes cases of not fully spun up HDDs, dying drives that are still unsure if they want to die completely or not, etc. ⦁ Added support for requerying faulty storage volumes. This is related to the previous change. Apparently there exist device/drive combos that announce arrivals of new storage volumes before these volumes are actually operational. So if the program attempts to query basic volume details _immediately_ after its alleged arrival, there are cases when this request will fail. Previously, a volume like this was assumed to be faulty and ignored. So any jobs bound to this volume remained in "Waiting for device" state and didn't get to run. With this change, the program will try and re-query the volume once, in 5 seconds after the original attempt. If this too fails, only then the volume will be marked as broken and ignored. ⦁ Added support for verifying file size after copying. With this release the copying module will check if the resulting size of a backup copy as reported by the file system matches up with the expectation. This is added for one very specific case - for FAT volumes (not FAT32 or ExFAT, just plain FAT) that accessed remotely, through Samba. Apparently in this case it's possible to create a file larger than 4 GB in size, with all writes completing successfully, but the resulting file size will be 0. This is some issue with Samba/FAT combination, so this check is basically meant to detect this combo and warn about it. ⦁ Resolved an issue with the storage monitoring module. The size of the storage stack information was growing by 20 bytes per device, per rescan due to cross-references between devices and volumes not being cleared correctly. This is obviously not a big problem unless there's a lot rescanning going on... which is exactly what happened in one reported case, where a dying flash drive was repeatedly generating "physical layout changed" events. This caused the stack information size swell in size, eventually growing over the maximum size of the UI-to-engine protocol message... which triggered an internal sanity check in the code and shut down the program. In good news, that sanity check worked as designed. ⦁ Resolved an issue with scanning errors of the top folder - that is, if the program ran into a _retryable_ error when just starting to scan either the source or destination folder, the retrying didn't work as expected. Fixed now. ⦁ Resolved an issue with the About window - in some cases it would show an "action" button, i.e. "Reactivate", partly off the screen and have a problem with showing the right license status.
Bvckup 2 v79.23.1 Released (April 4, 2019) Website / Download: https://bvckup2.com/update - changelog for this version not available -
Bvckup 2 v79.24 Released (April 10, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.24 Release 79.24 Enabled collection of the device health data. The storage monitoring module now queries SMART/NVMe health data from local storage device, if possible. When the program starts up, it first does a quick device scan just to collate basic device information. This scan is done synchronously - the backup engine waits for it to be completed before entering the "running" state. Then, once started, the engine then polls devices for their SMART data and this is done asynchronously, in the background, because retrieving this data can be slow and it may also require spinning up the drives (in theory it shouldn't, in practice - sometimes it does). After that it will also query SMART data from new devices that get plugged into the machine. This too is done asynchronously. SMART data is not (yet) refreshed periodically, so this version does not _monitor_ SMART status per se. Nor does it actually report it through the UI. Health status of the devices is logged in the storage log and the summary of it is also logged in the central program log. The main goal behind this change is to complete gradual roll-out of the new storage module and evaluate it against larger installation base: 79.18 introduced the new storage monitoring module, sans SMART. 79.23 switched the module to use asynchronous scanning. 79.24 enabled the gathering of the SMART data. If all goes well (it should), the next step will be the tracking of SMART data over time and integration into the UI as a first-class feature. ⦁ Reworked the handling of faulty storage volumes - this has to do with how the engine deals with volumes that can't be queried for their basic information. 79.23 introduced a single re-query attempt under certain conditions, but these conditions proved to be incorrect and sometimes caused the volumes to be re-queried perpetually, in 5 second intervals. ⦁ Cleaned up storage module logging - it's just marginally better looking and a bit more pleasant to read... if that's your thing. ⦁ Resolved an issue with the storage module - in certain cases the volume extent information (offset/size) were recorded incorrectly, which caused the tracking ID of respective device to become ill- formed, throwing off device tracking. This should be fixed now. ⦁ Resolved an issue with UI transitions - in certain cases the UI would erroneously trip an internal self-consistency check when validating the layout of a window after it was transformed from one state to another. This affected More options" page of Backup Settings, "Device Tracking" and "How To Send" dialogs.
Bvckup 2 v79.25 Released (May 9, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.25 Release 79.25 ⦁ Support for indicating rudely interrupted backups - that is showing if a backup run was aborted part-way through because Bvckup 2 process terminated unexpectedly. Details - https://bvckup2.com/wip/30042019 ⦁ Support for not logging suppressed delete operations. As per - https://bvckup2.com/support/forum/topic/436/6504 Previously, if a backup job was set to "Keep backup copies of items deleted at source", then it would still emit a log entry for each delete operation that was planned, but ultimately suppressed. With this release these delete operations are logged only if there's a non-delete operation that depends on them. For example, if a file called "abc" was replaced with a folder called "abc", then backing up this change requires first deleting the backup copy of abc-the-file. Since this is disallowed, the folder cannot be created and so the file-delete operation *is* logged to establish the context for folder-create failure. Edge cases, gotta love them. ⦁ Resolved an issue with the file move detection logic. In particular, if a symbolic link was replaced by a file with the same name, this caused the planning module to first emit delete-link, create-file operations, which were then erroneously coalesced into a move-file that was, ultimately, tried to rename file into itself and that triggered a self-consistency check in the backup engine when it was trying to execute this nonsense.
Bvckup 2 v79.26 Released (June 5, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.26 Release 79.25 ⦁ Added detection of corrupted and rapidly changing files. Read all about it here - https://bvckup2.com/wip/04062019 ⦁ Added support for "vertically maximized" window state - that's the case when you double-click on the top or bottom of the window frame and it gets stretched out vertically to the max. With this release opening and closing Log Panel now works just like it does if the window was properly maximized. ⦁ Cleaned up error reporting a bit - sometimes the log needs to record a failed condition rather than a query (that may fail in a variety of ways). Prior to this release these failures were recorded with a fake error code of 12345, i.e. it would say "VssIsOkToContinue() failed with 12345". This nonsense is no more. It will now simply say "Xyz() failed". ⦁ Upgraded the toolchain used for assembling the program. Moved from v120_xp platform toolset to v140_xp, which largely means using a newer (and possibly better) compiler and a new version of the C run-time library. Incidentally, the latter also caused program's EXE to swell by almost 40KB just because. On the plus side, this helped fishing out a couple of smaller typos with log formatting... Still, at 20K in binary code per typo it's a bit steep.
Bvckup 2 v79.27 Released (June 8, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v79.27 Release 79.27 ⦁ Resolved an issue with the program failing to initialize its window at launch (and complaining that something went wrong). This was due to support for "vertically maximized" window state that was added in the previous release. This state is not officially documented, so detecting it was based on heuristics, which proved to be insufficiently strict and prone to false positives on certain Windows 10 builds. Fixed these to be far more conservative. ⦁ Resolved an issue with the diagnostic console caused by the switch to the new platform toolchain, again in the previous build.
Bvckup 2 v80.1 Released (June 17, 2019) Website / Download: https://bvckup2.com/update Release Notes Spoiler: Changelog v80.1 Release 80.1 ⦁ Reworked how verbose file and folder exclusions work Starting with R80 explicitly excluding a folder in Backup What window of backup settings now unconditionally takes all folder contents out of backup, with no other "include" rules being applied to it. See this post for details - https://bvckup2.com/wip/11062019 ⦁ Updated the logo See this post for details - https://bvckup2.com/wip/06062019 ⦁ Reworked check-for-updates mechanism for better clarity See this post for details - https://bvckup2.com/wip/13062019