Release notes v18.1.3

Release Details

v18.1.3 - Push performance & reliability fixes (v17 forward-port)

v18.1.3

A performance and reliability release, bringing v17's recent fixes and performance work forward to v18: pushing and pulling scale much better on large sites, restore points and media syncing are more reliable, and a background job now tidies up abandoned temp folders left behind by interrupted server-to-server transfers.

Changed

  • Bumped uSync, uSync.BackOffice and uSync.BackOffice.Management.Api to 18.1.3.
  • Working out what needs to sync now scales much better with the number of items involved, with far fewer database queries during large syncs.
  • Memory and CPU use during export/import (file hashing, comparison, and zip creation) has been reduced, with no change to existing sync pack contents.
  • Server-to-server push/pull requests no longer buffer entire request/response bodies in memory, reducing memory pressure on large transfers.
  • The remote content/media browser used when choosing what to push or pull now issues far fewer database queries per page.

Added

  • A background job that automatically removes abandoned temporary pack/receive folders left behind when a remote clean-up request couldn't reach the target server (for example, a restart mid-push). Controlled via uSync:TempFolderCleanup:Enabled (default true) and uSync:TempFolderCleanup:CutOffHours (default 24).

Fixed

  • Publisher: server-to-server requests now honour uSync:Publisher:Settings:RequestTimeout again. Every request — restore point steps, sync pack uploads, imports — was silently capped at 100 seconds instead of the configured value. Set it to 0 for no limit.
  • Restore point archives are now built on disk instead of in memory, so creating a restore point of a large site no longer risks taking the process down.
  • The restore point working folder is only deleted once its archive is confirmed stored, so a failure at that point no longer leaves neither the folder nor the zip.
  • Media writes no longer wait forever on each other — one stalled write could previously block every media import that followed it.
  • A paged file push no longer re-sends the entire file set on every page. A paging bug meant each page copied and transferred every file rather than just its own slice, so a push spanning several pages uploaded the whole file set that many times over.
  • Media items renamed then imported are no longer left behind under their old file names.
  • PushFiles now carries the same large-upload handling as the other server-to-server endpoints (PushPack, PushMedia, PushInlineMedia).
  • The two Publisher temp-folder health checks, which had been disabled and non-functional since Umbraco 14's backoffice rewrite, are removed — the temp folder cleanup job above replaces what they were for.