What's new in this version:
- Implemented the all-new 'False Mount' Readiness Test that checks to see if one of the targets is referencing a folder in the "/Volumes" folder
- Eliminated the possibility that ChronoSync would ever create a phantom volume in the "/Volumes" folder because the OS lost connection to a server or local device but failed to return an error message to ChronoSync
- Added logic to work around High Sierra bugs when renaming files on file servers as part of a Safe Copy or Archive Move operation
- The Validator and sync engine now filter out some legacy Finder Flags when detecting attribute changes
- Tweaked the IO throttling logic so that full throttle is restored after 10 seconds of system inactivity versus 30 in previous versions
- Changed auto-update checks so they are not performed when syncs are running
- Removed a bunch of unnecessary user interface updates when changing a target's volume
- Invoking the ChronoSync Organizer or Preferences window will now terminate auto-quit, if we were invoked for scheduled synchronization
- We now consistently produce data verification diagnostic output based on the DataVerificationAudit plist setting
- Improved mirrored log file behavior by recreating mirrored log file if necessary to avoid situations where the mirrored log file may have been deleted while still posting messages to it
- The ChronoSync Scheduler now tries to keep the system awake a little longer after triggering a task to run
- Improved user-controlled diagnostics for the Scheduler and Validator
Notable Bug Fixes:
- Changed how the ChronoSync Scheduler checks for missed jobs that could lead to erroneous triggering of sync jobs after a system wakes
- Fixed a bug whereby 'Run Once' scheduled items would not always run on the minute they were intended but would launch one minute later
- Fixed a bug whereby 'Run Once' scheduled items would repeatedly run after their first execution because they would not disable themselves
- We now turn off left or right target triggers if they are enabled but the target volume is not suitable for a live-trigger scheduled item
- Fixed a bug whereby adding a scheduled item from the Scheduled Task Manager window would fail if the first Sync Task document known to the program could not be found on disk
- Fixed a bug in the Validator whereby marking mismatched entries would result in forced-conflicts if the task was configured as a mirror
- Fixed a bug in the Validator whereby it could try to reference an object that doesn't exist, resulting in a crash
- Fixed a bug in the Validator whereby a NULL Finder comment was considered different from an empty Finder comment
- Fixed a bug in the Validator whereby, when NOT validating out-of-sync items, we failed to have the synchronizer refresh the attributes of each file pair. That could lead to an incorrect determination of whether or not the file-pair is considered out-of-sync
- Fixed a bug whereby the Validator had no additional logic to deal with package mismatch scenarios. It was thus prone to reporting modification date differences when one target thought a folder was a package but the other didn't
- Fixed a bug in the Validator whereby the 'Package Handling' setting of 'dissect' was not being taken into consideration when validating modification dates
- Fixed a bug whereby translated resources for the Access Restrictions user interface were never merged in with the program
- Fixed a localization bug whereby target descriptions were not being properly constructed in Japanese
- Fixed a crashing bug introduced by a change to how Google Cloud returns metadata values. The change occurred somewhere around Nov. 1st, 2017
- Fixed a bug whereby changing the connection method for a target between "Mounted Volumes" and "Mounted Volumes (Admin Access)" would revert to a "/Volumes" relative path on the boot drive
- Fixed a bug whereby the "Confirmation Test" connection role was never being sent to a ChronoAgent when testing a connection
- Fixed a bug that occurs when probing SFTP servers for their capabilities that could result in a failed connection
- Fixed a bug whereby selecting a target identical to the previous one would not clear the "Configured on a different system" readiness warning
- Fixed bug in preparing and updating the progress bar when performing a Sync Selection or Trial Sync Selection operation
- Fixed a bug whereby disabling the summary sheet in a container task window would prevent the window from being closable
- The Trial Sync Selector sheet window no longer crashes if the task is aborted behind its back (such as when targets become lost)
- Fixed a bug whereby resetting the sync history would not 'forget' certain values
- Fixed a bug whereby evaluating rules was not thread safe resulting in possible problems during concurrent operations
- Fixed a bug whereby a forced attribute sync on a folder would trick the pruning logic into pruning that folder if no child items were processed
- Fixed a bug whereby file servers could fail to refresh their displayed state in the Analyze Panel after performing a sync, deletion or restore
- Fixed a bug whereby trying to apply attributes to a folder that was really an alias to a folder (with resolve aliases enabled), would wipe out the alias
- Fixed a bug whereby resetting the status of a force-sync'd file-pair would not refresh the file pair and thus not immediately show the correct status of the file pair
- Implemented a workaround to a bug in the 'bless' utility whereby a bootable APFS volume might not appear when invoking Startup Manager (Option-Boot)
- Fixed a bug that affected the Bootable Backup assistant to ensure that if multiple volumes exist in an APFS container, only bootable volumes can be chosen as the source target
- Fixed a bug whereby presenting the Termination Window (i.e. "There are scheduled syncs running, do you really want to quit?") would eventually cause the menubar to stop animating
- Tweaked the “Optimization” phase of bootable backup tasks so that the destination volumes would boot more efficiently and reliably, especially if they contain a High Sierra installation
- When calculating the next scheduled run date of a scheduled task, the program (both ChronoSync and ChronoSync Scheduler) would hang if the next run date fell after a Daylight Savings Time-to-Standard Time transition
- Running a container task that encapsulated multiple sync/backup tasks that simultaneously process many files (via concurrent operations) was susceptible to crashing when closing the container task window
- Specifying a source or destination target that resided on an APFS filesystem would result in the “Strict volume identification” setting defaulting to OFF
- Full macOS 10.13-High Sierra compatibility
- Added a feature whereby holding OPTION down when selecting a task for any Modifier Assistants will now select/deselect ALL listed tasks
- Added the ability to schedule a free standing task document if no tasks are being tracked in the ChronoSync Organizer window. Also, holding the OPTION key down when clicking (+) in the Scheduled Task Manager window then displays the File Chooser to select a free-standing task document
- The user interface animations for all Assistants and the Validator function were reimplemented to work around High Sierra shortcomings
- The ChronoSync Installer and Uninstaller were modified to work around High Sierra bugs
- When creating a bootable backup to an APFS volume, the VM, Preboot and Recovery volume structure in the destination APFS container is constructed
- Added the correct Analyze Panel status icons (for attributes-only syncs) to the online help
- The process of blessing a destination volume in a bootable backup is now more verbose, displaying fine-grain progress to the user and posting relevant errors to the log
- When the Bootable backup assistant is presenting a warning that the destination volume is about to be erased, it checks to see if it is an APFS container with additional data volumes within it. If so, it presents those additional volume names as part of the warning
- The Readiness Warning stating that APFS destination volumes may not be bootable is only reported if APFS volume operations cannot be performed on the destination
- Fixed several bugs associated with the display of Trial Expiration notices when running the application in Trial Mode
- Fixed several bugs associated with performing automatic update checks
- Fixed a memory consumption problem that occurs in kernel_task memory when verifying large files
- Fixed a bug in the Container Editor’s task list whereby user modifications to the width of the Task Name column would not be preserved after closing the document
- Fixed a bug in the ChronoSync Organizer whereby the view that displays each document’s information would not automatically grow with the width of the window
- Fixed a bug that could cause a deadlock between the main ChronoSync application and the ChronoSync Scheduler. Under the wrong circumstances they would both wait on the other to obtain access to the scheduled items database
- Fixed a layout bug whereby unusually long task names would scroll off the top of the Scheduled Item Editor window
- Fixed a bug whereby hitting “Test” when multiple Push Receiver IDs were specified, and a space was used to separate the IDs, the test would fail. This existed in the sync task Options panel and the Notifications Assistant
- Fixed a bug whereby in the same scenario above (space between IDs), the Notifications Assistant would not store the Receiver IDs into the modified documents properly
- Enabling Push Notifications in the Notifications Assistant now forces “Only on Errors” setting OFF. Previously, it only did this if Push Notifications was OFF and it was turning them ON
- Fixed a bug whereby pausing a running sync wouldn’t necessarily pause it
- Eliminated a specific type of crash that could occur when scrolling through entries in the Trial Sync selector window
- Eliminated some data verification audit messages that were always getting posted to the console
- The Container synchronizer now properly updates the correct duration property on sync completion so that push notifications to ChronoMonitor will contain the correct duration value
- Added the ability to uniquely identify APFS volumes.
- Added the ability to determine the partitioning scheme of APFS formatted volumes.
- Added the ability to correctly identify whether or not an APFS volume has a bootable OS on it.
- Added the ability to mount Encrypted APFS volumes.
- Added the ‘APFS bootable destination’ readiness test that warns that a destination APFS volume may not be bootable which will be removed once we can guarantee APFS boot-ability.
- Added support for cut, copy, paste operations on Rules.
- Added the ability to detect when Sync Task is moved to another system.
- Added the ‘configuration system mismatch’ readiness warning that gets displayed when a Sync Task is opened on a system other than that which created/edited it.
- Improved Scheduler efficiency by reworking algorithms that calculate next item run date.
- When closing a scheduled item editor window, we now re-display the ChronoSync Organizer window, if necessary.
- Added “/Network” and “/dev” to the bootable blacklist.
- As part of the Bootable Backup, we now ensure that a “Network” folder is created on the destination and that it is marked ‘hidden.’
- The sync completion notice now displays a “View Log” button if the just-completed synchronization generated an error that was posted to the log.
- Improved Document and Window Close behavior by reordering the operations that occur when deallocating the user-interface resources.
- Standardized the behavior of focusing on the associated entry field when an particular option is turned on or selected throughout the user-interface.
- Added “.strings” to the default set of files that will be opened using OpenDiff when invoking the Compare function. This will only affect new installs.
- Updated and expanded file types covered by the “Common...” set of rule templates.
- Changed the Installer’s minimum OS requirement to 10.10.
- Added logic to detect the vendor name of any locally attached drive.
- Added many more log messages to the installer to facilitate troubleshooting failed installs.
- We now display a “Trial Expired” notification after the trial period has elapsed.
- Improved in-app Update Check Now performance.
- Added a “Buy” button to the Trial Period notice.
- Added Postbox email bridge.
- Added Airmail 3 email bridge.
- Remove QuickMail from email bridges.
- Numerous terminology changes, user-interface changes and tweaks.
- Fixed a bug where the installer was not always properly identifying an existing login item and would fail to re-launch the Scheduler at the end of the installation.
- Changed the behavior of log mirroring so that if there is a problem opening/creating the mirrored log file, we no longer disable mirroring.
- Fixed a bug whereby adding messages that spanned multiple lines to the sync log could result in out-of-sequence log messages.
- Fixed a problem in the Log window whereby highlighted error text (in red) was very difficult to read.
- Fixed a potential hang condition by reorganizing thread locks.
- The Google API was not capable of returning more than 26,000 objects in a “folder” when automatic page fetching was enabled (which is what we do). Thus “folders” would never appear as if they contained more than this many files. If backing up a folder with more than this many files in it, ChronoSync would always copy the files beyond the 26,000 count because it would look like the files did not exist up on Google Cloud, even though they might.
- Fixed a potential crash by ensuring thread safety in string formatting calls.
- Fixed a bug whereby a connection to each target’s file manager was being made when both targets were being monitored to sync-on-mount. This would fail if either target was an Admin Access target.
- Fixed a bug in the synchronizer that was keeping track of hard link references in a non-thread safe manner. This could lead to crashes when running parallel ops.
- Changing target folders and resetting sync history will no longer purge exclusions and forced synchronizations. If the folders where exclusions and forced syncs are defined still exist after the target change, they will be retained.
- Fixed a bug in the MS-DOS filename restriction readiness test that was identifying APFS as MS-DOS.
- Fixed a bug whereby duplicating a rule that appeared below an expanded rule group would raise an exception.
- Fixed a bug whereby invoking the contextual popup on a non-focus rule list and invoking ‘Duplicate’ would not duplicate the desired item.
- Added an exception handler to the rule base.
- Fixed a bug whereby disabling a rule group would result in all contained rules being disabled when the sync task document was saved.
- Fixed a bug whereby changing a target’s connection method would never preserve sync outline customizations (exclusions, forced syncs) even in cases where they could be preserved.
- Fixed a bug whereby the Analyze and Archive panels that was causing Core Animation warnings on the console and possibly the cause of intermittent crashes.
- Added logic that forces all ChronoSync Organizer window resources to load before we try to display it in an attempt to fix the intermittent ’tooltip crash’.
- Fixed a bug whereby scheduler induced sync when a container document window was opened would not set the completion flag when finished. Thus subsequent scheduled syncs would fail as long as the app was running.
- Fixed a problem whereby if a Container sync window were open and displaying the summary sheet from a previous, manually induced synchronization, a scheduled sync for that container would not be possible.
- Fixed a bug whereby the master container progress bar was being initialized on a background thread.
- Fixed a logic flaw whereby the next scheduled synchronization displayed in STM Window and the CS Menu would not always be correct. Another problem was that missed sync calculations would sometimes result in scheduled tasks running erroneously.
- Fixed a bug whereby running a scheduled sync with the corresponding sync task document window open could result in UI modification.
- Fixed a bug whereby changes to some properties of SFTP connection profiles would not get applied to existing documents that used the profile.
- Fixed a bug whereby the animated menubar icon during scheduled syncs would not occur under specific circumstances.
- Added experimental logic so that a ‘hang’ that occurs while collecting entries for a right target File Sharing Connection can actually be broken via an abort by the user.
- Worked around a nuisance bug that was causing console messages to the effect of “__weak variable at...".
- Implemented Readiness Warning to suggest 'Bootable Backup' Operation when the Startup Volume is the chosen target for any other 'Operation'
- Added logic to better preserve the currently selected Target path when changing the 'Connect to:' popup for a Target
- Updated how keychain entries are managed
- Changed the behavior of log mirroring so that if there is a problem opening/creating the mirrored log file, we no longer disable mirroring
- Fixed a bug in the AWS S3 Connection whereby the app could go into an infinite loop and eventually run out of system memory
- Fixed a bug that would trigger a crash if a container or sync document’s Log window were displayed and frontmost, but then the parent sync/container window was closed without bringing it to the front
- Fixed an exception that could be raised when closing a container document window when the window was not frontmost and instead resided behind a different type of window
- Fixed a potential problem displaying the progress window content
- Fixed a potential problem that could occur when displaying the Sync Completion window
- Fixed a problem that could result in a crash when using Admin Access
- Fixed several installer problems with variables and their use which could possibly result in the ChronoSync Scheduler not being relaunched after update
- Fixed an installer problem that was not properly identifying existing login items that could possibly result in the ChronoSync Scheduler not being relaunched after update
- Lengthened certain timeouts associated with local agent connections.
- Fixed a bug whereby the ChronoSync Scheduler would be spammed with quit notices from ChronoSync if the App was quit while a scheduled sync was running and the option was chosen to terminate all syncs.
- Fixed a bug in the ChronoSync Scheduler whereby if it received too many termination notifications in a short period of time, it would cause the scheduler to hang.
- Fixed a bug that could cause a deadlock if a Cloud Service Connection were told to disconnect while it was in the midst of collecting file system attributes.
- Fixed a bug whereby enabling “Resolve Aliases” and encountering a relative symbolic link that referenced a folder outside of the sync tree would not properly follow that link.
- Enhanced cloud sync performance by creating parallel operations to copy and destroy multiple objects.
- Enhanced Analyze Panel responsiveness by avoiding blocking during refresh.
- Improved sync document save performance.
- Improved memory use efficiency.
- Added the extension “sh” as valid script files (for pre- post- and rule- script selection).
- Enhanced container e-mail notifications.
- Added logic to better recognize and mount re-located volumes.
- Added further fall-back logic when setting file and folder attributes in an attempt to better avoid parameter errors.
- Fixed a bug to harden Sync Document loading as protection against encountering corrupted documents.
- Fixed a bug that generated erroneous errors when syncing files containing Resource Forks to Amazon S3 and Google Cloud.
- Tuned memory management options in build settings to reduce memory consumption when syncing to Amazon S3.
- Fixed a bug on the AWS S3 SDK that was causing problems if a bucket name has a period in it.
- Fixed a crash that could occur when sending e-mail notifications via certain SMTP service providers.
- Fixed an exception that could occur when closing Container Sync Documents.
- Fixed a bug that prevented display of Resource Fork information on the Analyze Panel prior to sync.
- Fixed a problem that could result in the Sync Document Log purging logged entries.
- Fixed a potential deadlock that could occur when gathering Volume information.
- Fixed a bug whereby post synchronization tasks would not be performed if pre-synchronization tasks failed.
- Eliminated a potential crash by ensuring we don't access a possibly invalid object.
- Eliminated a memory leak in the push notification delivery procedure.
- Eliminated a memory leak whereby whatever panel was initially displayed when opening a saved sync document would not be released from memory when the sync document was closed.
- Fixed several minor UI issues including misspelling.
- Implemented support for v4 authentication of AWS S3 commands
- Updated the predefined set of AWS S3 endpoints to include all the latest, v4-only regions
- Added the capability to specify a region identifier within the parenthesis to support future regions, or regions associated with S3 compatible services. If this syntax is used, the region identifier must be followed by /v4 or else v2 authentication will be used. An example of such an endpoint specification is: https://an-s3-enpoint-url.com (region-identifier/v4)
- Pre- and Post- sync shell scripts now receive an additional argument, the ‘Run Mode’ of the sync. 0=Standard, 1=Trial Sync and 2=Scheduled Sync
- Updated any 2016 references to 2017
- Added logic to work around a memory leak in a system call on macOS 10.8. This affects uploading data to AWS S3. The solution applies only to macOS 10.8 and can be disabled, if needed
- Added logic to address a problem where, in some instances, the local agent takes upwards of 10 seconds to access the local keychain. Added a retry for up to 30 seconds to account for the slow response
- Fixed a bug in the Sync Document Log and Scheduler Log whereby log entries would appear to be truncated
- Fixed a bug in the Scheduled Items editor whereby editing an item for which its corresponding sync document could not be located would not allow you to save any changes
- Fixed a bug in the ‘Choose Target’ window whereby changing the selected volume in the left table by means of using the arrow keys on the keyboard would not trigger a volume change
- Fixed a display bug in the ‘Choose Target’ window to account for the display of a scroll bar on the volumes list
- Fixed a bug whereby the volumes list in the ‘Choose Target’ window would not scroll if there were more entries than were visible. This only affected macOS 10.8 and 10.9
- Edited the Retina version of the ‘About’ dialog graphic so that it does not include a border frame
- This is a maintenance release that improves upon SFTP connection support
- Version 4.7.2 also includes a handful of user interface enhancements. This update is recommended for all users
- Significantly improved performance when syncing with Google Cloud Connections. Depending upon sync contents, up to a 20% improvement can be realized
- Significantly Improved performance when syncing with Amazon S3 Cloud Connections. Depending upon sync contents, up to a 20% improvement can be realized
- Improved tracking of DMG volume location to better handle mounting and unmounting DMGs as well as the volumes they reside on
- Tweaked bandwidth limit calculations to more accurately match desired limits set in Connection Profiles
- Fixed a bug that could cause a crash anytime after opening a Container Document even if the Container has since long been closed
- Fixed a bug whereby if a DMG on a file server were un-mounted by ChronoSync, the file server would not be un-mountable
- Fixed a bug whereby if targeting a DMG on a file server using “Mounted Volumes (Admin Access)”, the server containing the DMG would not get automatically mounted
- Fixed a problem in Admin Access that could result in a crash under ideal timing circumstances
- Fixed a bug whereby the readiness manager would erroneously state “You cannot perform a bootable backup with the current boot volume as your destination.” when switching between Bootable and Bootable Mirror operations with the same direction
- Fixed a bug in the Log Window whereby if you opened a log for a synchronizer document, then closed it while the sync was running (and generating log entries), then re-opened the Log Window, it would not ‘snap’ to the bottom of the log window
- Fixed a minor problem with Drag & Drop to the Scheduled Documents Manager Window
- Fixed a minor problem in the Registration Window and license key validation
- Fixed a problem whereby customers were being prompted for a Keychain Password
- Fixed a problem in Amazon S3 Cloud Connections whereby it was not properly setting the maximum number of concurrent operations.
- Updated Online Help so terminology is more consistent with terms used in the App