Ред База Данных 3.0 - v3.0.9

1 июля 2022 г. 17:25

Список изменений

Улучшения:

  • В конфигурацию репликации добавлена опция "verbose" для вывода подробной информации о работе асинхронной репликации. RS-70819.
  • Улучшена диагностика ошибок LDAP.
  • Повышена стабильность работы gfix. RS-71591.

Изменения:

  • Значение DefaultDbCachePages по умолчанию увеличено до 1024 для Classic/SuperClassic и до 32768 для Super RS-69307
  • Теперь не нужно указывать опцию -B O[VERWRITE] в gbak при резервном копировании в FIFO RS-43334
  • Файл временных таблиц теперь удаляется сразу, после закрытия соединений, которые использовали временные таблицы RS-67781
  • Увеличена максимальная длина текста ошибки в ISQL до 8192 символов. RS-71232.
  • Длина контекстных переменных по умолчанию увеличена до 8192. RS-71426.

Добавлено:

  • Возможность подключения к ActiveDirectory с именем пользователя "как есть" (методом bind) без использования служебной учетной записи (LDAPUserDn). RS-71303.
  • Новый параметр LDAPDomain в firebird.conf, позволяющий задавать домен для аутентификации пользователя в ActiveDirectory и базу для поиска пользователей. RS-71303.
  • GSTAT выводит разность транзакций, которая определяет необходимость сборки мусора RS-56624
  • Параметр "rotate_log" в трейсе для ротации лога при достижении им размера "max_log_size" RS-66090
  • Поддержка блокировки пользователей в Legacy аутентификации RS-67826 Внимание: требуется обновление базы данных безопасности с предыдущих версий 3.0 скриптом security_database_3.0.9.sql
  • Возможность изменения COLLATE для поля "ALTER TABLE <table> ALTER <column> COLLATE <collate>" RS-67405
  • Разные соединения теперь могут использовать разные файлы временных таблиц, чтобы уменьшить их разрастание (параметр SeparateTempTableFiles в firebird.conf) RS-67781

FBJava обновлен до 1.1.18:

  • В дистрибутив добавлена библиотека ASM, необходимая для индексации файлов, хранящихся в BLOB. RS-82611.
  • Драйвер Jaybird обновлен до версии 3.0.31. RS-74811.
  • Из дистрибутива удалены неиспользуемые библиотеки jna-platform-4.5.0.jar и xml-apis-1.0.b2.jar. RS-74811.
  • Исправлена передача исключения клиенту при инициализации JVM
  • В дистрибутив добавлены отладочные символы для FBJava. RS-71111.
  • Пустые строки не выводятся в stdout и stderr при включенной опции "disable_output" RS-66433
  • Выполняется проверка на существование файла конфигурации перед чтением опций RS-67445
  • Убраны неиспользуемые плагином библиотеки RS-68297

Исправления:

  • При обработке исключения в утилите gstat устанавливается корректный код возврата. RS-76712.
  • Инсталлятор промышленной редакции теперь использует компоненты. Исправлена совместимость инсталляторов разных редакций для Windows. RS-45574.
  • В случае ошибок в replmgr выводить их при завершении работы утилиты. RS-70819.
  • Для оповещения о некоторых ошибках репликации используется статус-вектор. RS-70819.
  • Падение при освобождении таймера во время остановки сервера. RS-74745.
  • При отключении простаивающих соединений с LDAP вместо таймера используется функция time(), что должно устранить падение при остановке сервера. RS-73290.
  • На архитектуре ARM64 используется формат отладочной информации DWARF-2.
  • Операторы delete не объявляются как "inline", т.к. это может привести к порче памяти.
  • После многофакторной аутентификации и работы с политиками завершаются кэшированные подключения к базе данных безопасности. RS-74745.
  • При поиске ролей в LDAP скобки в DN пользователя заменяются их ASCII-кодами. RS-35932.
  • Инициализация сессии LDAP выполняется в критической секции. Это должно устранить возможное падение при многопоточной инициализации. RS-70970.
  • Ошибки в триггерах "ON DISCONNECT" выводятся в трейс если в его конфигурации задан параметр log_errors.
  • Изменен механизм привязки буферов сортировки к их владельцам. Это должно исправить порчу памяти при освобождении сортировок. RS-73597.
  • Освобождение временного страничного пространства выполняется раньше чтобы избежать повреждения памяти. RS-71697.
  • Падение сервера при вызове LDAP_ATTR при пустом значении параметра LDAPServer. RS-73851.
  • Зависимость между страницами большой записи, чтобы избежать нарушения целостности при падении сервера.
  • Определение длины строки с версией сервера, получаемой из isc_info_firebird_version, при длине строки большей 127 байт. RS-72200.
  • Освобождение страничной блокировки после неудачного чтения. RS-72076.
  • Переменная dbbStats увеличивается только для Суперсервера. RS-72067.
  • При отсутствии библиотеки libtinfo инсталлятор выведет предупреждение, а не завершится с ошибкой. RS-72881.
  • В трейсе неправильно подсчитывалась память, используемая для сортировок. RS-67319.
  • Ошибка "Invalid clumplet buffer structure" при выборке из бинарного трейса. RS-71982.
  • В суперсервере при наличии активных подключений неправильно логгировалось изменение размера страничного буфера. RS-70119.
  • Таймер отключения от сервера LDAP запускается только для действий, выполняемых после установки подключения. RS-73290.
  • Узел индекса вставляется в правильную позицию на нелистовом уровне после разделения страницы на уровне ниже. RS-73437.
  • Увеличен максимальный размер входной строки для функции regexp_substr. RS-73363.
  • Для буфера DPB используется тег isc_dpb_version2 чтобы уйти от лимита в 255 байт для isb_dpb_auth_block. RS-73189.
  • Теперь в Windows isql работает в неинтерактивном режиме при получении данных из stdin. RS-35237.
  • Падение сервера после исправления RS-73189 из-за неинициализированной переменной.
  • Падение сервера при чтении файлового блоба. RS-70752.
  • Падение сервера во время его остановки. RS-69835
  • Падение сервера при достижении таблицей блокировок лимита в 2Гб. RS-67930
  • Не работала сортировка при использовании HASH JOIN и CROSS JOIN для объединений при стратегии FOR FIRST ROWS. RS-69855 RS-70616
  • Некорректно работала сортировка в некоторых случаях при использовании простого UNION для стратегии FOR FIRST ROWS. RS-70005
  • Отключение сервера от БД безопасности, в которой нет многофакторных таблиц, вызывало ошибку. CORE-6339
  • Неправильно определялся размер заголовка у последнего фрагмента большой записи. RS-53938
  • Инсталлятор мог некорректно переносить файлы конфигурации при обновлении. RS-70351 RS-70348 RS-70233
  • Некорректный план запроса при повторных выполнениях RS-69343
  • Ошибка при смене Legacy-пароля в LDAP RS-69634
  • Поиск ролей в LDAP не работал если в имени пользователя есть скобки RS-35932
  • Использование стандартной сортировки в union запросах, содержащих вычисляемые выражения RS-68233
  • Некорректный разбор регулярного выражения при повторении группы RS-69273
  • Legacy пользователи оставались неактивными (PLG$USERS.PLG$ACTIVE) после обновления security.fdb RS-67826
  • Совместимость с security.fdb для версий <3.0.9 RS-67826
  • Триггеры на системные таблицы оставались после восстановления бэкапа с 2.6
  • Мусорные значения в статистике трейса RS-67240
  • Падение сервера при создании UDR функции во время асинхронной репликации RS-68652
  • Падение сервера при регистрации ошибки аутентификации в LDAP RS-68555
  • Падение сервера при ошибке во время многопоточного бекапа RS-68436
  • Возможные пропуски или дубликаты записей PRIVILEGES_CHANGE в файле аудита RS-21230
  • Не выводится сообщение о сути ошибки при ресторе неполного (поврежденного) файла бэкапа через сервисы RS-64379
  • Игнорирование аудита при невозможности записи в журнал RS-41387
  • Некорректный вывод в трейс статистики "sorting memory usage" RS-67319
  • Разрастание временных файлов во время создания, наполнения и удаления нескольких временных таблиц
  • Исправлена команда архивирования (log_archive_command) по умолчанию для Linux для пропуска файлов пустых архивов RS-49790
  • Возможное падение сервера, если невозможно определить MAC-адрес
  • При наличии нескольких предупреждений в сообщении, они не отображались
  • Возможность восстановления резервной копии из FIFO RS-43334
  • Регрессия оптимизатора при конвертировании LEFT JOIN в INNER RS-68100

Портировано из Firebird:

  • Make it possible to avoid fbclient dependency in pascal programs using firebird.pas. FB-7194.
  • Avoid races in mapping clear delivery init/fini under high load.
  • Avoid reporting an error if it happens due to process termination (provider shutdown). The logic generally follows the one inside fbsvcmgr.
  • Segfault in linux CS after successful detach from database. FB-7197
  • Incorrect error message with isc_sql_interprete(). FB-7128.
  • Wrong detection of must-be-delimited user names. FB-7106.
  • Mapping error when server tries to use mapping rules from database in full shutdown state. FB-7121.
  • Firebird engine randomly fails when delivering mapping clear to other processes. FB-7135.
  • Invalid state of mapping cache after replacement of database. FB-7122.
  • Bad plan (HASH instead of JOIN) is chosen for some inner joins. FB-7137.
  • Partially backported for FB-7138: Problems accessing database, copied from another host. FB-7138.
  • Services manager breaks long lines into 1023 bytes portions when using isc_info_svc_line in Service::query(). FB-7141.
  • Indexed STARTING WITH execution is very slow with UNICODE collation. FB-6872.
  • Improve indexed lookup speed of strings when the last keys characters are part of collated contractions. FB-7093.
  • Incorrect indexed lookup of strings when the last keys characters are part of collated contractions and there is multi-segment insensitive descending index. FB-7094.
  • Wrong select result in case of special sort character. FB-7140.
  • Update zlib to 1.2.12. FB-7161.
  • Serious issue with SYSDBA user with Legacy_Auth in Windows Installer. FB-7158.
  • Attempt to fix recent crashes in oltp-emul test.
  • Incorrect error "Invalid token. Malformed string." with union + blob + non utf8 varchar. FB-7176.
  • Problems with use of big timeout (or no timeout at all) in trace service. FB-7147.
  • gbak output not flushing. FB-7184.
  • Fixed FB-7056 (Fetching from a scrollable cursor may overwrite user-specified buffer and corrupt memory) and FB-7057 (Client-side positioned updates work wrongly with scrollable cursors) with a single shot
  • Deadlock when using not initialized security database. FB-7067.
  • Creating unique constraints on MacOS fails on larger tables. FB-7084.
  • Fix MacOS UDR and Legacy_UserManager plugins not working due to not exported entry point. FB-7088.
  • Content of DB file can be overwritten with zero characters in some (rare) cases. FB-7109.
  • Avoid unload of plugins in MacOS due to problematic reload of them. FB-7112.
  • Server hangs in trace code when it tries to update mapping cache. FB-7115.
  • FB service hangs and can not be stopped after several 'DELETE FROM MON$STATEMENTS' being issued in order to stop ES/EDS which waits record for updating. FB-7103.
  • Database statistics service could not find existing table(s). FB-7119.
  • Deadlock when execute test for CORE-4337. FB-7060
  • Wrong message when user has no access to /tmp/firebird, changes due to older c++ dialect. FB-7043.
  • Status vector for ES() is unstable if another execute block with correct statement was executed before. Affects only LINUX builds in Classic mode. FB-6966.
  • Wrong message when user has no access to /tmp/firebird. FB-7043.
  • Fixed my 6-years old but unnoticed bug with circular strings buffer.
  • Fixes for 64-bit android build.
  • Data page N {sequence M} marked as secondary but contains primary record versions in table T. #7044
  • gbak -b failed with "invalid transaction handle (expecting explicit transaction start)". #7031
  • Scroll cursor server crash. #7034
  • Unexpected messages 'Missing security context ...' in firebird.log. #7036
  • Exception "too few key columns found for index" raises when attempt to create table with PK and immediatelly drop this PK within the same transaction. The situation when the record is not found in RDB$INDICES was not handled correctly in create_index DFW. #5173 #3886 #5082
  • Fixes for fbtrace log rotation #6922
  • Postfix for #6987 - DATEDIFF does not support fractional value for MILLISECOND
  • Add AF_INET_* support for FreeBSD
  • Fixed #6967: PIO_read / PIO_write may falsely return success in a case when block was read / written incompletely
  • Backport improvement #6957: Add database creation time to the output of ISQL's command SHOW DATABASE
  • Fixed bug #6949: On windows, engine may hung on initialization when another instance with different lock directory is running
  • Fixed #1210: I/O error during "open" operation for file "/tmp/firebird/fb_trace_XXXXXX"
  • Fixed bug #6984: Committed transaction could be marked as dead in some very special and rare case.
  • Fix #6987 - DATEDIFF does not support fractional value for MILLISECOND.