Server: Sabre webdav UTF-8 error after Upgrade to NC 15.0.0RC1

Created on 30 Nov 2018  路  8Comments  路  Source: nextcloud/server

During the Upgrade from NC14 to NC 15.0.0 RC1 got the follow error message:

occ upgrade -vvv
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php
The current PHP memory limit is below the recommended value of 512MB.
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
2018-11-30T19:15:03+00:00 Set log level to debug
2018-11-30T19:15:03+00:00 Repair step: Repair MySQL collation
2018-11-30T19:15:03+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-11-30T19:15:03+00:00 Repair step: Repair SQLite autoincrement
2018-11-30T19:15:03+00:00 Repair step: Copy data from accounts table when migrating from ownCloud
2018-11-30T19:15:04+00:00 Repair step: Drop account terms table when migrating from ownCloud
2018-11-30T19:15:04+00:00 Updating database schema
2018-11-30T19:15:05+00:00 Updated database
2018-11-30T19:15:06+00:00 Checking for update of app cloud_federation_api in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "cloud_federation_api" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app dav in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "dav" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app federatedfilesharing in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "federatedfilesharing" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app files in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "files" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app files_external in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "files_external" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app logreader in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "logreader" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app lookup_server_connector in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "lookup_server_connector" in appstore 2018-11-30T19:15:06+00:00 Checking for update of app notifications in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "notifications" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app oauth2 in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "oauth2" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app password_policy in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "password_policy" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app provisioning_api in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "provisioning_api" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app twofactor_backupcodes in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "twofactor_backupcodes" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app updatenotification in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "updatenotification" in appstore
2018-11-30T19:15:06+00:00 Checking for update of app workflowengine in appstore
2018-11-30T19:15:06+00:00 Checked for update of app "workflowengine" in appstore
2018-11-30T19:15:06+00:00 Repair step: Repair MySQL collation
2018-11-30T19:15:06+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-11-30T19:15:06+00:00 Repair step: Repair mime types
2018-11-30T19:15:06+00:00 Repair step: Clean tags and favorites
2018-11-30T19:15:06+00:00 Repair info: 0 tags of deleted users have been removed.
2018-11-30T19:15:06+00:00 Repair info: 0 tags for delete files have been removed.
2018-11-30T19:15:06+00:00 Repair info: 0 tag entries for deleted tags have been removed.
2018-11-30T19:15:06+00:00 Repair info: 0 tags with no entries have been removed.
2018-11-30T19:15:06+00:00 Repair step: Repair invalid shares
2018-11-30T19:15:06+00:00 Repair step: Remove shares of a users root folder
2018-11-30T19:15:06+00:00 Repair step: Move .step file of updater to backup location
2018-11-30T19:15:06+00:00 Repair step: Fix potential broken mount points
2018-11-30T19:15:06+00:00 Repair info: No mounts updated
2018-11-30T19:15:06+00:00 Repair step: Repair invalid paths in file cache
2018-11-30T19:15:06+00:00 Repair step: Add log rotate job
2018-11-30T19:15:06+00:00 Repair step: Clear frontend caches
2018-11-30T19:15:06+00:00 Repair info: Image cache cleared
2018-11-30T19:15:06+00:00 Repair info: SCSS cache cleared
2018-11-30T19:15:06+00:00 Repair info: JS cache cleared
2018-11-30T19:15:06+00:00 Repair step: Clear every generated avatar on major updates
2018-11-30T19:15:06+00:00 Repair info: Avatar cache cleared
2018-11-30T19:15:06+00:00 Repair step: Add preview background cleanup job
2018-11-30T19:15:06+00:00 Repair step: Queue a one-time job to cleanup old backups of the updater
2018-11-30T19:15:06+00:00 Repair step: Repair pending cron jobs
2018-11-30T19:15:06+00:00 Repair info: No need to repair pending cron jobs.
2018-11-30T19:15:06+00:00 Repair step: Extract the vcard uid and store it in the db
2018-11-30T19:15:07+00:00 Sabre\VObject\ParseException: Unsupported CHARSET: UTF-8,UTF-8,UTF-8
2018-11-30T19:15:07+00:00 Update failed
2018-11-30T19:15:07+00:00 Maintenance mode is kept active
2018-11-30T19:15:07+00:00 Reset log level

Thank you.

3. to review bug dav install and update high needs info

All 8 comments

Check the nextcloud.log for the same message - it should contain more information. cc @skjnldsv @georgehrke

@Dani22m Can we have the nextcloud log?

Hi, thank you for your help.
It's look like a german Umlaut in the URL field of a VCARD from the Contact-App iscausing the problem
Text.txt

@Dani22m could you attach the vcard that break things.
It's available in the logs, but there must be another issue since creating the vcard myself is working fine here.
The vcard is: Friseur Gl眉cksstr盲hne Thanks

I suppose you can reproduce this issue when you edit a random vcard and set UTF-8,UTF-8,UTF-8 as charset. A broken vcard should not break the upgrade process so i would suggest to try-catch any Sabre\VObject\ParseException below:

https://github.com/nextcloud/server/blob/e36924e3f9fe5792ba28ed0e81c0c976b0a6277c/lib/private/Repair/NC15/SetVcardDatabaseUID.php#L81

@danielkesselberg yes, this is the issue and unfortunately, using the same broken vcard does not trigger the same error during the upgrade. Maybe there is an encoding issue or some sort.

It's available in the logs, but there must be another issue since creating the vcard myself is working fine here.

Like I said, the vacrd is already in the logs as a string, the charset is outputted as follow: URL;WORK=;X-SYNCMLREF1725=;CHARSET=UTF-8;CHARSET=UTF-8;CHARSET=UTF-8:http://www.friseur-g枚rlitz.de. But this is not throwing anything here.

The try catch is obviously the solution here. But I need to understand how this vcard was successfully uploaded in the first place since the same check applies on the creation.

EDIT: I just figured it, the vcard verison was changed by the software I used to push the vcard on the database. If you keep the 2.1 version, it's indeed failing.
Though 2.1 versions are not supported on nextcloud and will throw errors anyway, so I'm guessing the card comes form an old install! ;)

How can i extract the Vcard? Simple copy&paste the String from the database?

@Dani22m I was able to reproduce, no need for the vcard now :)
Thanks for your help! :wink:

Was this page helpful?
0 / 5 - 0 ratings