Страница 1 из 1

Проблема обновления docker версии CE

Добавлено: Вт янв 14, 2020 7:43 am
vega
Добрый день.

Обновил docker образы community server и document server до последней версии, удалил старые контейнеры, затем запустил следующий скрипт:

Код: Выделить всё

#!/bin/sh

sudo docker run -i -t -d -p 192.168.2.120:80:80 --restart=always --privileged --name onlyoffice_communityserver \
    -v /home/containers/onlyoffice/CommunityServer/logs:/var/log/onlyoffice  \
    -v /home/containers/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data  \
    -v /home/containers/onlyoffice/CommunityServer/mysql:/var/lib/mysql  onlyoffice/communityserver:latest

sudo docker run -i -t -d -p 192.168.2.121:80:80 --restart=always --name onlyoffice_documentserver \
    -v /home/containers/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /home/containers/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /home/containers/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /home/containers/onlyoffice/DocumentServer/db:/var/lib/postgresql  onlyoffice/documentserver:latest
Document server обновился успешно, интерфейс показывает что он запущен. У community server все миграции также прошли успешно. Но теперь в web.log постоянно возникают ошибки:

Код: Выделить всё

2020-01-14 07:34:14,017 ERROR [5] ASC.Resources - Can not get resource from NewsResource.resx for en-US: GetString(Action_Edit_Name), MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
  at MySql.Data.Common.StreamCreator.GetTcpStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00036] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.Common.StreamCreator.GetStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00021] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00007] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00041] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.Driver.Open () [0x0000e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0004e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection () [0x00006] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection () [0x0008a] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x0003f] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x0001c] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlConnection.Open () [0x0016d] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at ASC.Common.Data.AdoProxy.DbConnectionProxy.Open () [0x00019] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.OpenConnection () [0x00007] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.get_Command () [0x0000e] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.ExecuteList (ASC.Common.Data.Sql.ISqlInstruction sql) [0x00000] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManagerProxy.ExecuteList (ASC.Common.Data.Sql.ISqlInstruction sql) [0x00006] in <700723969c6046a49d869c2c4d908b24>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.LoadResourceSet (System.String filename, System.String culture) [0x00062] in <eac6fafcf44744ffa1555548c8cd1ec5>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.GetResources () [0x0008e] in <eac6fafcf44744ffa1555548c8cd1ec5>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.GetString (System.String name, System.Boolean ignoreCase) [0x00002] in <eac6fafcf44744ffa1555548c8cd1ec5>:0  
2020-01-14 07:34:44,020 ERROR [5] ASC.Resources - Can not get resource from NewsResource.resx for en: GetString(Action_Edit_Name), MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
  at MySql.Data.Common.StreamCreator.GetTcpStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00036] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.Common.StreamCreator.GetStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00021] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00007] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00041] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.Driver.Open () [0x0000e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0004e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection () [0x00006] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection () [0x0008a] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x0003f] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x0001c] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at MySql.Data.MySqlClient.MySqlConnection.Open () [0x0016d] in <ffa6b95770be4daf8d8ae25ca059b16a>:0 
  at ASC.Common.Data.AdoProxy.DbConnectionProxy.Open () [0x00019] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.OpenConnection () [0x00007] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.get_Command () [0x0000e] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManager.ExecuteList (ASC.Common.Data.Sql.ISqlInstruction sql) [0x00000] in <700723969c6046a49d869c2c4d908b24>:0 
  at ASC.Common.Data.DbManagerProxy.ExecuteList (ASC.Common.Data.Sql.ISqlInstruction sql) [0x00006] in <700723969c6046a49d869c2c4d908b24>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.LoadResourceSet (System.String filename, System.String culture) [0x00062] in <eac6fafcf44744ffa1555548c8cd1ec5>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.GetResources () [0x0008e] in <eac6fafcf44744ffa1555548c8cd1ec5>:0 
  at TMResourceData.DBResourceManager+DBResourceSet.GetString (System.String name, System.Boolean ignoreCase) [0x00002] in <eac6fafcf44744ffa1555548c8cd1ec5>:0
Соответственно в web.sql.log только попытки открытия соединения:

Код: Выделить всё

2020-01-14 07:34:14,017|5|30001.035|Connection.Open||                                                                                                                                                              
2020-01-14 07:34:44,020|5|30001.0759|Connection.Open||                                                                                                                                                             
2020-01-14 07:36:28,864|5|30076.3915|Connection.Open||                                                                                                                                                             
2020-01-14 07:36:58,923|5|30001.4809|Connection.Open||                                                                                                                                                             
2020-01-14 07:37:28,927|5|30000.7414|Connection.Open||                                                                                                                                                             
2020-01-14 07:37:58,950|5|30000.6151|Connection.Open||                                                                                                                                                             
2020-01-14 07:38:28,960|5|30000.6874|Connection.Open||                                                                                                                                                             
2020-01-14 07:38:58,962|5|30001.3099|Connection.Open||                                                                                                                                                             
2020-01-14 07:39:28,966|5|30000.7329|Connection.Open||
При этом mysqld запущен, если зайти внутри контейнера mysql клиентом, то база onlyoffice видна и доступна.

Раньше постоянно таким способом обновлялся, проблем не было. Сейчас что-то не получилось. Версия community server 10.5.1.1028

Re: Проблема обновления docker версии CE

Добавлено: Ср янв 15, 2020 1:36 pm
Kirill_sol
Здравствуйте.

Уточните, пожалуйста, установленную версию MySQL.

Re: Проблема обновления docker версии CE

Добавлено: Пн янв 20, 2020 10:59 am
faligor
Добрый день.
Так же наблюдаю проблему с MySQL при обновлении Community Edition на Windows server. Использую инсталлятор ONLYOFFICE_CommunityEdition_Win-install.v19.12.398. Версия MySQL - 5.5.38. Ошибка в логах при установке, при исполнении процедуры upgrade105:
Specified key was too long; max key length is 767 bytes

Re: Проблема обновления docker версии CE

Добавлено: Пн янв 20, 2020 12:57 pm
Kirill_sol
Здравствуйте faligor.

Вам необходимо обновить MySQL до версии 8.0 с помощью установщика Community Server:

(необходимо установить утилиту HeidiSQL для возможности входа в базу данных ONLYOFFICE, также строго рекомендуем сделать полный бэкап/снэпшот сервера)
1. Войдите в HeidiSQL под пользователем root. Пароль можно посмотреть в C:\Program Files (x86)\Ascensio System SIA\CommunityServer\WebStudio\web.connections.config. Укажите hostname 127.0.0.1 и port 3306.
2. Правый клик по базе данных onlyoffice => Экспорт базы данных в SQL. Этот файл является дампом базы данных.
3. Остановите ONLYOFFICE Server в IIS и удалите все имеющиеся компоненты MySQL с сервера (Панель управления Windows => Программы и компоненты).
4. Запустите установщик Community Server 10.5. Удостоверьтесь, что напротив MySQL 8.0 стоит галочка.
5. Подождите, пока установка MySQL завершится. Зайдите в HeidiSQL и подключитесь к 127.0.0.1 без пароля.
6. Откройте меню Файл => Выполнить SQL файл => выберите ранее созданный файл дампа.
7. Когда дамп БД развернется, продолжите установку Community Server.
8. Когда установка завершится, снова зайдите в HeidiSQL => Файл => Выполнить SQL файл => выберите файл C:\Program Files (x86)\Ascensio System SIA\CommunityServer\Sql\onlyoffice.upgradev105.sql.
9. Перезапустите ONLYOFFICE Server в IIS => проверьте функционирование портала.

Re: Проблема обновления docker версии CE

Добавлено: Вт янв 28, 2020 5:34 am
faligor
Kirill_sol писал(а):
Пн янв 20, 2020 12:57 pm
Здравствуйте faligor.

Вам необходимо обновить MySQL до версии 8.0 с помощью установщика Community Server:

(необходимо установить утилиту HeidiSQL для возможности входа в базу данных ONLYOFFICE, также строго рекомендуем сделать полный бэкап/снэпшот сервера)
1. Войдите в HeidiSQL под пользователем root. Пароль можно посмотреть в C:\Program Files (x86)\Ascensio System SIA\CommunityServer\WebStudio\web.connections.config. Укажите hostname 127.0.0.1 и port 3306.
2. Правый клик по базе данных onlyoffice => Экспорт базы данных в SQL. Этот файл является дампом базы данных.
3. Остановите ONLYOFFICE Server в IIS и удалите все имеющиеся компоненты MySQL с сервера (Панель управления Windows => Программы и компоненты).
4. Запустите установщик Community Server 10.5. Удостоверьтесь, что напротив MySQL 8.0 стоит галочка.
5. Подождите, пока установка MySQL завершится. Зайдите в HeidiSQL и подключитесь к 127.0.0.1 без пароля.
6. Откройте меню Файл => Выполнить SQL файл => выберите ранее созданный файл дампа.
7. Когда дамп БД развернется, продолжите установку Community Server.
8. Когда установка завершится, снова зайдите в HeidiSQL => Файл => Выполнить SQL файл => выберите файл C:\Program Files (x86)\Ascensio System SIA\CommunityServer\Sql\onlyoffice.upgradev105.sql.
9. Перезапустите ONLYOFFICE Server в IIS => проверьте функционирование портала.
Здравствуйте Kirill_sol.

Спасибо большое, рекомендация помогла.

Re: Проблема обновления docker версии CE

Добавлено: Чт янв 30, 2020 6:09 am
faligor
Здравствуйте!

После обновления заметил ещё одну ошибку - при попытке сократить ссылку (shorten) для внешних пользователей получал ошибку:
The remote server returned an error: (400) Bad Request.

в ответе от сервера поле stack:
at ASC.Web.Files.Services.WCFService.FileStorageServiceController.GetShortenLink(String fileId) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
В лог файле web.files.log ошибка:
ERROR [109] ASC.Files - System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at ASC.Web.Core.Utility.OnlyoShortener.GetShortenLink(String shareLink)
at ASC.Web.Files.Services.WCFService.FileStorageServiceController.GetShortenLink(String fileId) System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at ASC.Web.Core.Utility.OnlyoShortener.GetShortenLink(String shareLink)
at ASC.Web.Files.Services.WCFService.FileStorageServiceController.GetShortenLink(String fileId)
Ошибка в лог файле web.urlshortener.log:

Код: Выделить всё

{"message":"ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client","level":"error"}
Поиск по ошибке выдал возможный workaround, связанный с методом аутентификации в 8 версии MySQL и невозможностью использования метода аутентификации caching_sha2_password в mysqljs в NodeJS (https://stackoverflow.com/a/56509065):

Код: Выделить всё

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; (подставил текущий пароль)
mysql> FLUSH PRIVILEGES;
mysql> quit
После указанных выше действий сокращение ссылки работает.
Нужно ли что-то менять или можно продолжать использовать с данным "решением"?

Re: Проблема обновления docker версии CE

Добавлено: Чт янв 30, 2020 11:42 am
Kirill_sol
Добрый день, faligor.

Действительно, существует баг сервиса UrlShortener, связанный с MySQL 8.0. В течение 1-2 недель мы планируем выпустить версию Community Server 10.5.2, где данный баг будет исправлен. Предложенный Вами вариант решения мы не тестировали, так что не могу сказать, чреват ли он какими-либо проблемами. Рекомендую дождаться выхода обновления.