nextcloud / spreed

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.64k stars 437 forks source link

Tallk Update failed from 8.0.7 to 8.0.8 on Nextcloud Version 18.0.3 #3368

Closed ChristophAGietl closed 4 years ago

ChristophAGietl commented 4 years ago

Steps to reproduce

  1. Update Talk in Nextcloud 18 in WebGUI form 8.0.7 to 8.0.8 using this URL: https://[Server]/index.php/settings/apps/installed/spreed
  2. Get Error Message:

Expected behaviour

Update Talk from 8.0.7 to 8.0.8

Actual behaviour

Error Message received:

Original Text: Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden. An exception occurred while executing 'CREATE INDEX tp_session_id ON oc_talk_participants (session_id)': SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Translation of the first two sentences: An error occured during the request, We cannot proceed.

-> I configured the server to use Barracuda DB format https://docs.nextcloud.com/server/18/admin_manual/configuration_database/mysql_4byte_support.html

These are the commands I used

mysql -u root -p [PW] show variables like 'innodb_file_format'; SET GLOBAL innodb_file_format=Barracuda; show variables like 'innodb_file_format'; show variables like 'innodb_file_per_table'; -> is on. exit

cd /var/www/nextcloud sudo -u www-data php occ maintenance:mode --on systemctl mysql restart

mysql -u root -p [PW] ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; exit

sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"

sudo -u www-data php occ maintenance:repair

https://strobelstefan.org/?p=7501&unapproved=2923&moderation-hash=c942fc7ad2d783f7f59e400aa2dd8f46#comment-2923 $ 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; $ sudo -u www-data php occ maintenance:repair cd /var/www/html/nextcloud sudo -u www-data php occ maintenance:mode --off

Alle Antelope mit diesem Befehl ändern

ALTER TABLE nextcloud.oc_tablename ROW_FORMAT=DYNAMIC, ALGORITHM=COPY;

also: ALTER TABLE nextcloud.oc_accounts ROW_FORMAT=DYNAMIC, ALGORITHM=COPY; ALTER TABLE nextcloud.oc_activity ROW_FORMAT=DYNAMIC, ALGORITHM=COPY; ALTER TABLE nextcloud.oc_activity_mq ROW_FORMAT=DYNAMIC, ALGORITHM=COPY; ALTER TABLE nextcloud.oc_addressbookchanges ROW_FORMAT=DYNAMIC, ALGORITHM=COPY;

Check if now all tables are in Barracuda format. ... Everything is fine now.

Server configuration detail

Operating system: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64

Webserver: Apache/2.4.29 (Ubuntu) (apache2handler)

Database: mysql 10.1.44

PHP version:

7.4.4 Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, sodium, apache2handler, mysqlnd, PDO, xml, apcu, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, intl, json, exif, mysqli, pdo_mysql, apc, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlrpc, xmlwriter, xsl, zip, Phar, Zend OPcache

Nextcloud version: 18.0.3 - 18.0.3.0

Updated from an older Nextcloud/ownCloud or fresh install: 18.0.2

Where did you install Nextcloud from: https://nextcloud.com/

Signing status Array ( )
List of activated apps ``` Enabled: - accessibility: 1.4.0 - activity: 2.11.0 - announcementcenter: 3.7.0 - audioplayer: 2.10.0 - bruteforcesettings: 1.6.0 - camerarawpreviews: 0.7.3 - checksum: 0.4.4 - cloud_federation_api: 1.1.0 - comments: 1.8.0 - contacts: 3.3.0 - dav: 1.14.0 - federatedfilesharing: 1.8.0 - federation: 1.8.0 - files: 1.13.1 - files_downloadactivity: 1.7.0 - files_mindmap: 0.0.21 - files_pdfviewer: 1.7.0 - files_photospheres: 1.0.7 - files_rightclick: 0.15.2 - files_sharing: 1.10.1 - files_trackdownloads: 1.7.0 - files_trashbin: 1.8.0 - files_versions: 1.11.0 - files_videoplayer: 1.7.0 - firstrunwizard: 2.7.0 - flowupload: 0.1.8 - groupfolders: 6.0.5 - issuetemplate: 0.6.0 - logreader: 2.3.0 - lookup_server_connector: 1.6.0 - nextcloud_announcements: 1.7.0 - notifications: 2.6.0 - oauth2: 1.6.0 - ocr: 6.0.32 - password_policy: 1.8.0 - photos: 1.0.0 - privacy: 1.2.0 - provisioning_api: 1.8.0 - quota_warning: 1.7.0 - recommendations: 0.6.0 - registration: 0.4.7 - serverinfo: 1.8.0 - settings: 1.0.0 - sharebymail: 1.8.0 - sharingpath: 0.2.1 - spreed: 8.0.7 - support: 1.1.0 - survey_client: 1.6.0 - systemtags: 1.8.0 - tasks: 0.12.1 - text: 2.0.0 - theming: 1.9.0 - twofactor_backupcodes: 1.7.0 - unsplash: 1.1.5 - updatenotification: 1.8.0 - user_usage_report: 1.2.0 - video_converter: 0.1.4 - viewer: 1.2.0 - workflowengine: 2.0.0 Disabled: - admin_audit - encryption - files_external - music - onlyoffice - user_ldap ```
Configuration (config/config.php) ``` { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "evisco.live", "eviscomedia.de", "www.eviscomedia.de", "www.evisco.live" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "18.0.3.0", "overwrite.cli.url": "http:\/\/evisco.live", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "memcache.local": "\\OC\\Memcache\\APCu", "maintenance": false, "theme": "", "loglevel": 2, "mysql.utf8mb4": true, "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "smtp", "mail_sendmailmode": "smtp", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtpauthtype": "LOGIN", "mail_smtpauth": 1, "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "587", "mail_smtpsecure": "tls" } ```

Are you using external storage, if yes which one: Ionos Blockstorage for data

Are you using encryption: true

Are you using an external user-backend, if yes which one: No

Client configuration

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36

Operating system: Windows 10 Pro (not relevant to the issue)

Logs

Web server error log ``` ```
Nextcloud log ``` ```
Browser log
nickvergessen commented 4 years ago

You seem to have forgotten Step 2: innodb_large_prefix=true

ChristophAGietl commented 4 years ago

Thank you very much for your reply!

I think you refer to step 2b in this article https://docs.nextcloud.com/server/18/admin_manual/configuration_database/mysql_4byte_support.html

I thought I had MySql later than 8.0 so I skipped that step MariaDB [(none)]> select version (); 10.1.44-MariaDB-0ubuntu0.18.04.1

But it is off:

mysql> show variables like 'innodb_large_prefix'; innodb_large_prefix | OFF

So I will try to locate the cnf file to change that permanently.

I wonder is innodb_default_row_format compact ok or does that need to be dynamic?

Kind regards from Munich, Germany

nickvergessen commented 4 years ago

If you run Maria DB, check the bottom half of the page for some additional steps. https://docs.nextcloud.com/server/18/admin_manual/configuration_database/mysql_4byte_support.html#mariadb-support

Regarding your question see Step 7.

This will also change the ROW_FORMAT to COMPRESSED for your tables, to make sure the used database storage size is not getting out of hand.

nickvergessen commented 4 years ago

Closing as per above