Nextcloud upgrade van NC27 naar NC28

Nextcloud upgrades verlopen meestal zonder problemen, maar niet elke keer. Krap vier jaar terug had ik problemen met de upgrade van NC18 naar NC19: de database was gegroeid tot 440 GB, wat moeite gaf (timeout) bij de backup. In dat geval bleek het gros van de database te bestaan uit cache van externe bestanden; na truncate (truncate oc_filecache;) van de tabel verliep de upgrade zonder problemen.

Nu een aantal versies later: de upgrade van Nextcloud 27 naar Nextcloud 28 wil niet. Aan het begin van het jaar heb ik het eens geprobeerd, zonder succes, en een rollback gedaan naar het snapshot van juist daarvoor.

Ondertussen is Nextcloud 29 al een tijdje beschikbaar en raakt NC27 ‘unsupported’. In de hoop dat mogelijke bugs gevonden zijn, heb ik opnieuw een upgrade gestart. Helaas weer zonder succes.

Tweede poging

Deze stappen heb ik genomen:

  • Alle systeemcomponenten bijwerken : apt upgrade && apt update -y
  • Alle NC-apps bijwerken naar de laatste versie via admin login –> gezichts-menu –> Apps –> Your apps en dan “Upgrade all”
  • Controleren welke apps nog geen ondersteuning hebben in de nieuwe Nextcloud. Er is zo’n lijstje voor unsupported apps in NC29, maar voor NC28 heb ik dat niet kunnen vinden. Er zijn geen apps actief die in dat lijstje voorkomen
  • Shutdown container in Proxmox ; voor snapshots is dat niet nodig, maar om een consistente staat van de databases de garanderen lijkt het me een goed idee
  • Create snapshot in Proxmox en start de container
  • Log in in Yunohost en start de upgrade van Nextcloud
    • Yunohost creeert eerst een backup
    • Voert de upgrade uit
    • Klapt op “App ‘Text file editor’ not supported in NC28”, of iets in die geest
    • Probeert een restore van de backup uit te voeren
    • Restore hangt op “Restoring the MySQL database”
  • Shutdown container in Proxmox
  • Restore container snapshot in Proxmox
  • Start container

Anders dan de ‘unsupported app’-melding heb ik de specifieke fout niet kunnen herleiden; door de restore van het snapshot is de logging niet meer beschikbaar.

Derde poging

Nadat het snapshot teruggezet is:

  • Applicatie “Edit text files” verwijderen
  • De nu beschikbare MariaDB-updates installeren
  • Shutdown container, snapshot maken, boot container
  • Nextcloud upgraden vanaf de command line voor wat meer live-inzicht: yunohost app upgrade nextcloud
  • De upgrade loopt weer fout, ik laat het proces verder lopen in de achtergrond om te zien wat de restore van de backup doet
  • Na geruime tijd te blijven hangen op ‘Restoring the MySQL database’, wordt het script vervolgd
  • Restore van de backup klapt uiteindelijk op ontbrekende cachebestanden of previews,
    Info: WARNING - chown: cannot access '/home/yunohost.app/nextcloud/data/appdata_ocjk9xv5jzs5/preview/f/8/6/8/e/8': Structure needs cleaning
  • Logging is via de Yunohost-logpublicatieservice te vinden op:

Omdat de restore mislukt, is er geen Nexctloud beschikbaar. Het is aantrekkelijk om het snapshot van voor de mislukte upgrade terug te zetten, maar daarmee vervallen tussentijdse wijzigingen: conceptversies van deze blogpost bijvoorbeeld, of tussentijds binnengekomen emails.

Logging doorzoeken

In willekeurige volgorde valt op in de logging, om verder uit te zoeken:

  • Bij de upgrade:
    • DEBUG - An unhandled exception has been thrown:
      DEBUG - Error: Undefined constant OCA\Keeweb\Migration\RegisterMimeType::CUSTOM_MIMETYPEALIASES in /var/www/nextcloud/apps/keeweb/lib/Migration/RegisterMimeType.php:25
  • Bij de restore:
    • DEBUG - Checking smb.conf with testparm
      WARNING - Load smb config files from /etc/samba/smb.conf
      WARNING - Loaded services file OK.
      WARNING - Weak crypto is allowed
      WARNING - Server role: ROLE_STANDALONE
    • WARNING - chown: cannot access '/home/yunohost.app/nextcloud/data/appdata_ocjk9xv5jzs5/preview/1/d/c/6/2': Structure needs cleaning

Gezien het beperkte aantal emails en m’n offline kopie van deze tekst, is restore van het snapshot de snelste weg naar een nieuwe poging. Ik verwijder daarvoor eerst de Keeweb-app. De Keeweb-app heeft nooit gewerkt, maar ook nooit in de weg gezeten; het is de enige foutmelding in het upgrade-log.

Er zou een werkende versie van de app moeten zijn, hoewel er nu bij de app vermeld staat dat er upstream, bij Keeweb zelf, geen updates zijn sinds 2021. Na disable+remove van Keeweb sla ik het concept op en maak ik een nieuw snapshot, klaar voor een vierde poging.

Vierde poging

De vierde poging komt verder; de upgrade naar Nextcloud 28 (meer specifiek: 28.0.8 blijkt uit het log) lijkt voltooid: er wordt gemeld dat de upgrade naar Nextcloud 29.0.5 start.

Die upgrade slaagt niet; het log meldt:

InvalidArgumentException: Index name "sa" for table "oc_social_3_stream_act" collides with the constraint on table "oc_social_stream_act".
Update failed
Maintenance mode is kept active
Resetting log level

Ik wacht de restore van de backup niet af; ik controleer of er mail ontvangen is gedurende de update en ga meteen door met een rollback van het snapshot.

Er zijn een paar aanwijzingen te vinden op ‘t Net: op de Nextcloud-fora en op de Gitub-pagina van Nextcloud. De oc_social_3_*-tabellen zijn in de loop van de tijd hernoemd naar oc_social_*, zonder “3” in de naam. De social app was al disabled wegens niet compatibel na een eerdere upgrade; ik heb de tabellen meteen verwijderd zoals gesuggereerd in een van de threads:

drop table oc_social_3_action; drop table oc_social_3_actor; drop table oc_social_3_cache_actor; drop table oc_social_3_cache_doc; drop table oc_social_3_client; drop table oc_social_3_follow; drop table oc_social_3_hashtag; drop table oc_social_3_instance; drop table oc_social_3_req_queue; drop table oc_social_3_stream; drop table oc_social_3_stream_act ; drop table oc_social_3_stream_dest; drop table oc_social_3_stream_queue; drop table oc_social_3_stream_tag;

Concept opslaan, snapshot maken en nog eens proberen.

Vijfde poging

Geslaagd! De upgrade van NC27 via NC28 naar NC29 besloeg een kwartier, waarvan het grootste deel voor rekening van de backup van de database kwam.

Er is een niet-fatale waarschuwing,

Warning: File /var/www/nextcloud/config/config.php has been manually modified since the installation or last upgrade. So it has been duplicated in /var/cache/yunohost/appconfbackup//var/www/nextcloud/config/config.php.backup.20240917.184213

Ik meen dat ik de configuratie als read-only gemarkeerd heb; voor de rest moet ik de verschillen erop naslaan.

Bij het oproepen van de site en bij het inloggen heeft Nextcloud geen vervelende verrassingen. Een nieuw jasje en onder de motorkap vast veel gewijzigd, maar aan de buitenkant ‘gewoon’ de bestanden die er altijd al stonden. Fijn.

Print this entry

Telefoon-upgrade

Met wat omwegen op een Samsung Note 10+ (4G-versie, model SM-N975F/DS) uitgekomen.

Vervolg:

  • LineageOS installeren, maar eerst
  • TWRP installeren die verwijst naar
  • Magisk, waarvoor de
  • Bootloader vrijgeschakeld moet zijn

Dus:

  • Bootloader vrijschakelen (volgens hardreset.info):
    • developer opties beschikbaar maken : 7-8x tikken op de software build versie
    • daarna onder ontwikkelopties “OEM unlock” aanzetten
    • telefoon uitschakelen
    • inschakelen in download-modus:
      • volume up + volume down ingedrukt houden
      • USB-C aansluiten
      • even wachten met knoppen ingedrukt, tot de waarschuwing verschijnt
      • volume up lang (paar seconden) ingedrukt houden (“Device unlock mode”)
      • “Unlock bootloader?” volume up = yes
      • vervolgens reboot de telefoon en start met een waarschuwing dat de bootloader unlocked is
      • druk power button om te bevestigen; de telefoon wordt gereset naar factory defaults
      • Na een paar minuten is de telefoon terug bij het welkomstscherm om de telefoon in gebruik te nemen
    • Na doorlopen van de welkomstschermen is de telefoon klaar voor de vervolgstappen
  • Magisk downloaden van Github
    • v27 is de meest recente release op het moment
    • na downloaden de browser vrijschakelen als bron van .apk’s
    • De howto laat controleren of er een ramdisk is; dat is bij deze telefoon niet het geval
    • Daarna de Samsung-specifieke howto volgen, voorbereiden op nogmaals full reset
    • verifieer dat “OEM unlock” read-only op ‘ja’ staat door opnieuw de developer modus te activeren
    • Installeer (op de computer) een firmware-downloader, ik neem Bifrost
      • Het modelnummer heb ik (SM-N975F/DS), IMEI kan ik vinden, maar CSC en firmware weet ik niet
        • CSC blijkt ‘consumer software customization’ te zijn, en van weinig belang. Het is te vinden onder settings/about phone/software information/service provider software revision; hier is het PHN
        • De firmware zou N970FXXS9HWG9 moeten zijn, door te zoeken naar de laatste firmware en vinden van een site als sammobile.com
        • Ik bleef een foutmelding krijgen (“AccessDenied”), tot ik het een keer voor model SM-N975F probeerde. Voor dat model werd een set IMEI’s aangeboden, waarmee de download niet slaagde. Met IMEI van de telefoon slaagde de download wel.
        • De firmware is krap 7 GB groot, en download niet erg snel (3-5 MB/s)… Het duurt dus wel even. Bifrost blijkt de firmware aansluitend te ontsleutelen naar een regulier zip-bestand; daarvoor was onvoldoende ruimte. Bij een tweede poging ging de download vlotter: rond 15MB/s; daarmee was de download in 5-10 minuten klaar
        • Behulpzame begripverklaring op XDA-forums
    • Vervolgens de firmware uitpakken en het AP-bestand (AP_N975FXXS9HWG9_CL24230781_QB68148780_REV01_user_low_ship_meta_OS12.tar.md5 in dit geval) kopieren naar (een willekeurige locatie op) de telefoon
    • Terug op de telefoon in Magisk kiezen voor installatie en kies het gekopieerde bestand
    • Het bestandje wordt gepatcht en na een paar minuten is het proces klaar
    • Kopieer het gepatchte bestand naar de PC; ADB wordt aanbevolen omdat MPT kennelijk grote bestanden wel eens vernaggelen wil. Omdat de telefoon zonet een factory reset gehad heeft, kan het nodig zijn om onder developer options de debug-optie weer te activeren (anders ‘adb: error: failed to get features set: no devices/emulators found’)
      • adb pull /sdcard/Download/magisk_patched-27007_5PUV6.tar
    • Daarna de telefoon rebooten in download-modus
    • Gebruik Heimdall om de telefoon te flashen met de gepatchte firmware in combinatie met de ongepatchte overige zaken
      • Heimdall ziet enkel .tar.gz-bestanden in de bestandskiezer. Ik probeerde de vier bestandjes in een nieuw bestand note10_patched.tar.gz weg te schrijven/comprimeren (en het door Magisk hernoemde bestand terug te noemen naar de oorspronkelijke naam), maar daarbij ontbrak het aan een firmware.xml in het bestand. De oorspronkelijke firmware had ik al weggegooid, er was me geen firmware.xml opgevallen
      • Als workaround alle bestanden uitgepakt (die vier, en de bestanden die daarin zitten; een stuk of 30) en die een voor een aan de partities gekoppeld. Heimdall gaf een libusb error -7 bij het flashen.
    • Op dit moment wilde de telefoon niet meer uit de download modus komen. De telefoon meldt “Something went wrong while flashing”, in die geest.
    • Na een hoop geemmer boot de telefoon weer naar het reguliere OS, maar heb ik nog geen gepatchte firmware geflasht. Onderweg:
      • Alternatieve flash-tool geprobeerd, Thor, waarvoor .Net 7 nodig is maar waar Microsoft enkel .Net 8 aanbiedt. Daarmee werkt het niet. Via Snap lijkt .Net 7 beschikbaar, maar daarmee vind Thor geen .Net. Uiteindelijk een statically compiled binary gevonden op xdaforums. Het lukte daarmee mondjesmaat contact te krijgen met de telefoon. Het lukte naar mijn idee niet om iets te flashen (ook niet na verwijderen van cdc_ether zoals aanbevolen in de startup van Thor).
      • Na een tijdje prutsen bootte de telefoon op een gegeven moment naar de reguliere GUI.
    • De installatiehandleiding van Magisk er nog eens op nageslagen en gezocht hoe mensen “flash magisk_patched.tar as AP”; een volgende post op xdaforums suggereerde enkel boot.img uit de AP-sectie te flashen : sudo heimdall flash --BOOT /home/wbk/dl/note10_patched/AP_extracts/boot.img
    • Daarmee lijk ik weer in het Magisk-installatieproces te komen, er is nu een klacht over het OS en dat een factory reset zou kunnen helpen. Die gedaan, developer opties weer ingeschakeld en reboot naar recovery modus en … niets.

20260227 Update: de telefoon is ondertussen een paar keer opnieuw geflashed, wordt vervolgd

Print this entry

Navullen: HP301 ‘xl’

HP301 weegt met onbekende hoeveelheid inkt 39 gram.

Op het moment stokt magenta, als troubleshoot:

  • Eerst een magenta-gradient geprint; de lichte gebieden worden totaal niet geprint, de donkere stukken wel, maar met onderbrekingen.
    • Het kan zijn dat de inkt een beetje op is
    • waarschijnlijker is dat een aantal spuitmondjes verstopt zijn
    • het wordt niet beter met meerdere keren printen
  • Weken, bijvullen en leegtrekken:
    • Eerst even weken op een papiertje met spiritus
    • dan magenta bijvullen
    • daarna de inkt met het ‘primer’ tooltje er doorheen trekken
  • Gevuld tot (netto) 44 gram met 5 gram magenta en 2 gram geel, 2 ml gemengde verf eruit getrokken

De 2 ml gemengde inkt heb ik in de zwarte cartridge gespoten. Die bleek bij aanvang slechts 33 gram te wegen, en bij primen van de kop kwam er geen inkt uit. Daarom meer bijgevuld; met 44 gram stroomde de cartridge nog niet over.

Nadat de cartridges weer in de printer zitten, is zwart weer zwart (het ging een beetje tegen grijsgroen), maar magenta laat niets van zich weten.

Ik heb nog wat geemmerd met navullen en leegtrekken:

  • gaatjes geel en cyaan afsluiten
  • zuigen aan de onderkant om magenta er door te trekken
  • bovenaan magenta bijvullen

… maar dat heeft enkel tot gevolg gehad dat er magenta in geel en cyaan kwam (die werden immers vacuum gezogen, en trokken de beschikbare magenta weer naar binnen).

Bij opnieuw testen kwamen er bruin en paars uit de gele- en cyaankanalen; magenta deed niets. Het kan zijn dat de kop volledig stuk is, maar het zou ook kunnen dat het sponsje er zo slecht aan toe was, dat het wel ruimte maar geen inkt opnam.

Conclusie: deze cartridge vervangen. Het was al een cartridge van een refill-merk, in een printer die ik tien jaar terug gekregen heb en met enige regelmaat bijgevuld heb. Toevalligerwijs heb ik nog een refill-merk cartridge van Kringloop liggen die ik meteen kan wegen voor het ‘nieuw’-gewicht, en een continuous ink system van AliExpress wat ik al eens wilde uitproberen.

Print this entry