Red Database 3.0 - v3.0.5.354

Nov. 22, 2020, 8:06 p.m.

Changelog

Fixed:

  1. Fixed traffic encryption error when both certificate and username were used for the connection
  2. Fixed parse boolean values in all case in replication.conf
  3. Fixed issue when replication slave handles only first "replica" section in configuration
  4. Fixed issue when replication fails with "no current record for fetch operation" error
  5. Fixed crash when no subsection specified in replication.conf
  6. Fixed server crash during replication
  7. Fixed binary trace adapter fills EVENT_USER field with "" instead of real user name
  8. Fixed hashgen crash
  9. Fixed delete dead active transactions in replication
  10. Fixed incorrect error in gstat with -t option when same table names passed. Now 'gstat -t' just ignores repetitions
  11. Fixed accidental overwriting and loss of trace archives at high load
  12. Fixed working external triggers with computed fields
  13. Fixed CORE-6110: 64-bit transaction IDs are not stored properly in status vector
  14. Fixed using cluster_auth plugin
  15. Check file inode when reading sections in replication.conf
  16. Wait for compress threads to finish to avoid corrupted trace archives

Improvements:

  1. Speedup database connecting with large number of attachments on Linux
  2. Speedup queries with current_timestamp
  3. Speedup query preparing on by limiting maximum count of pointer pages readed for cardinality counting
  4. Allowed to grant admin role to non-existent (LDAP) user
  5. Bind AD groups to user roles after GSS authentication
  6. Now LDAP authentication retrieves user first name, middle name and last name from "CN" attribute. They are available through context variables "USER_XXX_NAME" in "AUTHDATA" namespace
  7. Added ability to specify several LDAP servers separated by ";"
  8. Added new configuration parameter "LDAPEncryptionMinVersion" which allows to specify required version of TLS/SSL protocols
  9. Added some log messages for better diagnostics of LDAP authentication
  10. Added -[G]uid option to fblogmgr to allow working without attaching to database
  11. Allow execute some DDL statements on replica such as alter database begin/end backup
  12. Added log warnings option to replication.conf
  13. Change output same errors to replication.log
    • First error is always added to replication.log
    • Following same errors are added to log by rules: when count equals 10, 50, 100 and multiple 500
    • So if next error is different then count of previous errors added to log
  14. Added -Guid and -Log flags to fbreplmgr. Guid flag if for manual input guid of master database. Log flag if for output detail log information
  15. Added error description in replication log
  16. Added new plugin for traffic encryption using Crypto API functions
  17. Added the ability to encrypt traffic with multifactor authentication
  18. Backported ExtAuth plugin
  19. Added the ability to change the collate of domain
  20. Added TcpUserTimeout option to firebird configuration. This option set timeout of socket connection. If network is broken, the connection will end after 17 minutes (by default)
  21. Now hashgen returns code 1 if errors occur during hash generation/checking
  22. Added -guid option to gfix for database GUID generating
  23. Added -b option to gstat to show file blob statistics
  24. Update fbjava to 1.1.9:
    • Attempt to fix crash on freeing blobs in finalizer
    • Avoid NPE and throw FileNotFoundException if file in classpath does not exist and has no parent directory
    • Release external attachments
  25. Update fbjava_lucene 2.0.11:
    • Updated tika to 1.22 with fixed bugs and CVEs
    • More permissions. Compact sql with bulk insert

Ported from Firebird:

  1. Fixed bug CORE-6447 : SET SQLDA_DISPLAY ON: different text of message for parameterized expression starting from second run
  2. This should fix CORE-6440: expression indices with COALESCE cannot be matched
  3. Postfix for CORE-6412, fixed non-ascii users support
  4. 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
  5. Fixed bug caused by one of my recent commits
  6. Always check for correct data extracted from info block instead fb_assert
  7. Fixed CORE-6433: Several firebird servers crash
  8. Avoid negative offsets in case of malformed network packet
  9. Backported CORE-6432: Possible buffer overflow in client library in Attachment::getInfo() call
  10. Fixed CORE-6408 - RETURNING clause in MERGE cannot reference column in aliased target table using qualified reference (alias.column) if DELETE action present
  11. Backported CORE-6412: Firebird is freezing when trying to manage users via triggers
  12. CORE-6424 - Be sure to fail the build process if the employee database cannot be copied to the output directory for packaging
  13. Fixed arm-32 (Raspberry Pi) build
  14. Fixed android build
  15. Be sure to include contents of plugins/udr in kits
  16. Fixed ARM64 build
  17. Make robust file IDs optional (for the sake of cross-release compatibility)
  18. Postfix for CORE-6358 to avoid error in restore
  19. Backported CORE-6413: Remove PIDFile/-pidfile directive/option from firebird Super(Server/Classic) systemd unit
  20. Fixing broken alpine build. (#283)
  21. Cleanup overcomplicated isinf
  22. Better assertions, code simplification and minor optimization
  23. 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
  24. Fixed CORE-6411: crash while creating a table with many (>5460) fields
  25. This should fix the regression with long file paths
  26. Fallback to other identification methods only if the current call is unavailable, otherwise raise an error
  27. 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
  28. Backported fix for CORE-6396: Unknown tag (0) in isc_svc_query() results
  29. Backported CORE-6392: Space in database path prevent working gbak -se ... -b "path to/database" backup
  30. Fixed bug CORE-6351 : Computed field could be wrongly evaluated as NULL
  31. Update zlib to 1.2.11
  32. Backported CORE-6388: DEV_BUILD client asserts when closing event thread
  33. Fixed CORE-6370 - Memory leak at server, when client select computed field, which used COALESCE or CAST
  34. Backported CORE-6371: Avoid server crash on shutdown in case of wrong reference counting in UDR
  35. Backported CORE-6367: Segfault when receiving malformed packet from network
  36. Fixed CORE-6362: Better diagnostic when 'Missing security context'
  37. Fixed bug CORE-6364 : Wrong reference counting in UDR trigger sample
  38. This should fix bug CORE-6347 : New connections to database server sometimes stall, when there is existing connection to database
  39. Fixed CORE-6358 - Adding NOT NULL column with DEFAULT value may cause default values to update when selecting or have the wrong charset
  40. Fixed regression caused by previous commit - segfault when unwinding half-done attachment
  41. Backported fix for CORE-6360: Engine may hang due to races when starting crypt thread and simultaneous shutdown
  42. Backported fix for CORE-6339: Detach server from security database when missing plugin data structures cause an error
  43. Backported fix for CORE-6147: script with extracted metadata may fail on global mapping
  44. Some (limited) protection from exceptions raised from inside JRD_shutdown_database
  45. 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
  46. 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
  47. Backported CORE-6348: Wire compression causes freezes
  48. This should fix bug CORE-6346 : New connection to the server hangs
  49. Fixed CORE-6340 - Alternate quoting does not work on some particular cases
  50. Backported CORE-6345: Server crashes on overflow of division result
  51. This should fix CORE-6343
  52. Backported CORE-6329: GBAK with service_mgr and WinSSPI authentication for Windows SYSTEM user producing error in clumplet API
  53. Fixed one more case of bug CORE-5087 : Database shutdown can cause server crash if multiple attachments run EXECUTE STATEMENT
  54. Backported CORE-6334: Missing relocation support
  55. Fixed random conversion errors (FBT test "functional.gtcs.cast-datatypes" failed sometimes)
  56. Fixed CORE-6331 - Memory leak with some statements and expressions
  57. Support for blr_marks BLR code from FB4. It allows to ignore blr_marks in case of its presence in downgraded database
  58. This should fix unregistered bug : connection timeout doesn't work for INET if remote side is not answered on op_connect packet
  59. Backport fix for bug CORE-6296 : Many connections results in poor performance
  60. Fixed bug CORE-6319 : NBACKUP locks db file on error
  61. Fixed assert in Statement::freeClientData()
  62. This should fix CORE-6323: File-system ID may be duplicated among databases located on different volumes
  63. Make the reschedule accounting simpler and sweep more responsive under load
  64. CORE-6317 - Server is crashing on long GRANT statement
  65. Fixed CORE-6317 - Server is crashing on long GRANT statement
  66. Backport CORE-6310: Varchar length limit is not enforced when assigning string with trailing spaces in MBCS
  67. Bacport CORE-6314: Assigning RDB$DB_KEY to MBCS CHAR/VARCHAR does not enforce the target limit
  68. Backported CORE-6309: fbsvcmgr can not decode information buffer returned by gfix list limbo service
  69. 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
  70. 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)
  71. Improved code to ensure better compatibility with engine12. Improvements for older engines are also included though full compatibility is still missing
  72. Fixed CORE-6280 - MERGE statement loses parameters in WHEN (NOT) MATCHED clause that will never be matched, crashes server in some situations
  73. Backported CORE-6283: isNullable() in message metadata, returned by metadata builder, does not match with datatype set by setType() in metadata
  74. Backported fix for unregistered bug: error handling in main server loop is broken
  75. Backported fix for CORE-5364: gfix -online normal (being issued in window) does not produce error when there is sysdba attachment in window
  76. Fixed CORE-6230: Unable to connect with database if security.db reference is removed from databases.conf file
  77. Improvement CORE-6274 - Increase parse speed of long queries
  78. Backported CORE-6264: gbak with PIPE to stdout: invalid content if user '-se :service_mgr' command switch
  79. Disable simultaneous access to read-only database from multiple processes in SS mode
  80. Make firebird engine use classic mode during boot build
  81. Backported CORE-6208: Grant lost in security.db after backup/restore cycle
  82. Correction of RefPtr::assign
  83. Backported CORE-2251: gbak doesn't return error code
  84. Backported CORE-6227: isc_info_svc_user_dbpath always returns alias of main security database
  85. Fixed bug CORE-6231 : access violation on shutdown of xnet connection to local database when events have been registered
  86. Backport fix for CORE-5862 - Varchar computed column without explicit type does not populate RDB$CHARACTER_LENGTH
  87. 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
  88. Fix misleading error message about CORE-5802
  89. Backported CORE-6237: Performance issue - security database connections cache in SRP plugin
  90. One more fix for possible hangs inside the monotoring shmem code
  91. This should fix CORE-6216: request size limit exceeded when selecting from a table with large number of indicies
  92. This should fix empty routine names reported during DROP operations
  93. Fixed CORE-6189: Building bundled libtommath fails
  94. Backport new feature CORE-4933 : Add better transaction control to isql
  95. Fixed CORE-6250 - Signature mismatch when creating package body on identical packaged procedure header
  96. Fixed bug CORE-6253 : Crash via locked fb_lock file
  97. Avoid calling MOV_compare() for NULL values
  98. Fixed bug CORE-6224: [AV] Re-destruction of the rem_port object
  99. Fixed CORE-6260: Warnings not always displayed in ISQL
  100. Fixed CORE-6233 - Wrong dependencies of stored function on view after backup and restore
  101. Backported CORE-6265: mapping rules destroyed by backup / restore
  102. Fixed CORE-6266
  103. Fixed CORE-6246 - Problem with too many number of columns in resultset
  104. Fixed CORE-6269: Firebird ignores KeepAlive settings
  105. Correct my old fix for CORE-5470 - use converters in correct order