Firebird Documentation IndexFirebird 3.0.4 Release Notes → Bugs Fixed
Firebird Home Firebird Home Prev: Remote Client RecognitionFirebird Documentation IndexUp: Firebird 3.0.4 Release NotesNext: Firebird 3.0.3 Release: Bug Fixes

Bugs Fixed

Table of Contents

Firebird 3.0.4 Release: Bug Fixes
Firebird 3.0.3 Release: Bug Fixes
Firebird 3.0.2 Release: Bug Fixes
Firebird 3.0.1 Release: Bug Fixes
Firebird 3.0.0 Release: Bug Fixes
Firebird 3.0 Release Candidate 2: Bug Fixes and Minor Improvements
Firebird 3.0 Release Candidate 1: Bug Fixes and Minor Improvements
Firebird 3.0 Second Beta Release: Bug Fixes
Firebird 3.0 Second Beta Release: Improvements
Firebird 3.0 First Beta Release
Firebird 3.0 Second Alpha Release
Firebird 3.0 First Alpha Release

Firebird 3.0.4 Release: Bug Fixes

The following bug fixes were reported prior to the v.3.0.4 official release:

Core Engine

(CORE-5905)     Fixed some inconsistencies that could occur when using ALTER FUNCTION to replace a legacy UDF with a PSQL function having the same name.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-5904)     An attempt to create global mapping with a FROM field length greater than the SQL identifier length would fail.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5900)     Login attempts during engine shutdown would cause unnecessary delays in the shutdown process.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5898)     ROLE was not passed in EXECUTE STATEMENT ... ON EXTERNAL.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5891)     The wrong events were released when a dead process was detected, i.e., valid events of a valid connection were released instead of the events of the broken connection.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5884)     An initial global mapping from the Srp plugin would not work.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5881)     Network server would ignore any error that occurred in the KeyHolderPlugin when establishing the initial callback with a client.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5880)     Unhandled: C0000005.ACCESS_VIOLATION could cause the server to crash. The issue was related with events processing and could happen when POST_EVENT ran from an ON DISCONNECT trigger. The same exception could occur if the application failed to cancel events when disconnecting.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5879)     Error reading/writing data to connection: appears to be related to CORE-5880 (above).

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5852)     The system trigger RDB$TRIGGER9 checks that an object exists. However, existence checks for generators and exceptions were not implemented for checking when granting the USAGE privilege on generator and exception objects. As a result, it was possible to grant USAGE on a non-existent object.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5847)     The error message returned from a primary key violation was returning "Malformed string" instead of the key value.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5846)     CREATE VIEW was issuing a faulty error "Implementation of text subtype 512 not located".

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-5844)     Firebird was not cancelling events when the client disconnected. See also CORE-5879 and CORE-5880, above.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5843)     Failures in a TRANSACTION START trigger were not being handled correctly.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5840)     A user was able to create a table that had a foreign key reference to another table to which he had no access privilege.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5837)     Inconsistent results when working with GLOBAL TEMPORARY TABLE ON COMMIT PRESERVE ROWS.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5822)     The client would get the error SQLSTATE = 28000 ("user/password not defined") if WireCrypt = Disabled was used on the client side.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5819)     An attachment could persist after it was deleted FROM MON$ATTACHMENTS.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5804)     Fixed several legacy errors and anomalies in the implementation of the REVOKE operator.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5801, link not available)     Unauthorized BLOB access vulnerability was fixed.

fixed by D. Starodubov

    ~ ~ ~     

(CORE-5796)     The gstat utility could produce a faulty report concerning the presence of some non-encrypted pages in a database.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5793)     The error returned from DbCryptPlugin::setKey() ("Missing correct crypt key") was not helpful for diagnostics.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5791)     The ODS 12.0 for Windows and Linux-x64 builds differs from Linux-x86. The fix results in a minor ODS change, from 12.0 to 12.2, for some but not all platforms. This has certain implications for compatibility, so please read these notes.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5790)     User with DROP DATABASE privilege could not drop the database.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5788)     Security Patch: Replacement of use of SHA-1 in the SRP Client Proof with SHA-256. See V. 3.0.4 SRP Security Patch in the Security chapter of these notes.

fixed by A. Whyman, A. Peshkov

    ~ ~ ~     

(CORE-5783)     EXECUTE STATEMENT was ignoring the text of the SQL query string after a comment of the double-hyphen form ('--').

The bug was solved by ensuring that the parser properly handled a newline symbol.

However, when EXECUTE STATEMENT gets the SQL query text from a binary BLOB variable, the engine uses a special blob filter (filter_text) to convert the binary blob to text. For some reason, this blob filter treats \n (new-line) as a segment boundary and removes it from the output. In a case where the line-endings in the binary BLOB were stored as \r\n, the SQL query text received by EXECUTE STATEMENT thus loses the newline directive and the PSQL parser is left with no way to detect the end of the single-line comment.

The BLOB filter filter_text will not be changed to cater for the edge case of applying a binary BLOB to EXECUTE STATEMENT. The solution is to avoid using a binary BLOB to store data that is to be used as text.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5780)     The server would hang when a client tried to send DB encryption keys that were too long to fit in the TCP buffer that FB allocates for sending/receiving messages, TcpRemoteBufferSize. The fix is to drop the attachment as soon as the server detects a fragmented packet in the async receiver.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5776)     Error "Input parameter mismatch" could be thrown after altering a function to replace an external function with a PSQL function.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5773)     A PSQL (explicit) cursor could not see an inserted record, because cursor stability based on savepoints and the Undo log could not be applied to explicit cursors. A different approach was taken to implement stability for explicit cursors.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5762)     Wrong transaction number in system table RDB$PAGES relation could cause infinite recursion in the engine and result in a segfault.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5757)     Deadlock with events.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5755)     Granting a privilege on a non-existent object produced no error or warning.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5754)     Since Firebird does not have explicit privileges for triggers, ALTER TRIGGER would check the privileges for ALTER DATABASE, which was correct for database triggers but wrong for table-level triggers.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5753)     The parser allowed the use of WITH GRANT OPTION when granting the EXECUTE privilege to functions and packages. This was wrong.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5747)     A user could grant USAGE privileges to self.

fixed by R. Simakov

    ~ ~ ~     

(CORE-5743)     A conversion error could be thrown when both GROUP BY/ORDER BY expressions and WHERE expressions contained literals.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-5702)     Firebird on Windows was leaking handles.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4964)     Genuine errors during connection to the security database were hidden by the Srp user manager.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-405)     An old pitfall: if an index contained garbage and automatic GC was disabled, it would not be possible to create unique indexes or PRIMARY, UNIQUE or FOREIGN KEY constraints.

fixed by V. Khorsun

    ~ ~ ~     

Server Crashes/Hang-ups

(CORE-5863)     A Classic process could crash when the client had disconnected.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5830)     The encryption interface could crash the Firebird process when working on big database file.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5815)     The server could hang for 60/120 seconds if the client disconnected during the database encryption key transfer callback.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5756)     Server could crash when trying to recreate a table that is in use for a DML operation.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-5436)     SuperClassic server would hang under load.

fixed by V. Khorsun

    ~ ~ ~     

API/Remote Interface

(CORE-5911)     Connection could hang if there was no activity for 60 seconds.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5772)     A client connection could hang when working with events under high load.

fixed by A. Peshkov

    ~ ~ ~     

Builds

(CORE-5865)     An alignment error would occur on x86_64 when using clang to compile Firebird, due to an optimization in that environment. It was known to affect builds for MacOSX and LibreOffice Base.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5824)     Segmentation fault during install on Linux.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5817)     Firebird would not compile with ICU 60 or higher.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5778)     install.sh would fail if the -path argument contained 'firebird'.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5769)     Database crypt plug-in sample in Pascal was broken.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5765)     Missing directives in Firebird.pas.

fixed by A. Whyman, A. Peshkov

    ~ ~ ~     

(CORE-5764)     Installation of Firebird 3.0.3 on SLES 12 SP3 would fail with "Could not find acceptable ICU library".

fixed by A. Peshkov

    ~ ~ ~     

Utilities

gbak

(CORE-5899)     Using gbak as a service could cause memory leakage.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5893)     gbak could crash the database engine when mixing a database alias with the full database path.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5833)     Metadata triggers for some object types (views, exceptions, roles, indexes, domains) were lost in the backup-restore process.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-5760)     The server process could crash while restoring a database.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5745)     SQL privileges error during database restore.

fixed by A. Peshkov

    ~ ~ ~     

gfix

(CORE-5872)     Database validation would report false errors "Record XXX has bad transaction" and\or "Record XXX is wrong length" when the record's transaction number exceeded 2^32.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5869)     Sweep was failing to increment the OIT value past 2^32, when Next Transaction value was already higher than 2^32.

fixed by V. Khorsun

    ~ ~ ~     

gsec

(CORE-5829)     The gsec utility was not releasing the user manager plug-in.

fixed by A. Peshkov

    ~ ~ ~     

gstat

(CORE-5831)     Output of gstat from an encrypted database was not user-friendly.

fixed by A. Peshkov

    ~ ~ ~     

isql

(CORE-5870)     The SHOW DATABASE command in isql was returning zero for statistics with a value exceeding the range of 32-bit integer.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-5742)     An incorrect error message was returned in isql when trying to create a database when logged in with the wrong password.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-5737)     Invalid parameters for gds transaction in isql would cause it to hang when trying to show various system objects while another attachment had uncommitted changes to those objects.

fixed by A. Peshkov

    ~ ~ ~     

nBackup

(CORE-5886)     Nbackup would stop working after 32K iterations of backups.

fixed by A. Peshkov

    ~ ~ ~     

Prev: Remote Client RecognitionFirebird Documentation IndexUp: Firebird 3.0.4 Release NotesNext: Firebird 3.0.3 Release: Bug Fixes
Firebird Documentation IndexFirebird 3.0.4 Release Notes → Bugs Fixed