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.
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 thenBackup
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 theRETURNING
clause have been implemented for Embedded SQL (ESQL).
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.
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.
- A note is now written into
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 variablesGDSCODE
andSQLCODE
that are used inWHEN
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.
- The undoing, on rolling back the transaction, of changes made to GTTs that were created with the
- 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 aDELETE FROM MON$xxx
or anfb_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.
- Any unused bytes of
- 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.
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:
- 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.
- 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.
- 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.
Documentation
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 >>