Red Database 3.0 - v3.0.10
Feb. 10, 2023, 10:31 a.m.
Changelog
Improvements and fixes:
- Backported #7468: Add switch to control in guardian timeout before killing firebird server process
- Postfix for #7465: Restore success illegally reported when gbak was unable to activate all indices;syntax
- Fixed #7465: Restore success illegally reported when gbak was unable to activate all indices
- Fix RS-95971: Always fix orphan pages
- Fixed #7467: simple sql crashes firebird: select cast(rdb$db_key as integer) from rdb$database
- Remove UDF from installers RS-96232
- Add arm64 build
- Disable gfix warnings for some cases of flags inconsistency which currently may happen during normal operation of the server (see RS-92275)
- Do not mark the last 7 pages of an extent as secondary because it doesn't improve the performance of updates since the original precedence relationship between the pointer page and the secondary data page was restored (see RS-92275)
- Postfix for #7446: never attempt to delete savepoints belonging to a different transaction
- Minimalist fix for #95371: account our own attachment's changes inside dbb_stats before reporting the global stats to the user
- Attempt to fix bug #7428 : Problem with editing procedures being in use.
- Backported fix for #7446: Attempt to use data in destroyed transaction pool
- Allow use bundled editline with bundled ncurses (configure --with-builtin-ncurses) RS-92735
- See RS-87996: postfix certificate logon via multifactor and certificate as ldap user with policy, when LDAPUserCertificate parameter not set
- Drop /tmp/firebird after installation and create during systemd unit startup. RS-94794
- Fix resetting and accidental key damaging/deleting (#7415) (#7423)
- Update zlib to 1.2.13, see #7437
- Do not reset buffer flags in CCH_shutdown when it's called from ERR_bugcheck_msg because otherwise a precedence relationship can be ruined for other threads that may still be active (see RS-92275)
- Fix bug when uncommitted records may become visible after the database sweep (see RS-92275)
- Fixed (fingers crossed) 'no current record' error during refetch after sort if transaction ID is beyond the 2^32 bounds
- Add downgrade support (RS-87092)
- Fix overwriting data with "optimize for" RS-82213
- Minimal fix for #7436: Backup error for wide table: provide understandable message on error
- Fix possible SUBSTRING()'s crash with UTF-8 encoding (#7434) (#7435)
- See RS-92433: fix regex pattern's end calculation
- Fix RS-70126: Log errors when new user password violates policy restrictions
- Don't add ldap user to security on alter with DefaultUserManagers (RS-91213)
- See RS-86719: Execute server startup flags before config validation to be able to return some info about server even if config contains errors.
- Fix RS-92512: Server with multifactor authentication hangs when gbak service disconnects after backup
- Postfix for #7418: Reliability of plugin manager; better error handling during plugin registration, removed limit on length of registration name
- See RS-92832: remove redundant checks for parameters containing list of plugin names
- "RESET USER" also sets PLG$LAST_ONLINE to CURRENT_TIMESTAMP to allow connections from idle users
- Implemented #7418: Reliability of plugin manager
- Drop default sysdba password from installer RS-89415
- Dispose of replication transaction on commit/rollback. See RS-69574
- Ability to specify replication plugin name. See RS-69574
- Postfix after RS-90502: Correct use of the refactored WideString class. It should fix broken multifactor authentication.
- RS-90502: Increase the maximum length of the LDAP_ATTR result to 4096.
- Fix RS-90502: Ability to read multiple values of LDAP attribute. Only the first value was read before.
- Fixed #4729: Grant and Revoke update (field)
- Fixed #7402: Server crashes on startup error
- Fixed #7406: Regression - trusted role does not work with version 3.0.10
- See RS-91562: change error message if user not found in security db and ldap is not accessible.
- Add a new 'L' flag for logical replication, which will compare certain system tables, also fix a bug with the comparison SQL_ARRAY type. Changed the message output when detecting differences between tables.
- See RS-60027: Fix crash when replicated internal requests
- Attempt to fix RS-91329: Turn on checkout in PIO_write to make it possible to deliver AST while writing to the file
- See RS-87996: bind to Ldap and check user's policy attribute existence even if we are logging in via trusted certificate
- Postfix for #7147: Problems with use of big timeout (or no timeout at all) in trace service; avoid most of annoying messages in firebird.log caused by original fix
- Fixed #7393: Access violation after double fault in attachDatabase().
- Backport forgotten fix for no privilege check (RS-50891)
- Fixed #7370: Segfault under OOM conditions
- Fixed #7366: setEngineReleaseDelay uses wrong type for the local variable maxLinger
- Fixed #7365: Client side aliases do not work in databases.conf
- Fix issue when the count of temporary blobs was not decremented for file blobs which caused "Too many temporary blobs" error (see RS-88869)
- See RS-71900: In case of incremental restore, close all backup files as usual except of stdin
- Do not delete temp.rpb_record inside the loop because it can be reused (see RS-84455)
- Use the most recent format for records in SortedStream::mapData to fix crashes (see RS-84455)
- Postfix for RS-88073: Get the actual modification time of databases.conf instead of the access time
- Fix RS-87197: Don't raise an error if modifying a non-DBMS LDAP password fails due to an object class violation.
- Fix RS-87644: Log the change of database backup state to 'merge'
- Fixed possible crash when server-side authentication creates an empty plugin list
- This should fix bug #7314 : Multitreaded activating indices restarts server process
- Backported fix for #7298: Info result parsing
- Backport parallel workers implementation from FB5 to fix races and crashes during sweep (see RS-86799)
- Do not print errno in error messages in cases when a file descriptor is invalid and I/O functions were not called before (see RS-84347)
- Fix NULL pointer dereference when a relation is dropped concurrently (see RS-84097)
- Attempt to fix hanging transaction locks after various exceptions or BUGCHECK (see RS-84347)
- Put the error message into firebird.log before BUGCHECK actions because there is always a risk of crashing (see RS-84347)
- Don't close temporary files in PageManager::closeAll because they should already be closed by PageManager::releaseTempPageSpace (see RS-84347)
- Lock page spaces in PageManager::closeAll because this function can be called concurrently when BUGCHECK is encountered (see RS-84347)
- Print a function name in error messages in cases when a file descriptor is invalid (like it's done in PIO_header) for better diagnostics (see RS-84347)
- Print correct error message for crypto exceptions (RS-87299)
- Fix for #7299: gfix hangs on disconnect when transactions traceactive
- Fixed #6941: Dummy (always true) conditions may change the join order
- Fixed #7296: During shutdown op_disconnect may be sent to invalid handle
- Fixed #7295: Unexpected message 'Error reading data from the connection' when fbtracemgr is closed using ctrl-C
- Fixed #7299: gfix hangs on disconnect when transactions trace active
- Add error code 1 return from gfix if config validation found errors in config
- Trace failed attach attempts RS-52749
- Improvement RS-86068: New built-in function BLOB_APPEND backported from 4.0
- Postfix for RS-44527: Allow spaces in LDAP_XYZ configuration parameters
- Improvement #7259 : Remove TcpLoopbackFastPath and use of SIO_LOOPBACK_FAST_PATH
- Fix RS-85492: Log warnings about missing LDAP attributes only if "TraceAuthentication" parameter is enabled
- This should fix bug #7271 : Sporadic crash on 3.0.10.33106
- Fix RS-84819: Empty user name when searching LDAP groups if there is no primary group
- Do not allow the AST thread to release EX lock on a relation while it's in the deleting state (#7252)
- Check for an error when opening "/dev/urandom". Otherwise wrong error is returned e.g. if the open file limit is reached.
- Fix #7237 - Starting operator become unstable on indexed varchar fields.
- Fix RS-84571: Extracting metadata using ISQL can cause crash because of unhandled exception.
- See RS-44527: Introduced configuration validation argument to gfix and autovalidation feature to rdbserver
- Fix races between Thread::start and Service::run.
- See RS-75522: add grant policy feature to ldap users
- See RS-72035: Rise LockHashSlots default config value
- Fixed issues with shutdown thread, reported by Ilya Eremin privately
- See RS-77088: gather DEFAULT roles granted to PUBLIC user along with roles granted to user directly
- See RS-75048: add BugcheckAbort config parameter check to system_call_failed exception to make it create dump not only on debug build
- See RS-60479: add password setting in ldap for 'create user' statement used with Srp, Multifactor, Legacy_Auth plugin
- See RS-71900: do not close stdin before read from it
- See RS-73363: increase regexp_substr() input string max size
- See RS-75391: fix single minus symbol interpretation in regex character sets
- See RS-70492: exclude ^ symbol from special symbols if it used in regexp_substr without M mode
- See RS-70356: make regex engine to search in empty string something at least once
- See RS-70289: fix symbol range pattern generation
- RS-69360: introduce properly working backtracking to 'similar to' matcher
- RS-70267: introduce group substring start restore
- RS-46421: introduce lazy quantifier mode
- RS-70290: remove redundant condition in regex pattern parser which deny repeats of groups containing possibly zero length substring
- Print warning after revoking a missing option (RS-68485)
- Add BlobTempSpace - new config option (RS-65761)
- Fix for RS-74062: Wrong value "User name in DPB" in mon$auth_method
- Allow threads which are running purge_attachment() to start new transactions during DB shutdown because it's needed for ON DISCONNECT triggers
- Autonomous transactions which are used inside ON DISCONNECT triggers are allowed as well.
- Execute ON DISCONNECT triggers in the following cases: 1. During database shutdown (gfix -shut full -force 0). 2. An attachment is deleted from MON$ATTACHMENTS by another attachment. See RS-44282.
- Flush only pages from a temporary page space which is being released (see RS-75696)
- Backported fix for #6947: Query to mon$ tables does not return data when the encryption/decryption thread is running
FBJava updated to 1.2.2:
- Increasing maximum number of document characters to analyze with marker highlighter. RS-82772
- Throw an exception if reindexing is already running. RS-82772
- Use the length of message bytes to allocate memory for error message. An error message may have a different encoding than UTF-8, and message length returned by
java.lang.String#length
may be different from the actual memory size. RS-82772
- Use HTML Encoder to escape text for HTML output. RS-82772
- Add ability to index in parallel. Multiple threads can start indexing in parallel. If any thread tries to index an index that is already being processed, a warning is printed to logger and second processing is skipped. RS-82772
- Increasing maximum number of document characters to analyze with marker highlighter. RS-82772
- Throw an exception if reindexing is already running. RS-82772
- Use HTML Encoder to escape text for HTML output. RS-82772
- Close blob after reading contents. RS-84807
- Upgrade tika parsers to 2.4.1 and lucene libraries to 8.11.2. RS-82772