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

22 января 2020 г. 11:58

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

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

  1. Пользователи с ролью "RDB$ADMIN" теперь могут изменять LDAP пользователей
  2. Исправлен некорректный подсчет попыток аутентификации
  3. Аутентификация мультифакторных пользователей теперь прекращается сразу, если пользователь не найден или отключен в LDAP
  4. Исправлено назначение ролей грантованных роли LDAP
  5. Исправлен парсинг многострочных значений в CSV-адаптере
  6. Обновлено описание опции -ig в gbak
  7. fts.sql и fts_permissions.sql теперь находятся в misc
  8. Исправлена CORE-5758: Поломка базы при выставлении конфликтующего значения "STARTING AT PAGE" для вторичного файла базы данных
  9. Исправлен бесконечный цикл в vsnpintf для некоторых сломанных версий glibc
  10. Исправлены утечки во внешнем движке
  11. Исправлена генерация эфемерного ключа алгоритмом ГОСТ-2012
  12. Исправления в ALTER для вычисляемых полей
  13. Исправления многофакторной аутентификации при попытке залогиниться как Trusted
  14. Исправлена ошибка "request synchronization error" когда пользователь LDAP работает с ролями
  15. Исправлено чтение конфигурации при старте новой системной сессии трейса
  16. Исправлена работа "alter database set default sql security"
  17. Исправлены права доступа для сервиса systemd
  18. Исправлена значение константы isc_dpb_hw_address, теперь она соответствует RDB 2.6
  19. Исправлен вывод текста системной ошибки при операциях над файловыми блобами
  20. Исправлен пропуск плагинов в случае, если предыдущий не вернул данных
  21. Исправлена ODS полей RedDatabase в системных таблицах
  22. Исплевлено сообщение в логе об изменении значения "PageBuffers"
  23. Функция HASH_CP теперь использует хэш-метод из конфигурации
  24. Исправлена CORE-5955: binreloc не работал с ld >= 2.31
  25. Исправлена генерация GUID при бэкапе
  26. Исправлено затирание файлов, перед их удалением
  27. Исправлена CORE-5823: Нет доступа на SELECT к блобам внутри хранимых процедур
  28. Исправлена CORE-5841: Нет доступа на SELECT к таблице PLG$SRP
  29. Добавлен вывод ошибки, если не удалось подписать метаданные с помощью mint
  30. Теперь используются 64-битные значения при подсчете записей в backup/restore
  31. Исправлено вычисление SQL SECURITY DEFINER для таблиц мониторинга
  32. Увеличена максимальная длина имени владельца сертификата и исправлено вычисление его длины
  33. Исправлена CORE-6045: Возможные падения в трейсе во время завершения процесса сервера
  34. Исправлено выполнение процедур с "sql security definer"
  35. Теперь известные плагины аутентификации не проверяют корректность предыдущих плагинов
  36. Невозможно изменить атрибуты пользователя не изменяя пароль
  37. Теперь создается дамп памяти при критических ошибках менеджера блокировок при установленном BugcheckAbort в firebird.conf
  38. В случае прямого ввода-вывода страницы с выравниванием по 4K из-за требований некоторых устройств
  39. Исправлена CORE-6198: некорректная проверка ошибок вызовов pread и pwrite
  40. Исправлен возможный бесконечный цикл, если BLR игнорируется сервером в некоторых случаях
  41. Исправлена регистрация Srp плагинов в Windows
  42. Парсинг 12-значных адресов памяти в hashgen
  43. Проверка процесса на существование в hashgen
  44. Проверка на открытие исполнимой памяти в hashgen
  45. Исправлено обновление инсталляции, при установке в нестандартный каталог
  46. fbtrace_* и jvm.args добавлены в скрипт обновления
  47. Исправлено пропадание роли из контекстной переменной, после попытки установить несуществующую роль в качестве текущей
  48. Выражения в SIMILAR TO могли повесить сервер
  49. Увеличен лимит размера разделяемой памяти до 4Мб для избежания ошибок "Global mapping memory overflow" при большом количестве подключений
  50. Исправления скриптов постинсталляции
  51. Аутентификация по сертификату не работала, если в контейнере были ключи
  52. GSS плагин может выполняться на стороне сервере, раньше, чем на стороне клиента
  53. LDAP теперь использует UTF16 для sambaNTPassword
  54. Атрибут LDAP sambaPwdLastSet теперь обновляется, при изменении пароля samba
  55. Деинсталлятор теперь удаляет за собой unit файл systemd
  56. Дополнения и изменения в документации

Улучшения:

  1. Возможность аутентификации по сертификату в "EXECUTE STATEMENT ... ON EXTERNAL DATA SOURCE"
  2. Теперь gbak остановит восстановление базы, если на диске закончилось место, если используется опция -o
  3. В GBAK добавлена опция "-KEEP_DATA"
  4. Добавлено описание опции -q в вывод lock print
  5. Улучшена функция REGEXP_SUBSTR
  6. При изменении пароля сначала используется менеджер пользователей лучше всего подходящий плагину аутентификации
  7. В пространство имен AUTHDATA Добавлена контекстная переменная AUTH_PLUGIN
  8. Добавлена LDAP схема и LDIP файл rdbAuth
  9. Добавлен скрипт для переноса legacy и multifactor паролей из 2.6
  10. Добавлена вторая версия криптоплагина crypto_api_sec без функций CryptDeriveKey, CryptEncrypt и CryptDecrypt
  11. Дополнительное логирование ошибок аутентификации
  12. Теперь из LDAP запрашиваются только нужные атрибуты
  13. Добавлено "CREATE OR ALTER" для синтаксиса политик
  14. При открытии баз Firebird теперь выводится сообщение об ошибке
  15. Теперь при ALTER FIELD выполняется рекалькуляция вычисляемых полей, зависящих от изменяемых полей Исправления и улучшения во встроенной репликации:
  16. Теперь все методы аутентификации "SrpXYZ" считаются плагином "Srp"
  17. Сборки собираются с --as-needed
  18. Парсинг строк с двойными кавычками в CSV-адаптере
  19. Портирован параметр "LoginFailureDelay" из 2.6
  20. Возможность запрета вычисления полей для внешних триггеров. Теперь внешний триггер может может указать движку, какие поля не используются и не должны вычисляться. Корректно реализованная функция getDoNotEvaluateField должна возвращать true, если поле не должно быть вычислено, индексы полей начинаются с 0. Индекс -1 зарезервирован для всех вычисляемых полей.
  21. Вывод ошибок в stderr в hashgen
  22. Возможность продолжения восстановления бэкапа при ошибках BLR процедур, функций и триггеров (ключ -ig в gbak)
  23. Добавлен CSV-адаптер для внешних таблиц
  24. Портирована конверсия LEFT JOIN -> INNER JOIN
  25. Доверенный пользователь теперь может подключаться с разными логинами
  26. Идентификатор крипто-провайдера теперь передается на клиент
  27. Увеличено значение кэша по-умолчанию для security3.fdb
  28. Деинсталлятор теперь не удаляет системного пользователя firebird
  29. Удалены устаревшие утилиты qli и gsplit

Исправления и улучшения во встроенной репликации:

  1. Исправлено появление нескольких записей в таблице MON$REPLICATION на реплике
  2. Утилита fbrepldiff не сравнивала таблицы с уникальным ключом
  3. Исправлена работа опции -C в fbrepldiff
  4. Исправлена возможность расхождения master-slave или поломки базы при ошибке во время коммита
  5. Исправлен таймаут архивирования
  6. В fbrepldiff увеличен таймаут по-умолчанию
  7. Исправлен вывод сообщений об ошибках в fbrepldiff
  8. fbreplmgr теперь создает контрольный файл при создании реплики через параметр -create
  9. Использование fblogmgr с флагами -A all -F могла приводить к застою реплики

fbjava обновлен to 1.1.8. Изменения с версии 1.1.2:

  1. Исправлена загрузка ролей на роль
  2. Кэширование ролей и разрешений для текущего аттачмента
  3. Игнорирование возвращаемого типа для java-функций используемых в качестве триггеров
  4. Поддержка JRE 9+
  5. Поддержка ExternalTrigger::getDoNotEvaluateField. Добавлены аннотации org.firebirdsql.fbjava.annotations.DoNotEvaluateComputedFields, org.firebirdsql.fbjava.annotations.DoNotEvaluateField и org.firebirdsql.fbjava.annotations.EvaluateField для запрета вычисления полей для триггера.
  6. Добавлена поддержка нескольких активных ролей для java-security
  7. Первый аргумент java-security теперь поддерживает подстановки путей
  8. Удален отладочный код, приводивший к утечками памяти

fbjava_lucene обновлен до 2.0.8: Изменения с версии 2.0.3:

  1. Добавлен скрипт для заполнения разрешений FTS в fbjava-security
  2. Улучшение производительности индексирования и полного переиндексирования
  3. Исправлена работа с пустыми блобами
  4. Исправлена работа с временными блобами
  5. Улучшение работы с идентификаторами в функциях и процедурах FTS$* По умолчанию все идентификаторы в верхнем регистре FTS$CREATE_INDEX('UpPeRcAsEd', ... создаст индекс 'UPPSERCASED', а FTS$ADD_FIELD_TO_INDEX('uppercased', 'test', 'str') добавит 'STR' из таблицы 'TEST' в индекс 'UPPERCASED'. Чтобы строка с идентификатором использовалась, как есть, нужно обрамить ее в '"'. FTS$ADD_FIELD_TO_INDEX('"lowercased"', '"Test"', '"str"') добавит поле 'str' из таблицы 'Test' в индекс 'lowercased'.
  6. Обновлены зависимости с известными уязвимостями
  7. Тип функции indexFieldChange для внешнего триггера возвращен на short для корректного рестора бэкапов 2.6

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

  1. Avoid unnecessary operations in the destructor. This also prevents possible hangs in Classic builds.
  2. Backported CORE-6217: Wrong work with pointer: delete ptr; ptr=new ;
  3. Backported CORE-6221: Incorrect (throw-based) allocFunc for zlib
  4. Fixed races during shmem reattaching
  5. Attempted to fix the optimizer regression related to sorting vs compound indices
  6. Cast the parameters to match the API declaration. This removes warnings in the generated code.
  7. Fixed inconsistency between attachment/transaction states and their request states
  8. Fixed bug CORE-6204 : FB crash because TraceSvcJrd::checkPrivileges can pass NULL in 'alias'
  9. Backported CORE-6141: fbsvcmgr action_repair rpr_list_limbo_trans does not show list of transactions in LIMBO state
  10. This should fix regression for test core_0053.fbt
  11. Minor correction for Vlad's solution to CORE-4680
  12. Backported CORE-6031: Little valgrind memory leak in isc_attach_database
  13. Postfix for CORE-6028, thanks to Adriano
  14. Backported CORE-6028: Trigger on system table restored in FB3 database and can't be deleted
  15. Fixed CORE-6026 - Alignment issue with FB_MESSAGE C++ macro (as well UDR macros) and BIGINT/DECFLOAT types in Linux 32-bits.
  16. Backported CORE-6015: Segfault when using expression index with complex expression
  17. Backported CORE-6009: I/O error during "open" operation for file "/tmp/firebird/fb_trace_*" in firebird.log
  18. Backported CORE-6007: Firebird does not build on Mac with fresh toolchain
  19. Backported CORE-6004: Don't assign new socket handle becore socket is connected
  20. Backported CORE-6004: Use correct definition for missing socket value
  21. Backported CORE-6004: Add a switch to disable the "TCP Loopback Fast Path" option
  22. Fixed CORE-5972 - External engine trigger crashing server if table have computed field.
  23. Fixed bug CORE-5995 : Creator user name is empty in user trace sessions
  24. Fixed bug CORE-5993 : When creation of audit log file fails, there is no error message in firebird.log
  25. Fixed bug CORE-5991 : Trace could not work correctly with quoted file names in trace configurations
  26. Backported CORE-5985: Regression: ROLE does not passed in ES/EDS (specifying it in the statement is ignored)
  27. Fixed missing monitoring for the crypt thread
  28. Backported fix for CORE-5989
  29. Backported fix for CORE-5982
  30. Fixed CORE-5986 - Incorrect evaluation of NULL IS [NOT] {FALSE | TRUE}.
  31. Attempted to fix CORE-2440, CORE-5118 and CORE-5900 together (expression indices contain NULL keys after restore).
  32. Fixed the database left attached (and the engine not unloaded) after error thrown from the beginning of the attach process (e.g. due to the engine shutdown in progress)
  33. More reliable check for view vs table
  34. Reworked Alex's solution for modern compilers (GCC 5/6)
  35. Ported fix for bug CORE-5980 : Firebird 2.5.6 & 25.8 server crash
  36. Backported CORE-5724: Add ability to use "install.sh -path /opt/my_path" without need to install FB first in the default folder ("/opt/firebird")
  37. This should fix CORE-5395: Invalid data type for negation (minus operator)
  38. Attempt to fix CORE-5070, CORE-5795, CORE-5845, CORE-5965 with a single shot
  39. Fixed CORE-5966: Slow performance when executing SQL scripts as non-SYSDBA user
  40. Backport fix for bug CORE-5959 : Firebird returns wrong time after changes of time zone
  41. Enable "Enhance Optimized Debugging" to produce more useful debug info (.pdb files)
  42. Added context variable to indicate database as replica
  43. Fixed possible corruption of the monitoring shared data
  44. Fixed CORE-5943: Server crashes preparing a query with both DISTINCT/ORDER BY and non-field expression in the select list
  45. Backported CORE-5741: Word "fixing" in gbak output is too scary
  46. Backported CORE-5950: Deadlock when attaching to bugchecked database
  47. Fixed bug CORE-5949 : Bugcheck could happen when read-only database with non-zero linger is set to read-write mode
  48. Backported CORE-5948: Make WIN_SSPI plugin produce keys for wirecrypt plugin
  49. Backported CORE-5639: Mapping rule using WIN_SSPI plugin: windows user group conversion to firebird role does not work
  50. Implement sub-task CORE-5913 : Add context variables with compression and encryption status of current connection
  51. Additional fix for bug CORE-5436 : [FB3 SC] Server hangs (under load test). The case when main thread convert still not acquired lock when AST thread assert locks. It leads to the error: Fatal lock manager error: invalid lock id (0)
  52. Fixed bug CORE-5911 : Connection could hung after no activity for 60 seconds
  53. Fix CORE-5905 - Inconsistencies with PSQL FUNCTION vs UDF.
  54. Backported CORE-5908: Enhance dynamic libraries loading related error messages
  55. Applied modified patch from Damyan fixing piped decompression
  56. Avoid races in YObject::destroy()
  57. Unify memory allocation in verb_post.
  58. This should fix memory leak when not fully initialized attachment killed by DBA
  59. This should fix crash when not fully initialized attachment killed by DBA. For example - sweep (it happens few times when running core_4337.fbt).
  60. Backported CORE-5793: Error returned from DbCryptPlugin::setKey() is not shown
  61. Backported CORE-5860: Support auth_plugin_list dpb/spb item from application to client
  62. Backported CORE-5904: An attempt to create global mapping with long (> SQL identifier length) FROM field fails
  63. Fixed bug CORE-5898 : ROLE not passed in EXECUTE STATEMENT ... ON EXTERNAL
  64. This should fix a bug CORE-5902 : Add Firebird Event fails with error "While isc_que_events - Failed to establish a secondary connection for event processing."
  65. Backported CORE-5886: Nbackup does not work after 32K of backups iterations
  66. Backported CORE-5900: Banned during engine shutdown threads cause unwanted delays when shutting server
  67. Backported changes in memory leaks debugging code
  68. Backported CORE-5899: Memory leak in GBAK code when used as service
  69. Backported CORE-5893:gbak may crash database when mixing alias with full database name
  70. Avoid crash due to executing already unloaded code (in attachmentShutdownThread). Probably, same trick should be used in all threads, started not by Dispatcher, which could run after its module is unloaded concurrently. So far, it looks like Windows specific.
  71. Avoid race condition in cancel_operation() when client connection breaks immediately after op_detach.
  72. Avoid race condition (with AV) when YEvents object references is released concurrently
  73. Fix incorrect reference counting for EventManager object. It leads to the crash due to attempt to execute code (watcher_thread) after engine DLL is unloaded.
  74. Avoid double delete of ThreadSync object
  75. Clear events of dead process, not our own
  76. Backported fix of segfault in special build.
  77. Backported CORE-5884: Initial global mapping from srp plugin does not work
  78. Backported CORE-5876: Provide name of udf function for "arithmetic exception, numeric overflow, or string truncation"
  79. Backported CORE-5881: Network server ignores any error that took place in KeyHolderPlugin when establishing initial callback with client
  80. Reintroduce optimisation for 64bit build after commit of alignment fix (CORE-5865) 32bit build O2 optimisation too
  81. Backported fix for CORE-5865: Alignment error on x86_64
  82. This should fix bug CORE-5844 : Firebird freeze for new connections
  83. Ability to specify "FROM" user name in mapping using regular expression
  84. Correct condition when mapped file of monitoring data should be removed.
  85. Fixed memory corruption found when run test bugs.5674 in Classic mode using debug build.
  86. Improvement CORE-5853 - Forward-compatible expressions LOCALTIME and LOCALTIMESTAMP.
  87. Code cleanup - this should fix MacOS build
  88. Update MacOS postfix for CORE-304
  89. Port forward fix for bug CORE-5936 : Firebird server segfaults in the end of database backup. While i can't reproduce bug on v3, it will make no harm.
  90. Backported CORE-5927: With some non-standard authentication plugins providing correct crypt key wire anyway remains not encrypted
  91. Backported CORE-5926: Attempt to create mapping with non-ascii user name which is encoded in SINGLE-BYTE codepage (win 1251) leads to '-Malformed string' message
  92. Backported CORE-5918: Memory pool statistics is not accurate
  93. Backported CORE-5907: Regression: can not launch trace if its 'database' section contains regexp pattern with curvy brackets to enclose quantifier
  94. Fixed bug CORE-5935 : Bugcheck 165 (cannot find tip page)
  95. Backported CORE-5888: Firebird server on Android has problem with numerics
  96. Backported fix for android port - some kernels accept only PIE binaries
  97. Postfix for CORE-5474, more generic way to check for actual library name
  98. Bug fix for CORE-5074 [B3_0]
  99. Common implemetation for MAKE_desc_from_field and MAKE_desc_from_element.
  100. Make it possible to build with VS 2017/2019 (with VS 2015 compiler installed).
  101. Fixed CORE-6065 - Windows kits does have incomplete include headers directory.
  102. Fast bug fix for CORE-6063 [backport]. Server does not return result of own work (name of next auth-plugin).
  103. Re-enable building udrcpp_example on Windows
  104. Addition for CORE-6043 : GTTs do not release used space
  105. Avoid races at PAG_release\PAG_allocate
  106. Backported fix for bug CORE-3925 : Creating self-referential FK crashes database (bug-check) whether constraint violation had place
  107. This should fix CORE-6050, wait for confirmation from user
  108. Backported CORE-6038: Srp user manager sporadically creates users which can not attach
  109. Fixed CORE-6040 - Metadata script extracted using ISQL is invalid/incorrect when table has COMPUTED BY field.
  110. Fixed bug CORE-6043 : GTTs do not release used space
  111. Backported CORE-6045: Segmentation fault in fbtracemgr when closing it using Ctrl-C
  112. Cleanup - that long ago deprecated file was removed from OS
  113. Backported CORE-6027: Server hang on new attachment right after trace session stop
  114. SHA2 Refactoring
  115. Fixed bug CORE-6067 : Memory leak in fbclient
  116. Improve diagnostics of internal trace errors (see CORE-3413 and CORE-6075)
  117. Prevent child process hung if it writes too much data to the pipe and overflow the pipe buffer. Preserve child eol's when print child stderr data. Try to distinguish case when child's stdout closed abnormally.
  118. Sub-task CORE-4463: Windows implementation for CORE-4462 (Make it possible to restore compressed .nbk files without explicitly decompressing them)
  119. Fixed CORE-6197: Memory leak in INET_connect().
  120. MSVC declare uintXXX_t types at stdint.h
  121. Fixed CORE-5902: Add Firebird Event fails with error. "While isc_que_events - Failed to establish a secondary connection for event processing".
  122. Fixed CORE-6182: ExtConnPoolLifeTime acts as countdown for activity in MOST RECENT database (of several) rather then separate for each of used databases
  123. Let logAndDie() call abort() on all platforms. It prevent hung when process exits (instead of aborts) and tries to release resources.
  124. Backport addition for CORE-4463: Avoid handle leak after killing hung child process. Print child's stderr after child is gone to not loose very last childs output.
  125. Backported CORE-6203: "Error reading data from the connection" is raised sometimes when using non-default authentication plugin
  126. Better name for print_child_error() method
  127. CORE-6000: gbak issues "Your user name and password are not defined" when command switch "-fe(tch_password) ..." is specified when run as service.
  128. CORE-6163: Generator pages are not encrypted.
  129. Fixed races during attach/detach to the monitoring shared file (similarly to how it was done for other shmem files).
  130. CORE-6171: No current record for fetch operation with queries with aggregated subselect
  131. This should fix double close of srcBlob if extBlob->close() failed
  132. This should fix broken LRU pending chain
  133. Fixed bug CORE-6150 : Bugcheck when PK\UK\FK constraint check read record already marked as damaged
  134. Fixed CORE-6144: Inconsistent behaviour of the NEW context variable in AFTER UPDATE OR DELETE triggers
  135. Fixed bug CORE-6138 : Inconsistent behavior regarding visibility of master record on detail inserts
  136. Backported CORE-6143: Error 'Multiple maps found for ...' is raised in not appropriate case
  137. Port forward fix for bug CORE-6142 : Error "connection lost to database" could happen when application creates few local attachments (using XNET) simultaneously
  138. Fixed bug CORE-6137 : Server crashes when it run SQL
  139. An attempt to fix CORE-6134: Win_Sspi in the list of auth plugins leads message about failed login to be changed (from 'Your user name and password are not defined...' to 'Missing security context ...')
  140. Effective login constant fixed in Firebird.pas
  141. Fixed CORE-6108 - Regression: FB3 throws "Datatypes are not comparable in expression" in procedure parameters.
  142. Fixed CORE-6087 - Problem with casting within UNION.
  143. Fix CORE-6068 - Server hangs when compiling big package with error.
  144. Backport fixed diagnostics
  145. Fixed CORE-6104: incorrect erroris thrown when an embedded user does not have SELECT permissions
  146. This should fix CORE-6097: Connection does not see itself in the MON
  147. Improvement CORE-6095 : Extend trace record for COMMIT/ROLLBACK RETAINING to allow chaining of transaction ids
  148. Backported CORE-5784: Lock folder inizialization is not multi-process safe
  149. Authentication block, received by client plugin from engine, might contain trash
  150. Postfix for CORE-6091, thanks to Vlad
  151. Fixed CORE-6091: Errors when processing correct SQL statements in engine12 provider loaded by FB4 server
  152. Rework bugfix for CORE-5600 to avoid regression CORE-6089
  153. This should fix CORE-6090: BLOB fields may be suddenly set to NULLs during UPDATE after a table format change
  154. Fix for CORE-6072 - make firebird always work with security database from databases.conf
  155. Partial fix for CORE-6072 - reworked potentially buggy approach when adding different kind of strings to the clumplet
  156. Partial fix for CORE-6072 - use configured providers internally (except loopback)
  157. Fixed CORE-6086, thanks to Vlad
  158. Backported CORE-6078: Permissions for create or alter statements are not checked