Firebird Documentation IndexFirebird 2.5 Release NotesBugs Fixed → Firebird 2.5.3 Release
Firebird Home Firebird Home Prev: Firebird 2.5.3 Update 1 ReleaseFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.5.2 Security Update 1, March 2013

Firebird 2.5.3 Release

Core Engine
Server Crashes
Stored Procedure/Trigger Language (PSQL)
International Language Support
Command-line Utilities
Database Monitoring/Administration
Trace/Audit
Services Manager
Windows-specific
POSIX-specific

The following improvements and bug fixes were reported as fixed prior to the v.2.5.3 release:

Core Engine

(CORE-4460)     Expressions containing some built-in functions might not have been optimized well.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4444)     The engine could hang and block all attachments in an out-of-disk-space condition during physical backup.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2648)     Writes to nBackup's delta file were ignoring the Forced Writes database setting.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4433)     The global read/write lock (GlobalRWLock) could not downgrade EX lock to SH if readers were present.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4372)     Deadlock was possible when two data pages contained record fragments pointing to each other.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4353)     Sorting records were unnecessarily large.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4302)     Lookup (or scan) in a descending index could be very inefficient for some keys.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4299)     Error “Inappropriate self-reference of column” when using WITH CHECK OPTION with the EXTRACT() function.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4283)     Resource temporarily unavailable” errors while registering events simultaneously.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4251)     The Guardian service could write garbage after the end of the message in the Event Log.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4250)     An access violation could occur in the Guardian at process shutdown.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4216)     Memory leak with TRIGGER ON TRANSACTION COMMIT.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4214)     A global temporary table (GTT) could refer to a permanent relation, which it should not be able to do.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4211)     The embedded engine could hang for 5 seconds while closing, with errors about timeout in shutdown process and invalid mutex placed in firebird.log.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4198)     An incorrect “token unknown” error was raised when an SQL string ended with a hex number literal.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4145)     Memory would leak during preparation of an EXECUTE BLOCK that used domains.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4144)     The error “context already in use (BLR error)” was raised when preparing a query with UNION.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4143)     Memory was leaking in fbembed.dll.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4139)     The error “invalid stream” could be raised in some cases while matching a computed index.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4135)     Sweep was blocking establishment of concurrent attachments in Superserver.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4134)     Race conditions could arise when auto-sweep was started.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4118)     An expression index might not be used for derived fields or view fields.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4117)     A COMPUTED BY field was being evaluated as NULL if used as an exception parameter directly.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4113)     EXECUTE BLOCK prepare was failing.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4102)     Optimization of OR predicates was poor when applied to unions.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4101)     Invalid “I/O error during write operation” entries would appear in the firebird.log when no such database error existed.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4100)     Automatic sweep could be run when there was no need for it.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4083)     Full outer join in derived table with COALESCE (or IIF) was not returning NULLs correctly.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4058)     Remote stack buffer overflow in the server

fixed by A. Peshkov and released in the special release Firebird 2.5.2 Update 1 (details below).

    ~ ~ ~     

(CORE-4050)     SQL Dialect was not being set in internal connections to the security database.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4051)     Memory was leaked when sorting records larger than 32 KB.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4038)     Optimization for stored DBKEYs was broken.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4036)     Bugcheck or database corruption could occur when attempting to store long, incompressible data into a table.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4005)     A failing recursive CTE would return the wrong error message.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4004)     Sometimes long-running operations could not be interrupted by asynchronous shutdown / cancellation requests.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4002)     The error message “index unexpectedly deleted” could appear in a database trigger ON COMMIT TRANSACTION.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3989)     Bad performance or slow response were exhibited when many concurrent sorts were being executed.

fixed by D. Yemanov, V. Khorsun

    ~ ~ ~     

(CORE-3981)     Predicate checking was sub-optimal while selecting from a view.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3978)     Invalid transaction counters could be reported in firebird.log during a sweep.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3940)     I/O error during GetFileSize operation for file XXXX

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3924)     Bugcheck 291 (cannot find record back version) if a global temporary table (GTT) was modified concurrently with at least one read-committed read-only transaction.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3921)     Error “record disappeared (186), file: vio.cpp line: 408”, in company with CPU at 100 per cent (when bugcheckabort=1 and sweep starts at gap ~21000).

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3916)     A false validation error could occur for large tables, viz., “Index x is corrupt (missing entries) in table ...

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3902)     Derived fields might not be optimized by use of an index.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-3874)     Computed column was appearing in non-existent rows of a left-joined set.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-3817)     Forced database shutdown did not work if a non-zero delay was specified.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3360)     UPDATE ... RETURNING ... would raise error -551 (no permission to update) for a column present only in the RETURNING clause.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3305)     BLOB not found” error was being raised after creating or altering an invalid trigger.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2848)     lock conversion denied” or “lock denied” error was being raised when contention was relatively high.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2648)     Writes to nBackup's delta file were ignoring the Forced Writes database setting.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2165)     An unnecessary index read could occur when using a strict inequality condition.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1604)     An error would be raised at database creation if the user had a non-ascii name.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1475)     A database which had active attachments could not be replaced from a gbak backup file even after the database was shut down.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1295)     Queries with DB_KEY were poorly optimized.

fixed by D. Yemanov

    ~ ~ ~     

Improvements

(CORE-4445)     Physical backup (using ALTER DATABASE BEGIN/END BACKUP or the nBackup utility) was improved to speed up extension of the main database file when backup state changes from stalled to merge.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-4443)     Fast file growth has been enabled on Linux systems that support fallocate().

implemented by V. Khorsun

    ~ ~ ~     

(CORE-4432)     Attachments no longer block others when the allocation table is being read for the first time.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-4431)     Contention for the allocation table lock while a database is in the stalled physical backup state has been reduced.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-4386)     More details are now reported for “object in use” errors.

implemented by D. Yemanov

    ~ ~ ~     

(CORE-4252)     The relation name is now added to the text of validation contraint error messages, to help identify the error context.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-4215)     Execution of a SET STATISTICS INDEX statement no longer blocks or slows down concurrent attachments.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-3994)     The scan for limbo transactions scan at the end of a sweep has been improved.

implemented by D. Yemanov

    ~ ~ ~     

(CORE-3881)     Error reporting for index and constraint violations has been extended to include the problematic key value.

implemented by D. Yemanov

    ~ ~ ~     

(CORE-3704)     New context variables have been added to the SYSTEM namespace to retrieve more information about the current connection and current transaction.

The added variables: SYSTEM::CLIENT_PID and SYSTEM::CLIENT_PROCESS for the current connection, SYSTEM::LOCK_TIMEOUT and SYSTEM::READ_ONLY for the current transaction.

implemented by D. Yemanov

    ~ ~ ~     

(CORE-4438)     Support for the UPDATE OR INSERT statement has been implemented for Embedded SQL (ESQL).

implemented by D. Yemanov

    ~ ~ ~     

(CORE-4437)     Support for the RETURNING clause has been implemented for Embedded SQL (ESQL).

implemented by D. Yemanov

    ~ ~ ~     

(CORE-4047)     The maximum number of input parameters for external functions (UDFs) has been increased to 15.

implemented by A. dos Santos Fernandes

    ~ ~ ~     

Server Crashes

(CORE-4319)     The engine could crash when the trace config contained the line “connection_id=NN” and an attempt was made to connect to a non-existent database/alias.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4300)     The server would terminate abnormally when iscDatabaseInfo() was called with buffer size = 0.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4267)     The server could crash while sweeping a database.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4212)     Dropping a foreign key constraint on a global temporary table (GTT) would crash the server.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4127)     When encountering an oversized key, the server would crash instead of reporting the error “key size exceeds implementation restriction”.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4123)     The server could crash when executing a stored procedure called by a trigger that converts string to uppercase.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4121)     A segmentation fault could occur when the engine was shutting down inside a BLOB GET/PUT function that was invoked from a UDF.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4093)     The server would crash while converting an overscaled numeric to a string.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4045)     The server could crash during database shutdown.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3996)     Firebird would crash when trying to create a database in a restricted path.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3993)     The server could terminate or crash while shutting down a database with in-progress attachments.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3988)     The engine could crash when trace or audit was active.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3979)     The server could crash while unwinding changes in an autonomous transaction.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3944)     The server would crash when running a script that deleted attachments and moved the database offline.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3908)     The engine could leak memory and crash when a large number of autonomous transactions had been started and finished.

fixed by A. Peshkov

    ~ ~ ~     

Stored Procedure/Trigger Language (PSQL)

(CORE-4247)     DELETE WHERE CURRENT OF {cursor} was failing for tables with newly added fields.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4244)     Problem with creating a procedure that entailed concatenating text in the DOS864 character set.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4233)     In PSQL modules with declared cursors, the engine could assign a value to the wrong variable.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4210)     Comments for output parameters were not being preserved after altering procedures.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4204)     An error would be raised when compiling a procedure containing the statement IF (x = (SELECT ...))

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-3054)     User role was not being passed through the external EXECUTE STATEMENT call.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3998)     Parameterized EXECUTE STATEMENT calls could fail.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3895)     High memory usage was exhibited when PSQL code selected from a stored procedure that had modified some data.

fixed by V. Khorsun

    ~ ~ ~     

International Language Support

(CORE-4136)     The Sharp-S character was treated incorrectly in the UNICODE_CI_AI collation.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4125)     Using COLLATE UNICODE_CI_AI in a non-indexed WHERE clause was extremely slow.

fixed by A. dos Santos Fernandes, T. Martir

    ~ ~ ~     

(CORE-3949)     UNICODE collations would not work with ICU 49.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2912)     An exception would be raised when uppercasing a string containing lowercase y trema (code 0xFF in ISO8859_1).

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Command-line Utilities

gfix

(CORE-4297)     gfix would crash when the description of a limbo transaction in RDB$TRANSACTIONS had a size larger than 1KB.

fixed by V. Khorsun

    ~ ~ ~     

fbsvcmgr

(CORE-4298)     fbsvcmgr was failing to recognise sts_record_versions and other sts switches.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3969)     Memory would leak when doing a lot of iterations of fbsvcmgr with action_trace_start, _list and _stop.

fixed by V. Khorsun

    ~ ~ ~     

fbtracemgr

gbak

(CORE-4417)     gbak was unable to commit an index or primary key containing characters with the German umlaut.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-3995)     Switches -V and -Y were partially broken in V.2.5.2.

fixed by A. Peshkov

    ~ ~ ~     

gsec

(CORE-3932)     Using gsec, one could create but not delete a user with user name containing double quotes.

fixed by A. Peshkov

    ~ ~ ~     

qli

(CORE-4327)     Error in qli when copying NULL blobs between databases.

fixed by A. Peshkov

    ~ ~ ~     

isql

(CORE-4137)     isql was returning erroneous metadata from -extract. Specifically, it would omit the space between the data type and character set arguments of a PSQL variable definition, thus causing a syntax error in the output script.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Database Monitoring/Administration

(CORE-4010)     Fetch could not be subsequently interrupted via DELETE FROM MON$STATEMENTS.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3977)     DELETE FROM MON$STATEMENTS would not interrupt a statement that was engaged in a fairly long fetch.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3935)     Could not connect to database via TCP/IP after DELETE FROM MON$ATTACHMENTS had been issued on a different database on the same machine.

fixed by A. Peshkov

    ~ ~ ~     

Trace/Audit

(CORE-4225)     The server could crash when attempting to trace activity on a database having a database-level trigger.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4094)     Wrong parameter order was exhibited in trace output.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3970)     Trace was using an imprecise timer in POSIX.

fixed by A. Peshkov

    ~ ~ ~     

Services Manager

(CORE-4303)     Race conditions could arise during destruction of a service.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4224)     Database replace through the Services API was failing.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3942)     Some issues with error messages were evident when restoring from a gbak backup using the Services API.

fixed by A. Peshkov

    ~ ~ ~     

Windows-specific

(CORE-3243)     CURRENT_USER and MON$USER would raise an error for trusted authentication.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3183)     fbembed.dll would not load icuin30.dll from the same folder as itself.

fixed by V. Khorsun

    ~ ~ ~     

Improvements

(CORE-4439)     The maximum number of connections on Windows for Superserver and Superclassic has been raised from 1024 to 2048 connections.

implemented by P. Beach

    ~ ~ ~     

POSIX-specific

(CORE-4031)     make install was wrong under Debian Ubuntu 64.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4011)     Start/stop status was not being detected for SuperClassic and SuperServer running under Red Hat and Mageia.

fixed by P. Makowski

    ~ ~ ~     

Prev: Firebird 2.5.3 Update 1 ReleaseFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.5.2 Security Update 1, March 2013
Firebird Documentation IndexFirebird 2.5 Release NotesBugs Fixed → Firebird 2.5.3 Release