Synchronize. Backup. Bootable Backup.
Whatever your backup or sync scenario, ChronoSync has got you covered!
Back to more tech notes

MORE TECH NOTES

TNCS-0043 - ChronoSync v4.9.0 Enhancements, Changes and Bug Fixes

November 28, 2018

Notable New Features

  • Full support for Mojave Dark Mode.
  • New TouchID and TouchBar Support.
  • New APFS Snapshot Support.
  • Optimized for APFS File Systems.
  • Faster, More Efficient ChronoAgent Connections.
  • New Organizer Tags, Alerts, Sort Options and Actions added.
  • New Bootable Backup Assistant APFS Formatting Options.
  • New Disk Image Backup Assistant Options.
  • Greater Access to View Task Document Log Throughout the App.
  • Expanded Task Container Document Editor and Actions.
  • New Validator "Recommended Settings".
  • Additional Restore Options.

Enhancements and Changes

CHRONOSYNC ORGANIZER

  • Implemented Task Tags, a color value that can be associated with tasks via the Info popover.
  • Implemented Task Sorting based on task Name, Kind, Tag, Last Opened and Last Run dates.
  • An alert icon is now displayed next to any task that generated an error on its most recent run.
  • Added an "Actions" menu in the task list header.
  • Now selects any duplicated task.
  • Can now "Show log" for task documents without having to open them first.
  • Added a row of 'action buttons' at the bottom of the task document list.
  • Added the "Open & Validate" action.

SCHEDULED TASKS MANAGER

  • Can now "Show log" for scheduled task documents without having to open them first.

SYNCHRONIZER TASK EDITOR

  • The custom Target Selector handles connection disconnects and other file system errors much better.
  • Set the description for both targets as tooltips for the "Source/Left" and "Destination/Right" column headers in Analyze Panel.
  • The mount/dismount and connect/disconnect operations for targets after opening a sync task document editor now take place in background threads.
  • Added the "Attempt to wake remote computer" checkbox to the volume options view for a target that is connected to a disk image. This appears if the disk image resides on a remote computer via a ChronoAgent connection. This allows sending a Wake On LAN activity packet to the remote computer that houses the disk image file.
  • More efficient display of readiness manager changes.
  • Readiness "Fix" and "Ignore" buttons are now static and always appear.
  • Implemented more optimal file icon retrieval when connected to a local agent.
  • File names are now displayed in the UI in a manner that does not cause any contentions with the underlaying synchronizer. This results in a more responsive user interface.
  • Custom target naming is now invoked via a fixed edit button and takes place in a popover window.
  • No longer displays negative "delta time" values in the Analyze Panel.
  • You can now collapse "Special Notes" completely off the window in the Setup Panel.

CONTAINER TASK DOCUMENT EDITOR

  • Added "Special Info" section to the Documents Panel. This can be collapsed completely off the window or expanded so that contained entries are not obscured by the progress sheet window.
  • Enhanced Task Document List, including Document 'kind' icon, multi-line display of task name, color-coded tags, source and destination target description and "special notes" for each contained task document.
  • Can now "Show log" for contained task documents without having to open them first.
  • Contained Documents that are not being tracked by the global Document Tracker are now automatically tracked for changes.

GENERAL LOG WINDOW

  • Can now be opened and display a log for a task document that does not have an associated editor window open. Will attach itself to that editor if it is ever opened.

VALIDATE FUNCTION

  • Added the new "Recommended Settings" button that is displayed when the Validator setup does not match what ChronoSync believes to be appropriate for the sync task.
  • Will no longer report an invisible file as an orphan if the synchronizer is ignoring invisible files.
  • Will no longer report a BSD flag mismatch if the only difference is UF_HIDDEN and the filename starts with a ".".
  • Now releases its wake assertion on the main thread after a 10 second delay. Gives the overall application plenty of time to achieve a complete & final state after running a Validation.
  • Disallows the validation of Spotlight Comments if one of the destination targets cannot preserve Finder/Spotlight comments.

RESTORE FUNCTION

  • Added the option to replace older OR newer files (which basically means any file that is different).
  • Added user control over logging behavior.
  • Added the ability to specify custom Restore Folders, which can reside on any device/connection protocol supported by ChronoSync Targets.
  • Added the ability to compare against the source target when restoring to a custom folder.
  • Now releases its wake assertion on the main thread after a 10 second delay. Gives the overall application plenty of time to achieve a complete & final state after running a Restore.
  • Now performs a deep notification of file system changes when the operation completes, allowing all UIs that are monitoring the affected file system to properly reflect any file system changes.
  • Now displays "View Log" in the summary sheet if errors occurred during the restore.

DELETE FUNCTION

  • Now releases its wake assertion on the main thread after a 10 second delay. Gives the overall application plenty of time to achieve a complete & final state after running a Deletion.
  • Now performs a deep notification of file system changes when the operation completes, allowing all UIs that are monitoring the affected file system to properly reflect any file system changes.

ASSISTANTS

  • Bootable Backup Assistant: will now setup BOTH targets for auto-mounting, not just the destination.
  • Bootable Backup Assistant: Now provides APFS formatting options.
  • Bootable Backup Assistant: Can now specify HFS Encryption when the existing volume is a core storage volume.
  • Backup to Disk Image Assistant: Added the ability to specify a custom band size for Sparse Bundle disk images.
  • Backup to Disk Image Assistant: Added the option to format APFS or HFS+.

SYNC ENGINE

  • Added the all new "Freeze Filesystem" feature whereby an APFS snapshot is taken of a source target and the snapshot is used as the source of the sync.
  • When scanning/processing APFS volumes, now uses file I/O techniques that are much more optimal for APFS file systems.
  • The "Basic w/Attributes" trigger mode now includes extended attributes.
  • ChronoAgent connections are now established much quicker, especially with ChronoAgent v1.9.
  • Now manages ChronoAgent connections and all sub-channels on any such connection much more efficiently.
  • Now does a better job of identifying 'alias' document types.
  • Now installs Disk Arbitration Approval Callbacks for unmount and eject events. If the unmount/eject device matches the target used by a synchronizer and the synchronizer is running, a dissent object is returned that will prevent the volume from ejecting/dismounting.
  • Much more efficient device management and information collection for targets, especially for APFS volumes on macOS Mojave.
  • More efficient calculation of the sync tasks' readiness state.
  • Added intelligence to the bootable sync operation whereby entries at the root level are processed in a specific order, with the goal being to lay down files in an order that is more optimal for booting. Really only good for spinning HDs.
  • Now releases its wake assertion on the main thread after a 10 second delay. Gives the overall application plenty of time to achieve a complete & final state after running a Synchronization.
  • Implemented the "Resolved Aliases Not Frozen" readiness warning. If you have enabled "Freeze File System" and your source volume supports snapshots, this checks if "Resolve Aliases" is enabled. If so, it warns the user that the alias may resolve outside the sync tree and might not reside on a frozen file system. This is informational only - there is no "fix."
  • Implemented the "No Full Disk Access" readiness warning. If running Mojave, checks to see if the sync task's scope will span restricted areas of the file system. If so, it checks to see if the program has access to certain known, restricted folders. If not, it assumes the user has not added ChronoSync to the "Full Disk Access" Privacy group. Choosing to "Fix" invokes the Full Disk Access assistant.
  • Retired the data size validation logic that sometimes produces folder enumeration errors.
  • Now recognizes and maintains UF_TRACKED and UF_DATAVAULT BSD file flags.
  • Implemented self-repair logic that would look for inconsistencies between a loaded file system database and the actual file system, repairing nodes that reflect an improper folder state.
  • Added logic to ensure that the "Fix" option for mismatched "Ignore Ownership" readiness test is only available if dealing with a native Mac filesystem (HFS or APFS).
  • Added logic to detect erroneous symlinks, denoted by files that have the 'slnk' file type but aren’t actually symbolic links.
  • Improved response to volumeMountedOrUnmounted notification. Now inspects the volume that unmounted to see if we need to re-validate ourselves. Previously, it just re-validated no matter what.
  • Added retry logic to file rename operations that will repeatedly retry if an fBsyErr is generated.
  • Better FMAudit diagnostics.

COPY ENGINE

  • No longer skips dynamic library cache files when making a bootable backup.
  • No longer rebuilds kext caches during the bootable backup 'Optimizing...' phase (unless overridden by plist control). This was problematic in many circumstances.
  • Now does a better job of identifying 'alias' document types.
  • Now uses the package aggregation cache in a more consistent manner.
  • Implemented 'aggregate-on-copy' feature that combines package file copies and aggregation into a single operation.

CLOUD STORAGE PROVIDERS

  • Now recognizes the S3CommandTimeout and S3MaxRetries plist values for AWS S3 connections.
  • Now provides UI to modify the custom 'multiPartBlockSize' property in the connection profile for AWS S3 and Backblaze B2 connections.

CHRONOSYNC BACKGROUND SCHEDULER

  • New "Running Status" menu item for providing feedback on scheduled tasks that are currently being run by ChronoSync.
  • When the user selects "Open ChronoSync..." and ChronoSync is running in the background as a result of a scheduled task, we now activate the application in an "as launched" state i.e. the ChronoSync Organizer and Scheduled Tasks Manager windows will appear if that is how the application has been configured to launch.
  • Auto-quitting after running scheduled sync tasks will now wait to ensure that various 'housekeeping' tasks are completed before terminating the app.
  • Generates Bonjour-related diagnostics when scheduler debug mode is enabled.

PREFERENCES

  • Standardized the size of all preference pane views.
  • Centered the controls on the General preference pane.
  • Application-specific Dark and Light mode can be set in General Preferences (Mojave only). Allows the application to run in a mode different from the system settings.
  • Tweaked the layout of the Templates Preference Pane.
  • Tweaked the layout of the Helpers Preference Pane.

MISCELLANEOUS

  • Tweaked the appearance of various controls including box frames and droplet headers.
  • All new "Full Disk Access Assistant" which is displayed after application launch if running on Mojave when Full Disk Access has not been granted by the user.
  • Added rudimentary TouchBar support.
  • Added support for Touch ID authentication.
  • Faster application startup.
  • Tweaked keyboard equivalents for various menu items.
  • Updated online help.

Bug Fixes

CHRONOSYNC ORGANIZER

  • Fixed a bug that could cause "Open & Sync" and "Open & Trial Sync" to fail because we weren't waiting for the targets to verify.
  • Fixed a bug whereby if you attempted to open a task document from the Organizer window and that task was presently running as a scheduled task, you would receive two error messages to that effect.
  • Fixed a bug whereby duplicated task documents were not retaining metadata.
  • Disabled an annoying behavior whereby the Organizer window would clear any selection whenever it was displayed from a hidden state.

SCHEDULED TASKS MANAGER

  • Fixed a bug whereby the Scheduled Tasks Manager floating window would only become key if you clicked in a control that accepted keystrokes.
  • Fixed a bug whereby the wrong string was being used to populate the 'Independent Agents' menu when no agents could be found on the network (when editing an event-based task).
  • Fixed a bug whereby disabling live monitors on only one side of a scheduled item would not have any effect (when editing an event-based task).

SYNCHRONIZER TASK EDITOR

  • Fixed a bug whereby changing the connection method from 'Mounted Volumes' to 'Mounted Volumes (Admin Access)' would not dirty the task document.
  • Fixed a bug whereby selecting a disk image file for a target and having that disk image mounted as a result would not get recorded as having been mounted by the task document. Thus closing the document would not dismount the disk image.
  • Fixed some layout issues in non-English languages ('Options' panel).
  • Fixed a crash that could occur if the Analyze Panel was displayed and was presently fetching a list of file system entries to display when the editor window was closed by the user.
  • Fixed a bug whereby an alias file would not be flagged as such in the user interface (including Trial Sync) until the item was selected or the synchronization was run.
  • Fixed some memory leaks in the Finder Tags rule editor.
  • Fixed a bug whereby the 'skip' button was not being released thus causing a small memory leak every time you ran a sync that copied items.
  • Added logic to prevent an esoteric problem whereby aborting a sync operation at the precise moment that an error was about to be displayed to the user would result in the error sheet window having its 'Abort' button disabled and hence the user could not dismiss the error message.
  • Fixed a bug whereby if a DMG file was hiding extensions, it would not be selectable even when ‘Allow DMGs’ was enabled in the custom Target Selector window.
  • Fixed a bug whereby the pop-down triangle on the toolbar pathname control was being displayed on top of the pathname text.
  • Fixed a bug whereby multiple requests to update the currently selected file's information could cause a backlog of worker threads waiting to update the same information. This was most likely to happen if the underlying file manager had a high latency e.g. was based on a cloud storage provider or was a remote SMB connection, and wasn't returning the requested metadata fast enough.
  • Fixed a bug that could cause a crash if the sync results sheet was displayed and externally dismissed, which would happen if the task came due for scheduled execution.
  • Fixed a bug whereby some of the status icons were not being properly loaded and displayed.
  • Fixed some bugs that could cause crashes when closing an editor window.

TRIAL SYNCHRONIZE FUNCTION

  • Fixed a bug whereby the 'Synchronize' button was dimmed (thus un-clickable) if all items presented in the Trial Sync selector were manually excluded.
  • Fixed a bug whereby excluding an item in the Trial Sync selector would not clear previously set 'forced sync' flags for that item, making it difficult to reset to its original state.
  • Fixed a bug when displaying the "Large Trial Sync Warning" when the application is hidden. This put the window in a state whereby the trial sync results couldn’t be displayed and the sync couldn't be completed.

CONTAINER TASK DOCUMENT EDITOR

  • Fixed a bug whereby the pop-down triangle on the toolbar pathname control was being displayed on top of the pathname text.
  • Fixed some bugs that could cause crashes when closing an editor window.

GENERAL LOG WINDOW

  • Fixed a bug whereby the pop-down triangle on the toolbar pathname control was being displayed on top of the pathname text.
  • Added logic to ensure that the log's maintenance thread is not running when closing the log window.

VALIDATE FUNCTION

  • Fixed a bug whereby manual and rule excluded items were being counted in the scan count.

RESTORE FUNCTION

  • Fixed a bug whereby it was possible for the Restorer to present an error message but have no way to dismiss it.

DELETE FUNCTION

  • Fixed a bug whereby it was possible for the Deleter to present an error message but have no way to dismiss it.

ASSISTANTS

  • Bootable Backup Assistant: Fixed a bug whereby if an existing core storage volume was encrypted, and user chose to erase that volume, it would remain encrypted.
  • Added logic to workaround an apparent OS bug whereby if clicking the view to bring up the target selector sheet resulted in an accidental double-click, the parent window would be maximized or minimized, depending on your Dock behavior setting for double-clicks in a window's title bar (all assistants that utilize this UI for selecting targets/paths).

SYNC ENGINE

  • Fixed a bug whereby files with filenames that were not encoded in some variation of UTF and which contained 'special' characters, could be improperly handled and misidentified. This could also possibly result in high memory consumption.
  • Fixed a bug whereby a permission error trying to read the contents of a directory was being treated as if the directory contents changed during enumeration i.e. it retried about a dozen times before bailing.
  • Fixed a bug whereby pruning an empty folder would increment the 'processed' count for the opposite target. This tricked upstream logic into trying to preserve folder dates on the source target instead of the destination.
  • Fixed a minor memory leak when recording the 'start time' of a container sync task.
  • Fixed a memory leak that would occur if the dscacheutil was employed to collect the local users & groups. We normally utilize calls to directory services for this, so this was more of a theoretical bug.
  • Fixed a theoretical problem whereby if there was no Preboot volume on an APFS destination, the synchronizer would still try to enable ownership on that volume as part of the post-bootable backup operations.
  • Fixed a memory leak whereby a disk image target would leak information about its parent volume dynamic properties.
  • Fixed a bug that caused a short-circuit in the Smart Scan logic with regards to scanning folders that didn't need to be scanned. Now deals with many real world scenarios that were causing unnecessary scanning of certain folders until a change actually occurred beneath them.
  • Fixed a bug whereby once device, media and volume format information of a specific target were collected, changes to those values would not be updated and recorded.
  • Fixed a bug when creating empty folders whereby user and group IDs were not maintained.
  • Fixed a bug when dealing with symbolic links that referenced the '/private' directory.
  • Fixed a bug whereby the wrong side of a copied folder was being tested for the presence of ACLs and EAs to determine if they needed to be applied.
  • Fixed a bug whereby some incorrect assumptions were being made when determining if a volume existed on local storage.
  • Fixed a bug whereby some incorrect assumptions were being made when determining if a volume existed on a file server.
  • Fixed a bug whereby the Readiness Manager was not correctly determining destination targets when 'mirror' mode was in effect.
  • Fixed a bug whereby the Bless and Optimizing phases of a bootable backup could hang indefinitely if the underlaying OS services used to accomplish those tasks would themselves hang.
  • Fixed a bug whereby processing alias files could interfere with the scanner since it may result in the temporary creation of folders that the scanner ends up scanning. Alias files are now processed by the scanner to avoid that possibility.
  • The "Backups.backupdb" blacklist check is now case insensitive.

COMPARE ENGINE

  • Fixed a bug whereby symbolic links were improperly handled when comparing files.

CHRONOSYNC BACKGROUND SCHEDULER

  • Fixed a bug that could result in ChronoSync displaying its user interface when it was launched for a background synchronization.

MISCELLANEOUS

  • Fixed a minor memory leak related to calculating the Trial Mode expiration period.
  • Fixed a memory leak in the task template manager when responding to changes in the set of installed templates.
  • Fixed a bug that caused application termination to take longer than necessary.
  • Fixed an age-old bug whereby template files had their names translated on installation. This led to multiple copies of the template files being installed every time you ran ChronoSync under a different language.
  • Fixed a tendency to perform an update-check too frequently.

REVISION HISTORY

Nov-18-2018 - Created.