General notes

<< | Firebird 2.5.3 Release Notes | New in Firebird 2.5 >>

General notes

Firebird 2.5.3 sub-release

Warning re databases created or restored under Firebird 2.5.1: All users upgrading from Firebird 2.5.1 to a higher sub-release are strongly advised to migrate databases using gbak backup/restore. If this is impracticable, at least rebuild all compound indices in the databases being migrated. Databases being upgraded from older Firebird versions (ODS 11.1 and lower) or v.2.5.0 are not affected by this regression.

This sub-release of Firebird 2.5 adds no new features but includes a large collection of bug fixes that have accumulated since v.2.5.2. A few minor improvements appear in this sub-release, viz.

  • 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.
  • Some limits have increased:
    • The maximum number of connections on Windows for Superserver and Superclassic has been raised from 1024 to 2048 connections.
    • The maximum number of input parameters for external functions (UDFs) has increased to 15.
  • Error reporting improvements, including:
    • More details are now reported for object in use errors.
    • The relation name is now added to the text of validation constraint error messages, to help identify the error context.
    • Error reporting for index and constraint violations has been extended to include the problematic key value.
  • 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.
    • Contention for the allocation table lock while a database is in the stalled physical backup state has been reduced.
    • Faster file growth has been enabled on Linux systems that support fallocate().
    • Attachments no longer block others when the allocation table is being read for the first time.
  • Execution of a SET STATISTICS INDEX statement no longer blocks or slows down concurrent attachments.
  • The scan for limbo transactions at the end of a sweep has been improved.
  • Support for the UPDATE OR INSERT statement and the RETURNING clause have been implemented for Embedded SQL (ESQL).

back to top of page

Firebird 2.5.2 security update 1

A remote stack buffer overflow was discovered in the Firebird Server during March, 2013, that allows an unauthenticated user to crash the server and opens a gate for remote code execution. The vulnerability was patched by Alex Peshkov. All Firebird binaries released with build numbers 26539 or lower and all snapshot builds before 2013.03.08 have this vulnerability.

back to top of page

Firebird 2.5.2 sub-release

An important change was made to the implementation of the GEN_UUID() function to make it comply properly with the requirements of RFC-4122. For more information, refer to this topic.

A bug was corrected that caused faulty byte or character order in the results of the functions CHAR_TO_UUID and UUID_TO_CHAR on big-Endian platforms. This correction will impact code that called those functions on big-Endian hosts in Firebird 2.5 or 2.5.1.

As well as many more bug fixes accumulated over the months since v.2.5.1, this sub-release provides a few minor improvements, particularly of help to administrators. In summary:

  • Some welcome improvements were made to the Trace services, viz.,
    • Sessions can now be configured to log user and automatic sweep activity. Documentation for this option can be found on the Tracker ticket CORE-3656.
    • TRACE now produces statistics of actions that happen after a transaction has finished. See Tracker ticket CORE-3598.
    • TRACE now provides the ability to log errors that occur in runtime (lock conflicts, key violations, et al.). See Tracker ticket CORE-3539.
  • It is now possible to use the API to do a remote backup/restore. See Back up to or restore from a remote backup file.
    • A note is now written into firebird.log when an automatic sweep is started.
    • Support was added for C preprocessor flags in the Firebird build system.

back to top of page

Firebird 2.5.1 sub-release

As well as a substantial number of bug fixes, this sub-release takes in a few minor improvements and optimizations that missed the initial release. In summary:

  • Significant for MacOSX 10.7 users was a bug that caused attempts to start Superserver and Superclassic to fail. The bug is described in Tracker ticket CORE-3589 and also in the bug fixes list for this sub-release.
  • An SQLSTATE context variable is now available in PSQL, parallel to the the context variables GDSCODE and SQLCODE that are used in WHEN blocks to test for error conditions.
  • A couple of improvements were made, that should help performance when global temporary tables (GTTs) are being used:
    • The undoing, on rolling back the transaction, of changes made to GTTs that were created with the ON COMMIT DELETE ROWS option was an unnecessary overhead and has been bypassed.
    • Garbage collection in global temporary tables was being delayed unnecessarily by active transactions in other attachments. That bottleneck is gone.
  • A needed optimization in the temporary space manager with regard to small chunk allocations has been implemented.
  • The Lock Manager has been provided with the capability to cancel waiting, avoiding a condition whereby a transaction in WAIT mode could wait interminably for the end of another transaction that could not be achieved by either a DELETE FROM MON$xxx or an fb_cancel_operation request.
  • The query optimizer now estimates the actual record compression ratio, enabling better guesses about the number of stored records in tables.
  • Some minor improvements to the remote interface:
    • Any unused bytes of varchar values in the message buffer are now set to zero.
    • Set the SO_KEEPALIVE option on the client TCP socket.
  • The MON$STATEMENT_ID value constant is now kept constant among monitoring snapshots.
  • Ports of this sub-release were done for Linux/HPPA and Linux/alpha platforms.

back to top of page

Bug reporting

  • If you think you have discovered a new bug in this release, please make a point of reading the instructions for bug reporting in the article How to Report Bugs Effectively, at the Firebird Project website.
  • If you think a bug fix hasn't worked, or has caused a regression, please locate the original bug report in the Tracker, reopen it if necessary, and follow the instructions below.

Follow these guidelines as you attempt to analyse your bug:

  1. Write detailed bug reports, supplying the exact build number of your Firebird kit. Also provide details of the OS platform. Include reproducible test data in your report and post it to our Tracker.
  2. You are warmly encouraged to make yourself known as a field-tester of this pre-release by subscribing to the field-testers' list and posting the best possible bug description you can.
  3. If you want to start a discussion thread about a bug or an implementation, please do so by subscribing to the firebird-devel list. In that forum you might also see feedback about any tracker ticket you post regarding this alpha.

back to top of page


You will find all of the README documents referred to in these notes—as well as many others not referred to —in the doc sub-directory of your Firebird 2.5 installation.

An automated Release Notes page in the Tracker provides lists and links for all of the Tracker tickets associated with this and other pre-release versions. Use this link.

--The Firebird Project

back to top of page
<< | Firebird 2.5.3 Release Notes | New in Firebird 2.5 >>