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

Проблема С версии Fixed Обходное решение

Некоторые параметры ulimit (например, nofile limit) могут не установиться в случае запуска кластера через консольную утилиту gpstart под пользователем gpadmin (возникает в Astra Linux)

6.25.2.52.b1

 — 

При переключении на пользователя gpadmin не следует применять команду sudo -iu gpadmin. Вместо этого используйте sudo su:

$ sudo su - gpadmin

Если с помощью gpbackup сделан бэкап для кластера ADB с версией ниже 6.25.2.52.b1 и далее выполняется восстановление данных из этого бэкапа в кластере ADB 6.25.2.52.b1 с помощью gprestore, формируется следующая ошибка:

[CRITICAL]:-ERROR: language "plpythonu" already exists (SQLSTATE 42710)

6.25.2.52.b1

 — 

Удалите PROCEDURAL LANGUAGE plpythonu в целевой базе данных перед запуском gprestore

Если с помощью gpbackup сделан бэкап для кластера ADB с версией ниже 6.25.2.52.b1 и далее выполняется восстановление данных из этого бэкапа в кластере ADB 6.25.2.52.b1 с помощью gprestore, формируется следующая ошибка:

[CRITICAL]:-ERROR: function public.dblink_connect_no_auth(text) does not exist (SQLSTATE 42883)

6.25.2.52.b1

 — 

  1. Запустите gprestore с опциями --metadata-only и --on-error-continue.

  2. Убедитесь в отсутствии критических ошибок в error log (при их наличии добавьте необходимые отношения вручную).

  3. Запустите gprestore с опцией --data-only для восстановления данных.

Если с помощью gpbackup сделан бэкап для кластера ADB с версией ниже 6.25.2.52.b1 и далее выполняется восстановление данных из этого бэкапа в кластере ADB 6.25.2.52.b1 с помощью gprestore, формируются следующие ошибки:

[CRITICAL]:-ERROR: incompatible library "/usr/lib/gpdb/lib/postgresql/gptkh.so": version mismatch (dfmgr.c:367) (SQLSTATE XX000)

или

[CRITICAL]:-ERROR: required extension "pxf_fdw" is not installed (SQLSTATE 42704)

6.25.2.52.b1

 — 

Обновите пакеты расширений gptkh и pxf_fdw в каждой базе данных, использующей эти расширения, а затем обновите сами расширения.

Для восстановления данных из бэкапа достаточно обновить расширения

Запрос SELECT к arenadata_toolkit.__db_files_current возвращает следующую ошибку:

psql:/tmp/tmpLWiv6c:1: ERROR:  illegal rescan of motion node: invalid plan (nodeMotion.c:1712)  (seg105 slice5 10.183.104.153:10003 pid=22864) (nodeMotion.c:1712)
HINT:  Likely caused by bad NL-join, try setting enable_nestloop to off

6.25.1.49

 — 

  1. Используя psql, подключитесь к базе данных, где собирается статистика (например, adb), под суперпользователем:

    $ psql adb -U <superuser>
  2. Выполните следующую команду для изменения функции:

    ALTER FUNCTION arenadata_toolkit.adb_get_relfilenodes(tablespace_oid OID) ROWS 30000000;

При обновлении бандла ADB может возникнуть ошибка Failed: invalid syntax, for details look pg_hba.conf on master host

6.24.3.48

 — 

  1. Сделайте бэкап логов из директории pg_log.

  2. Выполните очистку либо сжатие лог-файлов.

  3. Перезапустите ADB.

После обновления ADB до версии 6.24.3.48.b1 и выше возможна следующая ошибка при выполнении gpbackup/gprestore:

[CRITICAL]:-table backups has no column named segment_count

Ошибка вызвана тем, что в gpbackup 1.28.1 поле segment_count было добавлено в таблицу backups сервисной базы данных SQLite backup_history.db.

Функции базы данных SQLite backup_history.db:

  • Поиск предыдущего завершенного бэкапа с аналогичными опциями для создания инкрементного бэкапа, если параметр --from-timestamp пропущен.

  • Поиск версии плагина (например, gpbackup_s3_plugin) при восстановлении, которая использовалась для создания определенного бэкапа.

Еще один побочный эффект отсутствия нового столбца — некорректное количество сегментов для уже завершенных бэкапов. Это ведет к ошибкам при восстановлении с изменением числа сегментов

6.24.3.48.b1

 — 

Используйте один из следующих вариантов (каждый со своими ограничениями):

  • Вариант 1. Используйте параметры gpbackup --from-timestamp и --no-history для инкрементных бэкапов. Этот вариант не подходит, если используется плагин.

  • Вариант 2. Удалите старый файл базы данных backup_history.db после обновления gpbackup до версии 1.28.1 и выше:

    $ rm $MASTER_DATA_DIR/gpseg-1/gpbackup_history.db

    Необходимо оперировать полными бэкапами, чтобы обеспечить работу плагина и восстанавливать данные из инкрементных бэкапов.

  • Вариант 3. Измените схему таблицы backups в базе данных SQLite backup_history.db:

    $ sqlite3 $MASTER_DATA_DIR/gpseg-1/gpbackup_history.db
    ALTER TABLE backups ADD COLUMN segment_count INT;
    pragma table_info('backups');

    Необходимо указать корректное число сегментов, если запрошено восстановление с изменением их количества.

Следующая ошибка возникает во время чтения данных из ClickHouse с использованием ADB ClickHouse Connector при условии, что определен пароль для пользователя default:

DB::Exception: default: Authentication failed: password is incorrect, or there is no user with such name.

6.24.3.47

 — 

Не используйте пароль для пользователя default

При использовании управления ресурсами на базе ресурсных групп память, выделенная сегмент-хосту, равномерно распределяется между активными primary-сегментами. Выделение памяти происходит при назначении сегменту primary-роли. Размер памяти определяется при старте кластера (путем вызова gpstart) и не изменяется, даже если число сегментов меняется в случае сбоя. Это может привести к утилизации сегмент-хостом большего количества памяти, чем разрешено опцией gp_resource_group_memory_limit.

Дополнительную информацию можно получить в документации VMWare

6.12.1.11

 — 

Перезапустите кластер для перерасчета памяти, выделяемой primary-сегментам в случае изменения их количества (например, после failover)

Команда COPY описана некорректно в документации VMWare. Значение FILL MISSING FIELDS должно быть заменено на FILL_MISSING_FIELDS

6.12.1.11

 — 

Используйте корректное значение опции, предоставленное в первом столбце

В мониторинге ADB может возникнуть проблема с хранением метрик при использовании RAID. В файле /var/log/diamond/diamond.log при этом отображается следующая ошибка:

error [MainThread] ATTRIBUTE_NAME not found in second column of smartctl output between lines 4 and 9

6.12.1.11

 — 

Установите в /etc/diamond/collectors/SmartCollector.conf параметр enabled = False

Модуль diskquota может терять статистику во время приостановки при перезапуске кластера. В результате квоты могут быть нарушены.

diskquota рассчитывает размеры таблиц и сохраняет полученные данные в diskquota.table_size с периодичностью diskquota.naptime (2 секунды по умолчанию). Если рестарт кластера производится в период паузы, diskquota потеряет данные обо всех изменениях, произошедших с момента последнего сохранения в таблицу diskquota.table_size. Например, можно сделать значительную вставку данных в таблицы, перезапустить кластер, а модулю diskquota будет об этом неизвестно. Причина в том, что таблица diskquota.table_size ещё не хранит данные о вставке. До тех пор, пока таблицы не станут активны вновь, diskquota не обновит информацию об их размере. Может помочь реинициализация diskquota путем вызова функции diskquota.init_table_size_table, однако в больших кластерах на это потребуется значительное время

6.12.1.11

 — 

Обходное решение отсутствует. Нет возможности надежно сохранять изменения in-memory от координатора и сегментов, когда процессы получают сигнал прерывания

Описание функции diskquota.pause() в документации VMWare некорректно. Верное описание: вызов diskquota.pause() приводит к тому, что bgworkers полностью пропускают обновление квот во избежание траты вычислительных ресурсов. Размеры таблиц актуализируются после возобновления работы

6.12.1.11

 — 

Используйте откорректированное описание, предоставленное в первом столбце

Формула определения максимального числа табличных сегментов (шардов), указанная в документации VMWare, некорректна. Верный вариант:

diskquota.max_table_segments = <maximum_number_of_tables> * ((<number_of_segments> mod 100) + 1) * 100

6.12.1.11

 — 

Используйте откорректированую формулу, предоставленную в первом столбце

При попытке добавить строку в нижнеуровневую (leaf) партицию партиционированной таблицы может возникнуть следующая ошибка:

SQL Error [23514]: ERROR: trying to insert row into wrong partition

Ошибка появляется, когда несколько столбцов удаляются из партиционированной таблицы, а затем партиции добавляются с помощью команд ADD PARTITION или EXCHANGE PARTITION

6.12.1.11

 — 

Пересоздайте таблицу или, если возможно, не удаляйте столбцы партиционированной таблицы, если планируете после этого добавлять в ней партиции

Установка ADB to ADB Connector завершается с ошибкой ввиду отсутствия нужных файлов расширений на сегментах

6.25.1.51.b1

6.25.2.52.b1

Установите пакет adb-fdw для всех сегмент-хостов ADB вручную, т.е. установите их в массовом порядке с помощью запуска gpssh на мастере или выполните установку на каждом хосте

При установке кластера ADB (с версией < 6.23.3.44) с внешним ADB Control (с версиями 6.23.3.44 - 6.25.1.49) возникает несоответствие агентов и конечной точки ADB Control, вследствие чего возвращается следующая ошибка:

AssertionError: Action Install finished execution with unexpected result - 'failed'. Expected - 'success'
  TASK [adcc_client : Add ADB connection to ADCC]

6.23.3.44

6.25.1.49

Обходное решение отсутствует. Только обновление до версии, указанной в столбце Fixed, решает проблему

Начиная с версии ADB 6.22.1.41 Madlib использует новый путь для своих библиотек — /usr/local/madlib-adb6. После обновления с предыдущих версий ADB Madlib перестает работать

6.22.1.41

N/A

  1. Сделайте бэкап схемы madlib, если необходимо.

  2. Удалите схему madlib с применением опции CASCADE.

  3. Запустите действие Install Madlib для сервиса ADB через ADCM.

  4. Восстановите объекты схемы из бэкапа.

Shared-библиотека diskquota-2.0.so не появляется в shared_preload_libraries в ходе обновления со следующей ошибкой в pg_log на мастере: FATAL: could not access file ""diskquota"": no such file or directory

6.22.1.41

6.24.3.48

  1. Убедитесь, что пробный запуск (dry-run) утилиты sed выполняется корректно:

    $ sed 's/diskquota/diskquota-2.0/g' /data1/*/gpseg*/postgresql.conf
  2. Выполните запуск утилиты sed с параметром -i для применения изменений:

    $ sed -i 's/diskquota/diskquota-2.0/g' /data1/*/gpseg*/postgresql.conf

В ходе установки модуля encryption выводится следующая ошибка: ERROR: Encryption library was not found in /var/lib/pxf/lib/ directory

6.22.1.40

6.22.1.41

Скопируйте необходимую библиотеку из /usr/lib/pxf/lib/:

$ cp /usr/lib/pxf/lib/encryption-1.0.0-exec.jar /var/lib/pxf/lib/encryption-1.0.0-exec.jar

При обновлении кластера до версии 6.22.1.40 стоит иметь в виду, что в ходе этого процесса таблица arenadata_toolkit.db_files_history пересоздается с последующей загрузкой данных, а также опций партиционирования/сжатия данных в новую таблицу. Для больших таблиц этот процесс может занять длительное время

6.22.1.40

6.22.1.41

Чтобы исключить миграцию таблицы arenadata_toolkit.db_files_history из процесса обновления, переименуйте ее до обновления и верните исходное имя после:

  1. Выполните запрос:

    ALTER TABLE arenadata_toolkit.db_files_history RENAME TO db_files_history_skip;
  2. Запустите кластерное действие Upgrade в ADCM и дождитесь успешного обновления.

  3. Выполните запрос:

    ALTER TABLE arenadata_toolkit.db_files_history_skip RENAME TO db_files_history;

При обновлении кластера до версии 6.22.1.40 с установленным сервисом ADCC и включенным параметром UI LDAP authentication новый сервер ADB не регистрируется в ADCC и его версия на странице Information в ADCC остается прежней (как для предыдущего сервера ADB). Эта проблема не затрагивает функциональность каким-либо образом

6.22.1.40

6.22.1.41

  1. Удалите (uninstall) ADCC перед обновлением кластера ADB до 6.22.1.40.

  2. Запустите Upgrade.

  3. Переустановите ADCC после обновления.

[6X issue 13067] Постепенная утечка памяти на mirror-сегментах

6.19.1.31

6.19.3.32

Увеличьте наблюдение за потреблением памяти в кластере и перезапускайте кластер в процессе обслуживания, если возможно. Эта проблема будет решена в следующем релизе

madlib на Power8 (ppc64le arch) приводит к сбою сборки gpdb

6.17.2.26

6.17.5.26

Отсутствует. Расширение madlib не включено в сборку Power8 (ppc64le arch)

Сервис kafka-fdw версий 0.11-0.12 (добавленных в релизе 6.15.0.17) не работает корректно с пакетами данных, размер которых превышает 40000 - <msg_count> * 40 байт (где <msg_count> — количество сообщений). В этом случае запрос SELECT к внешней таблице KafkaToADB вызывает ошибку SEGFAULT. Исправление ошибки ожидается в следующем релизе ADB

6.16.3.24

6.17.1.25

Не следует использовать пакеты данных размером более 40000 - <msg_count> * 40 байт при чтении более одного сообщения. Для чтения одного сообщения ограничений нет

Утилита gpbackup с версией 1.20.1 - 1.20.4 не работает корректно, когда в БД присутствуют таблицы foreign. Процесс создания бэкапа возращает ошибку SQLSTATE 42809. Исправление ошибки ожидается в следующем релизе ADB

6.16.1.20

6.16.2.21

Необходимо использовать gpbackup версии 1.20.0, который включен в релиз ADB 6.13.0.12

При расширения кластера путем вызова действия Expand могут возникнуть проблемы, если хосты кластера были зарегистрированы с полным доменным именем (Full Qualified Domain Name, FQDN). В этом случае в таблице gp_segment_configuration будут содержаться различные значения в столбцах hostname и address, что приведет к ошибкам при расширении кластера

6.12.1.11

6.23.3.44

Перед расширением кластера:

  1. Остановите кластер, например, используя команду:

    $ gpstop -M fast
  2. Запустите мастер-сегмент в utility-режиме:

    $ gpstart -m
  3. Присвойте параметру GUC allow_system_table_mods значение true:

    $ psql adb
    SET allow_system_table_mods = 'true';
  4. Настройте gp_segment_configuration таким образом, чтобы hostname и address были идентичны:

    UPDATE gp_segment_configuration SET hostname = address;
  5. Остановите и запустите кластер ADB в обычном режиме:

    $ gpstop -m
    $ gpstart

Действие Upgrade завершается ошибкой, если опция appendoptimized имеет значение true в параметре gp_default_storage_options для какой-либо базы данных

6.12.1.11

6.24.3.48.b1

Измените значение параметра gp_default_storage_options на appendoptimized=false перед обновлением и верните значение true после

Утилита gpperfmon может сгенерировать огромное количество логов в $MASTER_DATA_DIR/gpseg-1/gpperfmon/q*.txt даже в случае, если она не используется

6.12.1.11

6.23.5.45.b1

  1. Выключите GUC gp_enable_gpperfmon:

    $ gpconfig -c gp_enable_gpperfmon -v off
  2. Очистите директорию $MASTER_DATA_DIR/gpseg-1/gpperfmon/.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней