From 1774e54b6c4f66d4f5fd909de8dc07130451933c Mon Sep 17 00:00:00 2001 From: Matt Hill <9935159+MattDHill@users.noreply.github.com> Date: Thu, 24 Sep 2026 22:35:20 -0600 Subject: [PATCH] fix: lift the 30 s timeout on the 0.3.5 migration's data-sized steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 0.3.5 migration ran its recursive chown of the PostgreSQL cluster, the find -exec chmod over the app tree, and the per-directory chmod and listing of data/ through execFail with no timeout argument, so each inherited the SDK's 30 s default and was SIGKILLed on any instance where one of them took longer — a cold HDD over tens of thousands of app files, or a single huge data/ directory — failing the migration. They now run unbounded. 34.0.4:5 is not yet on beta, so the fix rides that version and joins its release note. Co-Authored-By: Claude Opus 5.5 --- startos/versions/current.ts | 10 +++++----- startos/versions/from035x.ts | 11 ++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/startos/versions/current.ts b/startos/versions/current.ts index e9bf374..b270b46 100644 --- a/startos/versions/current.ts +++ b/startos/versions/current.ts @@ -3,11 +3,11 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' export const current = VersionInfo.of({ version: '34.0.4:5', releaseNotes: { - en_US: `Fixes a crash after installing or updating an app on aarch64 servers that left Nextcloud unreachable until it was restarted.`, - es_ES: `Corrige un fallo tras instalar o actualizar una aplicación en servidores aarch64 que dejaba Nextcloud inaccesible hasta reiniciarlo.`, - de_DE: `Behebt einen Absturz nach dem Installieren oder Aktualisieren einer App auf aarch64-Servern, der Nextcloud bis zu einem Neustart unerreichbar machte.`, - pl_PL: `Naprawia awarię po zainstalowaniu lub zaktualizowaniu aplikacji na serwerach aarch64, po której Nextcloud był niedostępny do czasu ponownego uruchomienia.`, - fr_FR: `Corrige un plantage après l'installation ou la mise à jour d'une application sur les serveurs aarch64, qui rendait Nextcloud inaccessible jusqu'à son redémarrage.`, + en_US: `Fixes a crash after installing or updating an app on aarch64 servers that left Nextcloud unreachable until it was restarted. Moving a large Nextcloud from StartOS 0.3.5 no longer fails partway through the migration.`, + es_ES: `Corrige un fallo tras instalar o actualizar una aplicación en servidores aarch64 que dejaba Nextcloud inaccesible hasta reiniciarlo. Migrar una instalación grande de Nextcloud desde StartOS 0.3.5 ya no falla a mitad de la migración.`, + de_DE: `Behebt einen Absturz nach dem Installieren oder Aktualisieren einer App auf aarch64-Servern, der Nextcloud bis zu einem Neustart unerreichbar machte. Die Migration einer großen Nextcloud-Installation von StartOS 0.3.5 bricht nicht mehr mittendrin ab.`, + pl_PL: `Naprawia awarię po zainstalowaniu lub zaktualizowaniu aplikacji na serwerach aarch64, po której Nextcloud był niedostępny do czasu ponownego uruchomienia. Migracja dużej instalacji Nextcloud ze StartOS 0.3.5 nie kończy się już błędem w trakcie.`, + fr_FR: `Corrige un plantage après l'installation ou la mise à jour d'une application sur les serveurs aarch64, qui rendait Nextcloud inaccessible jusqu'à son redémarrage. La migration d'une installation Nextcloud volumineuse depuis StartOS 0.3.5 n'échoue plus en cours de route.`, }, migrations: { up: async () => {}, diff --git a/startos/versions/from035x.ts b/startos/versions/from035x.ts index d258ef4..1732198 100644 --- a/startos/versions/from035x.ts +++ b/startos/versions/from035x.ts @@ -157,9 +157,11 @@ const relocatePostgresFrom035x = async ( user: 'root', }, ) - await sub.execFail(['chown', '-R', 'postgres:postgres', POSTGRES_PATH], { - user: 'root', - }) + await sub.execFail( + ['chown', '-R', 'postgres:postgres', POSTGRES_PATH], + { user: 'root' }, + null, + ) await sub.exec(['rm', '-f', `${PGDATA}/postmaster.pid`], { user: 'postgres', }) @@ -236,6 +238,7 @@ const repairPermissionsFrom035x = async ( '+', ], { user: 'root' }, + null, ) // occ must be executable for Nextcloud CLI operations await sub.execFail(['chmod', 'u+x', `${NEXTCLOUD_PATH}/occ`], { @@ -289,6 +292,7 @@ const repairPermissionsFrom035x = async ( dir, ], { user: 'root' }, + null, ) const { stdout } = await sub.execFail( [ @@ -303,6 +307,7 @@ const repairPermissionsFrom035x = async ( '-print0', ], { user: 'root' }, + null, ) const subdirs = stdout .toString()