Red Database 3.0 - v3.0.5.354
Nov. 22, 2020, 8:06 p.m.
Changelog
Fixed:
- Fixed traffic encryption error when both certificate and username were used for the connection
- Fixed parse boolean values in all case in replication.conf
- Fixed issue when replication slave handles only first "replica" section in configuration
- Fixed issue when replication fails with "no current record for fetch operation" error
- Fixed crash when no subsection specified in replication.conf
- Fixed server crash during replication
- Fixed binary trace adapter fills EVENT_USER field with "" instead of real user name
- Fixed hashgen crash
- Fixed delete dead active transactions in replication
- Fixed incorrect error in gstat with -t option when same table names passed. Now 'gstat -t' just ignores repetitions
- Fixed accidental overwriting and loss of trace archives at high load
- Fixed working external triggers with computed fields
- Fixed CORE-6110: 64-bit transaction IDs are not stored properly in status vector
- Fixed using cluster_auth plugin
- Check file inode when reading sections in replication.conf
- Wait for compress threads to finish to avoid corrupted trace archives
Improvements:
- Speedup database connecting with large number of attachments on Linux
- Speedup queries with current_timestamp
- Speedup query preparing on by limiting maximum count of pointer pages readed for cardinality counting
- Allowed to grant admin role to non-existent (LDAP) user
- Bind AD groups to user roles after GSS authentication
- 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
- Added ability to specify several LDAP servers separated by ";"
- Added new configuration parameter "LDAPEncryptionMinVersion" which allows to specify required version of TLS/SSL protocols
- Added some log messages for better diagnostics of LDAP authentication
- Added -[G]uid option to fblogmgr to allow working without attaching to database
- Allow execute some DDL statements on replica such as alter database begin/end backup
- Added log warnings option to replication.conf
- 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
- 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
- Added error description in replication log
- Added new plugin for traffic encryption using Crypto API functions
- Added the ability to encrypt traffic with multifactor authentication
- Backported ExtAuth plugin
- Added the ability to change the collate of domain
- 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)
- Now hashgen returns code 1 if errors occur during hash generation/checking
- Added -guid option to gfix for database GUID generating
- Added -b option to gstat to show file blob statistics
- 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
- 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:
- 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) does not produce error when there is sysdba attachment in window
- 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