Ред База Данных 3.0 - v3.0.5.354
22 ноября 2020 г. 20:06
Список изменений
Исправлено:
- Исправлена ошибка шифрования трафика при аутентификации по сертификату с указанием пользователя
- Исправлен парсинг булевских значений в replication.conf
- Исправлена ошибка, при которой сервер использовал только первую секцию "replica" в конфигурации
- Исправлена ошибка репликации "no current record for fetch operation"
- Исправлено падение сервера, если в опции replication.conf нет подсекций
- Репликация теперь проверяет inode файла базы данных при чтении replication.conf
- Исправлены падения сервера при репликации
- Исправлена ошибка бинарного адаптера trace, при которой поле EVENT_USER заполнялось "" вместо имени пользователя
- Исправлено падение hashgen
- Исправлена очистка мертвых транзакций и откат соответствующих им на слейве
- Исправлено некорректное поведение gstat при указании таблицы в опции -t несколько раз
- Исправлена потеря архивов трейса под нагрузкой
- Исправлена работа внешних триггеров с вычисляемыми полями
- Исправлена CORE-6110: 64-битные идентификаторы транзакций некорректно хранились в статус-векторе
- Исправлена работа плагина cluster_auth
- Исправлена ошибка повреждения архивов трейса
Улучшения:
- Ускорено подключение к БД при большом количестве подключений в Linux
- Ускорено выполнение запросов с использованием current_timestamp
- Ускорена подготовка запросов. Теперь количество читаемых pointer page лимитируется
- Теперь alter user ... grant admin role можно грантовать на несуществующего (LDAP) пользователя
- Теперь можно назначать роли пользователю из групп AD при GSS-аутентификации
- Теперь LDAP читает ФИО пользователя из "CN" аттрибута. Они доступны через контекстные переменные "USER_XXX_NAME" в пространстве имен "AUTHDATA"
- Добавлена возможность указать несколько LDAP серверов разделяя их ";"
- Добавлен новый параметр "LDAPEncryptionMinVersion" для возможности указания версии TLS/SSL протокола
- Улучшена диагностика LDAP аутентификации
- В fblogmgr добавлена опция -[G]uid для работы без подключения к базе данных
- На реплике разрешены некоторые DDL операции, например alter database begin/end backup
- Добавлена опция log_warnings в конфиг репликации для логирования конфликтных ситуаций
- Улучшено логирование репликации для повторяющихся записей:
- Первая ошибка всегда добавляется в replication.log
- Повторные добавляются, если количество равно 10, 50, 100 или кратно 500
- Если ошибка, следующая за повторными, отличается, то указывается количество предыдущих повторных
- Добавлены опции -Guid и -Log для fbreplmgr. Guid позволяет указать GUID мастера вручную. Log позволяет выводить детальную информацию в лог
- Улучшена диагностика ошибок в логе репликации
- Добавлен новый плагин шифрования трафика, использующий функции Crypto API
- Добавлена возможность шифрования трафика мультифакторной аутентификации
- Портирован плагин ExtAuth
- Добавлена возможность сменить collation домена
- В конфигурацию добавлена опция TcpUserTimeout для указания таймаута соединения. По-умолчанию 17 минут
- Теперь hashgen возвращает код 1, если при генерации или проверке происходит ошибка
- В gfix добавлена опция -guid для генерации нового GUID базы данных
- В gstat добавлена опция -b, отображающая статистику по файловым блобам
- fbjava обновлена до 1.1.9:
- Исправлено падение, при освобождении блобов
- Исправлено NPE и заменено на FileNotFoundException, если файл в classpath не существует
- Исправления утечек памяти
- fbjava_lucene обновлена до 2.0.11:
- Библиотека tika обновлена до 1.22
- Файл fts_permissions.sql расширен. Добавлен компактный синтаксис с bulk insert
Портировано из Firebird:
- Fixed bug CORE-6447 : SET SQLDA_DISPLAY ON: different text of message for parameterized expression starting from second run
- This should fix CORE-6440: expression indices with COALESCE cannot be matched
- Postfix for CORE-6412, fixed non-ascii users support
- Fixed bug CORE-6437 : gfix cannot set big value for buffers
While the bug is present in code, affected function is not called when gfix set buffers, thus the bug left invisible for a long time
- Fixed bug caused by one of my recent commits
- Always check for correct data extracted from info block instead fb_assert
- Fixed CORE-6433: Several firebird servers crash
- Avoid negative offsets in case of malformed network packet
- Backported CORE-6432: Possible buffer overflow in client library in Attachment::getInfo() call
- Fixed CORE-6408 - RETURNING clause in MERGE cannot reference column in aliased
target table using qualified reference (alias.column) if DELETE action present
- Backported CORE-6412: Firebird is freezing when trying to manage users via triggers
- CORE-6424 - Be sure to fail the build process if the employee database cannot be copied to the output directory for packaging
- Fixed arm-32 (Raspberry Pi) build
- Fixed android build
- Be sure to include contents of plugins/udr in kits
- Fixed ARM64 build
- Make robust file IDs optional (for the sake of cross-release compatibility)
- Postfix for CORE-6358 to avoid error in restore
- Backported CORE-6413: Remove PIDFile/-pidfile directive/option from firebird Super(Server/Classic) systemd unit
- Fixing broken alpine build. (#283)
- Cleanup overcomplicated isinf
- Better assertions, code simplification and minor optimization
- Postfix for CORE-6351 : Computed field could be wrongly evaluated as NULL
Make sure statement->procedure (function) always points to procedure (function) the statement belongs to. Ensure statement's memory pool is deleted after the statement in case of failure during BLR parsing
- Fixed CORE-6411: crash while creating a table with many (>5460) fields
- This should fix the regression with long file paths
- Fallback to other identification methods only if the current call is unavailable, otherwise raise an error
- This should fix deadlock when attachment is initialized or released while database shutdown is in progress
dbb_sync should be acquired after any attachment mutex, not before
- Backported fix for CORE-6396: Unknown tag (0) in isc_svc_query() results
- Backported CORE-6392: Space in database path prevent working gbak -se ... -b "path to/database" backup
- Fixed bug CORE-6351 : Computed field could be wrongly evaluated as NULL
- Update zlib to 1.2.11
- Backported CORE-6388: DEV_BUILD client asserts when closing event thread
- Fixed CORE-6370 - Memory leak at server, when client select computed field, which used COALESCE or CAST
- Backported CORE-6371: Avoid server crash on shutdown in case of wrong reference counting in UDR
- Backported CORE-6367: Segfault when receiving malformed packet from network
- Fixed CORE-6362: Better diagnostic when 'Missing security context'
- Fixed bug CORE-6364 : Wrong reference counting in UDR trigger sample
- This should fix bug CORE-6347 : New connections to database server sometimes stall, when there is existing connection to database
- Fixed CORE-6358 - Adding NOT NULL column with DEFAULT value may cause default values to update when selecting or have the wrong charset
- Fixed regression caused by previous commit - segfault when unwinding half-done attachment
- Backported fix for CORE-6360: Engine may hang due to races when starting crypt thread and simultaneous shutdown
- Backported fix for CORE-6339: Detach server from security database when missing plugin data structures cause an error
- Backported fix for CORE-6147: script with extracted metadata may fail on global mapping
- Some (limited) protection from exceptions raised from inside JRD_shutdown_database
- Additional fix for bug CORE-6253 : Crash caused by the locked fb_lock file
Retry attempts to initialize shared memory when truncation of shmem file was failed with ERROR_USER_MAPPED_FILE
The case is when last process that holds shared memory and its initialization event was killed (or crashed) and
didn't released OS objects in correct order (event, file, memory mappings)
I.e. new process successfully creates event, correctly consider itself as initializator, but failed to truncate
file as it is still in use by old instance of memory mappings in killed\crashed process
This prevents bugcheck in LM and abort() as consequence
- Additional fix for bug CORE-6253 : Crash caused by the locked fb_lock file
Makes fb_lock_print in interactive mode to detect moment when there is no more attachments used same lock table
In this case fb_lock_print stops own iterations and releases shared memory to not prevent future database attachments
- Backported CORE-6348: Wire compression causes freezes
- This should fix bug CORE-6346 : New connection to the server hangs
- Fixed CORE-6340 - Alternate quoting does not work on some particular cases
- Backported CORE-6345: Server crashes on overflow of division result
- This should fix CORE-6343
- Backported CORE-6329: GBAK with service_mgr and WinSSPI authentication for Windows SYSTEM user producing error in clumplet API
- Fixed one more case of bug CORE-5087 : Database shutdown can cause server crash if multiple attachments run EXECUTE STATEMENT
- Backported CORE-6334: Missing relocation support
- Fixed random conversion errors (FBT test "functional.gtcs.cast-datatypes" failed sometimes)
- Fixed CORE-6331 - Memory leak with some statements and expressions
- Support for blr_marks BLR code from FB4. It allows to ignore blr_marks in case of its presence in downgraded database
- This should fix unregistered bug : connection timeout doesn't work for INET if remote side is not answered on op_connect packet
- Backport fix for bug CORE-6296 : Many connections results in poor performance
- Fixed bug CORE-6319 : NBACKUP locks db file on error
- Fixed assert in Statement::freeClientData()
- This should fix CORE-6323: File-system ID may be duplicated among databases located on different volumes
- Make the reschedule accounting simpler and sweep more responsive under load
- CORE-6317 - Server is crashing on long GRANT statement
- Fixed CORE-6317 - Server is crashing on long GRANT statement
- Backport CORE-6310: Varchar length limit is not enforced when assigning string with trailing spaces in MBCS
- Bacport CORE-6314: Assigning RDB$DB_KEY to MBCS CHAR/VARCHAR does not enforce the target limit
- Backported CORE-6309: fbsvcmgr can not decode information buffer returned by gfix list limbo service
- Fixed CORE-6290 - Hex number used at end of statement (for exame with CREATE DOMAIN ... DEFAULT)
may read invalid memory and produce wrong values or exceptions
- Improved code to ensure better compatibility with older engines. Checked restore on 2.5 (clean) and 2.1 (with recoverable errors, database in single maintenance mode)
- Improved code to ensure better compatibility with engine12. Improvements for older engines are also included though full compatibility is still missing
- Fixed CORE-6280 - MERGE statement loses parameters in WHEN (NOT) MATCHED clause
that will never be matched, crashes server in some situations
- Backported CORE-6283: isNullable() in message metadata, returned by metadata builder, does not match with datatype set by setType() in metadata
- Backported fix for unregistered bug: error handling in main server loop is broken
- Backported fix for CORE-5364: gfix -online normal (being issued in window #1) does not produce error when there is sysdba attachment in window #2
- Fixed CORE-6230: Unable to connect with database if security.db reference is removed from databases.conf file
- Improvement CORE-6274 - Increase parse speed of long queries
- Backported CORE-6264: gbak with PIPE to stdout: invalid content if user '-se :service_mgr' command switch
- Disable simultaneous access to read-only database from multiple processes in SS mode
- Make firebird engine use classic mode during boot build
- Backported CORE-6208: Grant lost in security.db after backup/restore cycle
- Correction of RefPtr::assign
- Backported CORE-2251: gbak doesn't return error code
- Backported CORE-6227: isc_info_svc_user_dbpath always returns alias of main security database
- Fixed bug CORE-6231 : access violation on shutdown of xnet connection to local database when events have been registered
- Backport fix for CORE-5862 - Varchar computed column without explicit type does not populate RDB$CHARACTER_LENGTH
- Fixed CORE-6116 - The Metadata script extracted using ISQL of a database restored from a Firebird 2.5.9 Backup is invalid/incorrect when table has COMPUTED BY field
- Fix misleading error message about CORE-5802
- Backported CORE-6237: Performance issue - security database connections cache in SRP plugin
- One more fix for possible hangs inside the monotoring shmem code
- This should fix CORE-6216: request size limit exceeded when selecting from a table with large number of indicies
- This should fix empty routine names reported during DROP operations
- Fixed CORE-6189: Building bundled libtommath fails
- Backport new feature CORE-4933 : Add better transaction control to isql
- Fixed CORE-6250 - Signature mismatch when creating package body on identical packaged procedure header
- Fixed bug CORE-6253 : Crash via locked fb_lock file
- Avoid calling MOV_compare() for NULL values
- Fixed bug CORE-6224 : [AV] Re-destruction of the rem_port object
- Fixed CORE-6260: Warnings not always displayed in ISQL
- Fixed CORE-6233 - Wrong dependencies of stored function on view after backup and restore
- Backported CORE-6265: mapping rules destroyed by backup / restore
- Fixed CORE-6266
- Fixed CORE-6246 - Problem with too many number of columns in resultset
- Fixed CORE-6269: Firebird ignores KeepAlive settings
- Correct my old fix for CORE-5470 - use converters in correct order