Перейти к содержанию

Известные проблемы

Не работает вход от имени пользователя у администратора

У администратора есть возможность выполнить вход в аккаунт пользователя от его имени. Это действие не требует знания пароля, оно выполняется анонимно.

Как правило, доступ к аккаунту пользователя необходим для выполнения каких-либо операций, связанных с поддержкой. Например, если пользователь случайно очистил содержимое корзины, и нужно восстановить удаленные письма.

Чтобы получить доступ к конкретному ящику, администратор использует опцию Войти как пользователь в профиле пользователя в административной панели. Доступ к ящику пользователя предоставляется по сгенерированной ссыле. При попытке воспользоваться этой ссылкой администратор может получить сообщение про неверный пароль.

Для того чтобы исправить ситуацию, необходимо выполнить следующие действия:

  1. В веб-интерфейсе установщика перейти к списку контейнеров (вкладка AdminPanel)

  2. Найти в списке контейнеров autogen-tar1 и нажать на значок шестеренки справа от названия контейнера.

    autogen-tar1

  3. Запустить выполнение шага init_autogen_tokens.

    autogen-tokens

Не удается зайти в Почту, на экране отображается колесо (буква С градиентом)

интерфейс не прогружается

Последовательность действий

  1. Проверить, что сертификаты и DNS в порядке.

  2. Проверить наличие ошибок в консоли браузера (инструменты разработчика, Development Tools).

    Вероятные ошибки: «ошибка загрузки login.css - 404 not found».

  3. Выполнить up_container для контейнера img1:

    1. В веб-интерфейсе установщика VK WorkMail перейти на вкладку AdminPanel
    2. Найти в списке контейнеров img1 и нажать на значок шестеренки справа от названия контейнера
    3. Выполнить шаг up_container.

Система не стартует, падает haproxy-pg

Симптомы

Не стартует контейнер onpremise-container-haproxy-pgN, N - номер контейнера.

В логах упоминается FD limit:

[ALERT]    (1) : [haproxy.main()] Cannot raise FD limit to 120223, limit is 120082.
# первое число - значение, до которого пытаемся поднять лимит
# второе число - текущий лимит

Примечание

Числа в сообщении об ошибке могут быть разными.

Когда возникает

Ошибка может возникать при различных ситуациях: обновление до версии 1.13, установка версии 1.13, перезагрузка системы с установленной версией 1.13.

Последовательность действий для исправления ошибки

  1. Перейти в папку, в которую производилась установка VK WorkMail.

  2. Открыть для редактирования файл configs/pg/roles.yaml.

  3. Найти ulimits и увеличить до необходимого количества.

  4. Перезапустить установщик, выполнив команду:

    bash sudo systemctl restart deployer

  5. Выполнить шаг up_container для контейнера haproxy-pgN:

    1. В веб-интерфейсе установщика VK WorkMail перейти на вкладку AdminPanel

    2. Найти в списке контейнеров haproxy-pgN и нажать на значок шестеренки справа от названия контейнера

    3. Выполнить шаг up_container.

      up_haproxy_pg

Ошибка слишком длинных имен сервера в nginx

Если используется слишком много имен серверов или эти имена слишком длинные то может возникать следующая ошибка:

could not build server_names_hash, you should increase server_names_hash_bucket_size: 64

Решение:

Увеличить значение параметра server_names_hash_bucket_size до 128 или 256 в настройках целевого nginx-a. По-умолчанию размер бакета равен 64.

Ошибка AIO для MySQL

Для ОС Astra Linux периодически возникает проблема с AIO для баз даныхх MySQL.

Решение:

for i in ls -1 /opt/mailOnPremise/dockerVolumes/**/mysql-conf.d/*cnf;
do echo "" >> $i; echo "innodb_use_native_aio = 0" >> $i; done

Базы данных перезапустятся сами.

В профилактических целях добавьте переменную innodb_use_native_aio = 0 в следующие контейнеры: bizdb, gravedb, mirage, seconddb, swadb, umi.

Ошибка Failed to create shim task

Может возникнуть в любом контейнере.

Ошибка:

Error response from daemon: failed to create shim task: 
OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0:
error running hook: exit status 1, stdout: , stderr: time="2023-05-24T13:24:04+03:00" level=fatal msg="failed to add interface temp8266b45f552 to sandbox:
error setting interface \"temp8266b45f552\" routes to [\"169.254.1.1/32\" \"fe80::7c5f:4cff:fe0c:99b6/128\"]: permission denied": unknown

Решение:

  1. Проверить, что отключен ipv6:

    sysctl -a | grep net.ipv6.conf.all.disable_ipv6
    
  2. Отключить ipv6 и перезапустить контейнеры, в которых возникла ошибка.

Ошибка при переполнении etcdserver: mvcc: database space exceeded

Может возникнуть во всех контейнерах связанных с etcd.

Диагностика:

docker exec -it -e ETCDCTL_API=3 infraetcd1 etcdctl endpoint status --write-out=table
docker exec -it -e ETCDCTL_API=3 infraetcd1 etcdctl alarm list

Ответ:

+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------------------------------+
|    ENDPOINT    |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX |             ERRORS             |
+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------------------------------+
| 127.0.0.1:2379 | 9cb9164b613d67b2 |   3.5.0 |  2.1 GB |      true |      false |         6 |   41175332 |           41175332 |  memberID:11293082053618001842 |
|                |                  |         |         |           |            |           |            |                    |                 alarm:NOSPACE  |
+----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------------------------------+
memberID:11293082053618001842 alarm:NOSPACE

Решение:

REVISION=$(docker exec -it -e ETCDCTL_API=3 infraetcd1 etcdctl endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
docker exec -it -e ETCDCTL_API=3 -e REVISION=$REVISION infraetcd1 etcdctl compact ${REVISION}
docker exec -it -e ETCDCTL_API=3 infraetcd1 etcdctl --command-timeout=5m defrag
docker exec -it -e ETCDCTL_API=3 infraetcd1 etcdctl alarm disarm

Ошибка keycloak: User with username 'mridme' already added

Решение:

  1. Остановить keycloak:

    systemctl stop onpremise-mail.target
    systemctl stop onpremise-container-keycloak1.service
    
  2. Удалить файл keycloak-add-user.json:

    rm -f $(docker inspect keycloak1 | grep Upper | cut -d ":" -f2 | sed --expression='s/"//g' | sed --expression='s/,//g' | sed --expression='s/ //g')/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json
    
  3. Запустить keycloak:

    systemctl start onpremise-mail.target
    systemctl start onpremise-container-keycloak
    

Ошибка связи fedman с другой установкой WorkMail

Решение:

  1. Перейти в контейнер fedman:

    docker exec -it tnt-fedman1 sh
    
  2. Убедиться, что внутри контейнера не видно двух fedman'ов — есть только локальный fedman:

    tarantoolctl connect unix/:/var/run/tarantool/tarantool.sock
    box.space.users:select()
    box.space.instance:select()
    
  3. Остановить контейнер tnt-fedman и удалить его с содержимым:

    systemctl stop onpremise-container-tnt-fedman1 && docker rm tnt-fedman1 && rm -rf /opt/mailOnPremise/dockerVolumes/tnt-fedman1/
    
  4. В интерфейсе установщика запустить шаг up_container для контейнера tnt-fedman.

  5. Остановить контейнер fedman и удалить его вместе с содержимым:

    docker rm -f fedman1 && rm -rf /opt/mailOnPremise/dockerVolumes/fedman1/
    
  6. В интерфейсе установщика запустить шаг up_container для контейнера fedman.

  7. Если пользователь добавлен в почту, но письма не отправляются, даже самому себе — проверить, есть ли он в базе данных tnt-fedman:

    docker exec -it tnt-fedman1 console
    box.space.users:select('user@domain.level2.ru')
    
  8. Если пользователя нет, то скорее всего нарушена репликация fedman. Нужно остановить fedman и удалить его вместе с содержимым:

    docker rm -f fedman1 && rm -rf /opt/mailOnPremise/dockerVolumes/fedman1/
    
  9. В интерфейсе установщика запустить шаг up_container для контейнера fedman.

Ошибка nylon при кластерной установке

Ошибка:

Call to 'get_upload_pair' with '{"pair_type":"CLOUD","request_size":10903532,"req_id":"8xw2Thieg6","source":"cld-uploader1.qdit"}' failed with 'PairDB failed processing request: '{"status":"error","error_code":3,"error_desc":"Pair not found"}''

Диагностика:

Проверить s3pairdb:

docker exec -it s3pairdb1 tarantool -a 3303
lua pairdb.shell.run("list")

Посмотреть есть ли следующие логи:

---
 - 0
 - #1 status:HOTBOX st1:172.20.2.207:80/1 st2:172.20.12.207:80/1 free:49820401664/49820381184 err:1970-01-01:00:00:00/1970-01-01:00:00:00 class:CLOUD karma:2 maintenance:1970-01-01:00:00:00
#2 status:HOTBOX st1:172.20.2.207:80/2 st2:172.20.1.207:80/2 free:49820401664/49820401664 err:1970-01-01:00:00:00/1970-01-01:00:00:00 class:CLOUD karma:2 maintenance:1970-01-01:00:00:00
#3 status:HOTBOX st1:172.20.1.207:80/3 st2:172.20.12.207:80/3 free:49820401664/49820381184 err:1970-01-01:00:00:00/1970-01-01:00:00:00 class:CLOUD karma:2 maintenance:1970-01-01:00:00:00

Решение:

Пометить каждую строку с помощью следующих команд:

lua pairdb.shell.run("mark", "1", "HOTBOX,REDUNDANT")
lua pairdb.shell.run("mark", "2", "HOTBOX,REDUNDANT")
lua pairdb.shell.run("mark", "3", "HOTBOX,REDUNDANT")

Ошибка CE_BADBLOB при создании файла в облаке

  1. В интерфейсе установщика перейти на вкладку AdminPanel.
  2. Найти в списке контейнеров cld-docs и нажать на значок шестеренки справа от названия контейнера.
  3. Выполнить шаг upload_file_templates.

См. также: Не создается документ в VK WorkDisk, и в меню «Создать» не хватает кнопок

Ошибка configure_replication_cluster

Симптомы

В логах установщика много ошибок вида:

окт 16 15:57:17 devqa-02 deployer[525686]: 2023/10/16 15:57:17 [rpopdb1][configure_replication_cluster] failed dump from master: error execute template to dump db from master: Process exited with status 2
окт 16 15:57:17 devqa-02 deployer[525686]: 2023/10/16 15:57:17 [gravedb1][configure_replication_cluster] failed dump from master: error execute template to dump db from master: Process exited with status 2
окт 16 15:57:17 devqa-02 deployer[525686]: 2023/10/16 15:57:17 [swadb1][configure_replication_cluster] failed dump from master: error execute template to dump db from master: Process exited with status 2

Есть проблема со следующими контейнерами:

configure_replication_cluster_error

Решение:

  1. В интерфейсе установщика перейти на вкладку AdminPanel.
  2. Найти в списке контейнеров все контейнеры вида bind*.
  3. Для каждого контейнера нажать на значок шестеренки справа от названия контейнера и выполнить шаг up_container.
  4. Найти в списке контейнеров все контейнеры вида consul*.
  5. Внутри каждого контейнера выполнить следующие команды:

    consul kv delete orchestrator/mysql/master/bibliodb/hostname
    consul kv delete orchestrator/mysql/master/bizdb/hostname
    consul kv delete orchestrator/mysql/master/fstatdb/hostname
    consul kv delete orchestrator/mysql/master/gravedb/hostname
    consul kv delete orchestrator/mysql/master/mirage/hostname
    consul kv delete orchestrator/mysql/master/rpopdb/hostname
    consul kv delete orchestrator/mysql/master/seconddb/hostname
    consul kv delete orchestrator/mysql/master/swadb/hostname
    consul kv delete orchestrator/mysql/master/umi/hostname
    

cluster not found at /mailonpremise/overlord/

Симптомы

  1. Не запускается контейнер calendar-notifytar.
  2. В логах ошибка:

    окт 17 21:46:29 devqa-01 onpremise-container-crow-usershards1[322669]: 2023-10-17T21:46:29.326+0300        ERROR        get initial configuration failed        {"error": "cluster not found at /mailonpremise/overlord/instances/crow-usershards1/, kv len 0: cluster not found"}
    окт 17 21:46:29 devqa-01 onpremise-container-crow-usershards1[322669]: 2023-10-17T21:46:29.326+0300        ERROR        If cluster not found in ETCD, please check that ETCD is ready to accept connections and you make initial setup of overlord clusters.
    окт 17 21:46:29 devqa-01 systemd[1]: onpremise-container-crow-usershards1.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
    окт 17 21:46:31 devqa-01 systemd[1]: onpremise-container-crow-usershards1.service: Failed with result 'exit-code'.
    
  3. В интерфейсе установщика на вкладке НастройкиШардирование и репликация БД при клике на Опросить все Overlord'ы выдает ошибку:

    calendar-notifytar1
    {"error":"failed to create SSH tunnel: test remote dial error: ssh: rejected: administratively prohibited (open failed)"}
    "failed to create SSH tunnel: test remote dial error: ssh: rejected: administratively prohibited (open failed)"
    Master: no
    

Решение:

  1. В интерфейсе установщика перейти на вкладку AdminPanel.
  2. Найти в списке контейнеров все контейнеры вида mailetcd*.
  3. Для каждого контейнера нажать на значок шестеренки справа от названия контейнера и последовательно выполнить два шага:
    1. overlord_clusters;
    2. up_container.
  4. Найти в списке контейнеров calendar-notifytar.
  5. Нажать на значок шестеренки справа от названия контейнера и выполнить шаг up_container.

Ошибка can't run gctune

  1. В интерфейсе установщика перейти на вкладку НастройкиПеременные окружения.
  2. Найти нужный контейнер и установить переменную {name}_GCTUNE_DISABLE=false. Например, для cexsy нужно установить переменную CEXSY_GCTUNE_DISABLE=false.

Полный перечень переменных:

  • SWA_FAU_MAILTO_GCTUNE_DISABLE
  • OVERLORD_GCTUNE_DISABLE
  • BMW_GCTUNE_DISABLE
  • FEDMAN_GCTUNE_DISABLE
  • MAILBOT_GCTUNE_DISABLE
  • OPER_GCTUNE_DISABLE
  • CLOUDBIZ_GCTUNE_DISABLE
  • MAILER_GCTUNE_DISABLE
  • ONPREMAPI_GCTUNE_DISABLE
  • POLITICS_GCTUNE_DISABLE
  • CEXSY_GCTUNE_DISABLE

Внимание

Перед установкой переменной окружения рекомендуется проконсультироваться с поддержкой.