Lors de la mise à jour vers la version 14 de mon nextcloud j’ai fait face à deux erreurs bloquantes. Voici comment j’y est remédié.

504 Gateway Time-out

Dès les préparatifs de la mise à jour je suis tombé sur ce bel écran.

update
erreur !

Il s’agit du serveur nginx qui coupe délibérément la connexion. En effet comme il ne reçoit plus de données depuis la page de mise à jour, celle-ci étant en attente du téléchargement de l’archive de nextcloud, il coupe simple les ponts au bout de quelques secondes. Cela est bloquant car le processus de mise à jour ne détecte pas que l’archive est téléchargée et par conséquent reste bloqué sur l’étape du téléchargement. Pour y remédier il suffit d’ajouter la directive proxy_read_timeout dans le fichier
proxy_params afin d’augmenter le temps d’attente de nginx. La mise à jour terminé j’ai désactivé cette directive par mesure de sécurité.

sudo nano /etc/nginx/proxy_params
[...]
proxy_read_timeout 6000s;
[...]
sudo systemctl restart nginx

Après le redémarrage de nginx j’ai pu passer aux étapes suivantes.

update
erreur !

Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Cette erreur est apparue lors de la deuxième phase de la mise à jour.

update
erreur !

Pour rétablir la mise à jour j’ai joué avec ma base mariadb. Apparemment c’est une erreur connue chez mariadb : https://www.youtube.com/watch?v=vPNU3fONY7c

sudo mysql -u root -p
MariaDB [(none)]> use nextcloud;
MariaDB [nextcloud]> set global innodb_large_prefix=on;
MariaDB [nextcloud]> set global innodb_file_format=Barracuda;

Validation des changement auprès de nextcloud.

 sudo -u www-data php occ maintenance:repair

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
 - Repair MySQL collation
     - Change row format for oc_addressbooks ...
     - Change collation for oc_addressbooks ...
     - Change row format for oc_authtoken ...
     - Change collation for oc_authtoken ...
     - Change row format for oc_calendarobjects ...
     - Change collation for oc_calendarobjects ...
     - Change row format for oc_calendars ...
     - Change collation for oc_calendars ...
     - Change row format for oc_calendarsubscriptions ...
     - Change collation for oc_calendarsubscriptions ...
     - Change row format for oc_dav_shares ...
     - Change collation for oc_dav_shares ...
     - Change row format for oc_migrations ...
     - Change collation for oc_migrations ...
     - Change row format for oc_mimetypes ...
     - Change collation for oc_mimetypes ...
     - Change row format for oc_systemtag_group ...
     - Change collation for oc_systemtag_group ...
     - Change row format for oc_trusted_servers ...
     - Change collation for oc_trusted_servers ...
 - Repair mime types
     - Fixed comicbook mime types
 - Clean tags and favorites
     - 0 tags of deleted users have been removed.
     - 0 tags for delete files have been removed.
     - 0 tag entries for deleted tags have been removed.
     - 0 tags with no entries have been removed.
 - Repair invalid shares
 - Remove shares of a users root folder
 - Move .step file of updater to backup location
     - .step file exists
     - .step file moved to .step-previous-update
 - Fix potential broken mount points
     - No mounts updated
 - Repair invalid paths in file cache
 - Add log rotate job
 - Clear frontend caches
     - Image cache cleared
     - SCSS cache cleared
     - JS cache cleared
 - Add preview background cleanup job
 - Queue a one-time job to cleanup old backups of the updater
 - Repair pending cron jobs
     - Repaired 1 pending cron job(s).
 - Fix component of birthday calendars
     - 2 birthday calendars updated.
 - Fix broken values of calendar objects
    0 [>---------------------------]
 - Registering building of calendar search index as background job
     - Repair step already executed
 - Remove activity entries of private events
     - Removed 0 activity entries
 - Fix the share type of guest shares when migrating from ownCloud
 - Copy the share password into the dedicated column
 - Migrate binary status into separate boolean fields
 - Update OAuth token expiration times

Retour sur la mise à jour, cela fonctionne !

update
erreur !

Ma migration vers Nextcloud 15 n’attend plus que moi.