Bugs fixed Firebird 2.5.3 release

<< Bugs fixed | Firebird 2.5.3 Release Notes | Firebird 2.5.2 security update 1, March 2013 >>

Bugs fixed


Firebird 2.5.3 release

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

([[https://tracker.firebirdsql.org/browse/CORE-3908 | CORE-3908]9) The engine could leak memory and crash when a large number of autonomous transactions had been started and finished.

fixed by A. Peshkov

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page

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

~ ~ ~

back to top of page
<< Bugs fixed | Firebird 2.5.3 Release Notes | Firebird 2.5.2 security update 1, March 2013 >>