Changed Strict Volume Identification to no longer examine deviceModel and deviceProtocol
Implemented full Diagnostic Logging support in the InterConneX connections
Bug Fixes:
Fixed a bug when communicating with an InterConneX sharespace as a target whereby it was not likely going to be able to copy into a locked folder
Fixed a bug whereby if invoking a Trial Sync and target validation fails, subsequent attempts to invoke a standard sync (after correcting the cause of the validation failure) would invoke Trial Sync again unexpectedly
Fixed a few diagnostic messages that were being generated in non-debug builds
Fixed the logic used to determine a unique, temporary file name for copying to a remote cloud or InterConneX target as it had concurrence issues and could return non-unique filenames if called simultaneously from different threads
Fixed a bug whereby setting the UF_HIDDEN, UF_IMMUTABLE and UF_APPEND BSD flags on a file stored in an InterConneX target was prone to setting random values for those flags
Fixed a bug whereby extracting a file path from a collection record could result in a corrupt path. This could lead to errors or even a crash
Fixed a bug whereby the read-only destination readiness test would report "Left target is read-only" when BOTH targets were read-only, even though it was a left-to-right sync
Version 4.9.3:
Enhancements and Changes:
Changed the algorithm for determining temporary file names to be less prone to natural filename collisions during concurrent copying tasks.
Now handles any exceptions when obtaining attributes from an SFTP directory entry and treats this condition as a non-directory entry (i.e. it just skips it).
When a comparison helper is called, the sync target's file manager is now used to obtain information about the files being compared.
Now validates any relative alias object created and compares it against the original item to catch potential mismatches.
Now only replacing the reference to the task document when modifying a scheduled item if it has actually changed.
Improved memory management in the Backblaze B2 storage provider.
Added logic to the sync task document loader so that it can better deal with potentially damaged task documents.
Significantly reduced the size of the scheduler database and the overhead of loading/saving it.
More efficiently instantiate scheduled items from the scheduled items database to handle potentially corrupt elements.
Modified how the scheduled item database gets saved so that multiple changes made in quick succession are coalesced before saving.
Reduced app activation overhead by no longer reconstructing the Templates contextual menu on every activation of the app.
Updated the Trial Sync results window to clean up a path to an item before passing that off to a helper tool or external service such a 'Get Info in Finder' to ensure that the path represents the file object on the real target and not a snapshotted version of it.
Now performs a sync history reset (retaining exclusions) after changing Package Handling, Sync Operation, and Sync Triggers on a previously synchronized task document to ensure all appropriate information gets collected and items are handled correctly on the next run.
Changed the terminology used to identify Backblaze B2 application keys & account IDs to match the latest B2 terminology and to be consistent (i.e. English) across all languages.
All the cloud service connection profile editors have had their authentication's credential fields set to character-wrap instead of word-wrap.
Added logic that ensures any excluded file-pair does not have any other status set.
Bug Fixes:
Fixed a bug whereby the pre-defined AWS S3 endpoint strings were inadvertently translated in non-English languages.
The ChronoAgentLocal-Console.log file is now being rolled-over automatically.
Fixed some auto-layout problems in the AWS and Backblaze B2 connection profile editors.
Fixed some bugs whereby many commands were not properly setting the thread-specific error property when they completed.
Fixed a bug that occurs when launching comparison helper applications in a manner that was incompatible with files residing on an APFS snapshot volume.
Fixed a bug whereby an alias located in the immediate descendant of a resolved folder alias would not be resolved correctly.
Fixed a bug that was affecting the synchronizer's ability to identify self-referencing aliases when 'resolve aliases' was in effect and the target currently referred to an APFS snapshot volume.
Fixed a (harmless) bug that could result in wasted time and a guaranteed low-level error (and console messages) when trying to do Trial Sync or Sync Selection on an APFS snapshot.
Fixed a bug in resolving an alias on an APFS snapshot.
Fixed a bug whereby it was possible to convert an existing object that was marked as a symbolic link or directory to a regular file when updating attributes on Backblaze B2.
Fixed a bug in the Backblaze B2 storage provider whereby it wasn't always correctly identifying package files.
Fixed a bug resolving an alias file where it was possible that it would resolve to a URL but a file pathname could not be extracted from the URL causing an exception.
Fixed a bug whereby when presenting an error caused by enumerating folders in the file system, the object used to contain information about the error was volatile and could be corrupted by another thread that was preparing to present a different error likely resulting in a crash.
Fixed a bug whereby marking a folder node for exclusion would release all children and setup a potential crash for any other code that has retained a direct reference to one of those children. This is possible in Trial Sync and sync-selection scenarios.
Added logic to the outermost node processing loop that checks each node's exclusion state before attempting to process it to prevent unwanted operations and/or potential crashes.
Fixed a bug whereby attempting to retry a failed deletion of a file on the destination would trigger an unrecoverable, infinite loop and potentially cause a crash or memory consumption.
Fixed a bug whereby retry attempts would be performed on failed processing of nodes even if an abort condition were signaled.
Fixed a bug whereby when editing a previously created "When independent volume mounts" scheduled item, a "Connect" message was not being sent to the independent volume specifier. Thus the volume would always appear as "Not available" in the user interface even though it was.
Fixed a bug in the file system notification trigger that would not reliably start a live filesystem trigger after it was created.
Fixed a bug in the file system notification trigger that would not reliably remove a live filesystem trigger after it was disabled or deleted.
Fixed a bug whereby package merging between a source file system that supports millisecond timestamps (APFS) and a destination that doesn't could result in failure to efficiently merge.
Version 4.9.2:
Enhancements and Changes:
Specific bucket names can now be specified in the Amazon S3 connection profile editor.
Now supports Application Keys when connecting to Backblaze B2.
Enhanced Security for ChronoAgent and InterConneX connections.
Adjusted the queuing and management of concurrent operations.
Enhanced SFTP connection stall/drop detection.
Bootable backups now skip over more unnecessary folders.