Bugs fixed Firebird 2.5.2 release

<< Firebird 2.5.2 security update 1, March 2013 | Firebird 2.5.3 Release Notes | Firebird 2.5.1 release >>

Bugs fixed


Firebird 2.5.2 release

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

Improvements

(CORE-3727) Improvement :: Support was added for C preprocessor flags in the Firebird build system.

implemented by A. Peshkov

~ ~ ~

(CORE-3656) Improvement :: Support for sweep information in Trace API.

implemented by V. Khorsun

~ ~ ~

(CORE-3598) Improvement :: TRACE now produces statistics of actions that happen after a transaction has finished.

implemented by V. Khorsun

~ ~ ~

(CORE-3539) Improvement :: TRACE now provides the ability to log errors that occur in runtime (lock conflicts, key violations, et al.)

implemented by V. Khorsun

~ ~ ~

(CORE-2668) Improvement :: A note is now written into firebird.log when an automatic sweep is started.

implemented by V. Khorsun

~ ~ ~

(CORE-2666) Improvement :: It is now possible to use the API to do a remote backup/restore. See also /doc/README.services_extension in your Firebird installation.

implemented by A. Peshkov

~ ~ ~

back to top of page

Core engine

(CORE-3877) The functions CHAR_TO_UUID and UUID_TO_CHAR worked wrongly on big-Endian platforms.

Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-3855) Blobs inserted into GLOBAL TEMPORARY TABLE ON COMMIT DELETE ROWS could be placed into newly allocated pages even if there was enough free space on an existing data page.

Fixed by V. Khorsun

~ ~ ~

(CORE-3853) A database created in Firebird 2.5.1 could cause the IS NULL predicate to be evaluated differently if that database was used with Firebird 2.5.0.

Fixed by D. Yemanov

~ ~ ~

(CORE-3844) Validation was failing to detect a certain case of index corruption.

Fixed by V. Khorsun

~ ~ ~

(CORE-3841) A database could be left corrupted when rows were inserted.

Fixed by V. Khorsun

~ ~ ~

(CORE-3825) When a transaction started with the isc_tpb_autocommit option tried to run DDL using EXECUTE STATEMENT, it would produce a bugcheck 287 (too many savepoints).

Fixed by V. Khorsun

~ ~ ~

(CORE-3799) The WITH CALLER PRIVILEGES option would not work with the AUTONOMOUS TRANSACTION option.

Fixed by V. Khorsun

~ ~ ~

(CORE-3792) Performance of batch inserts was degraded.

Fixed by V. Khorsun

~ ~ ~

(CORE-3791) Performance would degrade when the engine was actively working with databases bigger than the available amount of RAM.

Fixed by N. Samofatov, D. Yemanov

~ ~ ~

(CORE-3761) A conversion error could occur when using a BLOB as an argument for the EXCEPTION statement.

Fixed by D. Yemanov

~ ~ ~

(CORE-3730) The function isc_dsql_exec_immed2() would lose an input parameter value when passing it to the RETURNING clause.

Fixed by D. Yemanov

~ ~ ~

(CORE-3722) IS NOT DISTINCT FROM NULL was not using an index when it could have done so.

Fixed by D. Yemanov

~ ~ ~

(CORE-3697) A string truncation error could occur when selecting from a VIEW with UNION inside.

Fixed by D. Yemanov

~ ~ ~

(CORE-3692) It was impossible to drop a NOT NULL constraint on a column participating in a UNIQUE constraint.

Fixed by D. Yemanov

~ ~ ~

(CORE-3690) Wrong warning messages were being returned for some ambiguous queries.

Fixed by V. Khorsun

~ ~ ~

() Utilities had to be prevented from exporting entry points due to bugs that can occur when they were used with some external functions in embedded mode.

Note: The only exception is the Superserver binary, which must export the ISC API.

Fixed by A. Peshkov

~ ~ ~

(CORE-3675) CREATE INDEX was treating NULL and empty string in compound indices as though they were the same.

Fixed by D. Yemanov

~ ~ ~

(CORE-3631) Duplicate records with NULLs were being checked incorrectly.

Fixed by V. Khorsun

~ ~ ~

(CORE-3610) It was possible to insert duplicate keys into a unique index.

Fixed by V. Khorsun

~ ~ ~

(CORE-3601) Incorrect TEXT BLOB charset transliteration was occurring on VIEWs with triggers.

Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-3599) Dropping the system role RDB$ADMIN was allowed.

Fixed by A. Peshkov

~ ~ ~

(CORE-3579) A table could not be dropped when a computed column depended on another column that was created after it.

Fixed by V. Khorsun

~ ~ ~

(CORE-3557) The server would crash while preparing a query against a table that was in the process of being dropped.

Fixed by V. Khorsun

~ ~ ~

(CORE-3490) Concurrency problems could occur when named cursors were being used.

Fixed by D. Yemanov

~ ~ ~

(CORE-3238) Make GEN_UUID() return a compliant RFC-4122 binary UUID . Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-3092) ROW_COUNT was not being cleared before the singleton INSERT statement.

Fixed by D. Yemanov

~ ~ ~

(CORE-2457) UNICODE_CI collation was causing an internal gds software consistency check.

Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1997) Foreign key handling for multi-segmented index using multi-level collations was broken.

Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1992) Error bad BLR -- invalid stream for union select was being thrown inappropriately.

Fixed by D. Yemanov

~ ~ ~

(CORE-927) Grants would not work for procedures used inside views.

Fixed by D. Yemanov

~ ~ ~

back to top of page

Server crashes

(CORE-3884) The server could crash on preparing an empty query when trace was enabled.

Fixed by D. Starodubov, V. Khorsun

~ ~ ~

(CORE-3873) The server could crash while switching to the shadow if a disk I/O fault happened while flushing the cache.

Fixed by D. Yemanov

~ ~ ~

(CORE-3834) Using a NATURAL JOIN with a derived table could crash the server.

Fixed by D. Yemanov

~ ~ ~

(CORE-3814) The SuperClassic server could crash when performing a database shutdown with Forced Writes off.

Fixed by V. Khorsun, D. Yemanov

~ ~ ~

(CORE-3636) The Trace API was causing the v.2.5.1 server to crash.

Fixed by V. Khorsun

~ ~ ~

(CORE-3627) The server could crash with an access violation when inserting a row into a table with a unique index.

Fixed by A. Peshkov

~ ~ ~

back to top of page

Data Manipulation Language

(CORE-3807) Error Invalid expression in the select list could be raised unexpectedly if a string literal were used inside a GROUP BY clause in a multi-byte connection.

Fixed by D. Yemanov, A. dos Santos Fernandes

~ ~ ~

(CORE-3806) Wrong data was being returned when a subquery or a computed field referred to the base table in the ORDER BY clause.

Fixed by D. Yemanov

~ ~ ~

(CORE-3777) Unexpected conversion error from string errors could occur when using GROUP BY.

Fixed by D. Yemanov

~ ~ ~

(CORE-3683) Wrong results were being produced if a recursive query contained an embedded GROUP BY clause.

Fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-3736) The WITH LOCK clause was being allowed for users with read-only rights on some table, thus blocking others from updating that table.

Fixed by A. Peshkov

~ ~ ~

(CORE-3611) Wrong results could occur while retrieving from CTEs or derived tables where the same column names were repeated.

Fixed by A. dos Santos Fernandes

~ ~ ~

back to top of page

Command-line utilities

fb_lock_print

(CORE-3686) Incorrect (zero) values were being reported for acquire blocks and mutex wait counters in the fb_lock_print output.

Fixed by D. Yemanov

~ ~ ~

fbsvcmgr

(CORE-3658) The fbsvcmgr utility was connecting to the server under the operating system user name instead of the value of the ISC_USER environment variable.

Fixed by A. Peshkov

~ ~ ~

fbtracemgr

(CORE-3770) The fbtracemgr utility would load CPU up to around 55 per cent when no activity was present.

Fixed by A. Peshkov

~ ~ ~

(CORE-3769) Message Unknown tag (4) in isc_svc_query() results would appear when fbtracemgr was interrupted by [Ctrl-C].

Fixed by A. Peshkov

~ ~ ~

gbak

(CORE-3875) gbak was failing to check parameters correctly and would back up a random database specified with -B “:”.

Fixed by A. Peshkov

~ ~ ~

(CORE-3802) Firebird 2.5.1 could run out of memory while restoring from a database backup.

Fixed by A. dos Santos Fernandes, D. Yemanov

~ ~ ~

(CORE-3733) gbak was failing to fix the system generators while restoring.

Fixed by A. Peshkov

~ ~ ~

(CORE-3649) gbak was deleting the backup file even if an error occurred after it had already already been successfully closed.

Fixed by A. Peshkov

~ ~ ~

gsec

(CORE-3762) gsec would return a zero return code (no error) on some errors.

Fixed by A. Peshkov

~ ~ ~

isql

(CORE-3810) In isql, a division by zero and a core dump would result when the -pag 0 command switch was used with a SQL script that included the SET HEADING directive.

Fixed by V. Khorsun

~ ~ ~

back to top of page

Database monitoring/administration

(CORE-3625) MON$IO_STATS was not reporting page writes performed asynchronously (at the AST level).

Fixed by D. Yemanov

~ ~ ~

(CORE-2286) Selecting from MON$CALL_STACK within a PSQL module would sometimes return zero rows.

Fixed by D. Yemanov

~ ~ ~

back to top of page

Trace/Audit

(CORE-3860) A faulty database filter in the Trace API could crash the server.

Fixed by V. Khorsun

~ ~ ~

(CORE-3845) When a “heavy” query was interrupted, its duration would be logged as zero milliseconds in trace statistics.

Fixed by V. Khorsun

~ ~ ~

back to top of page

Services Manager

(CORE-3612) gfix-related services could lose an error value in the status vector in isc_service_start().

Fixed by A. Peshkov

~ ~ ~

back to top of page

POSIX-only bugs

(CORE-3912) SuperClassic was exhibiting a segmentation fault because the GlobalPtr<> for variable INET_select was missing.

Fixed by A. Peshkov

~ ~ ~

(CORE-3750) Increasing limits on POSIX could give rise to errors.

Fixed by A. Peshkov

~ ~ ~

(CORE-3721) The multi-user server startup script (/etc/init.d) was picking up the ISC_ variables if they were set.

Fixed by A. Peshkov

~ ~ ~

(CORE-3646) Segmentation faults were occurring in FreePascal multi-threaded programs when using the v.2.5.x client library on Linux.

Fixed by A. Peshkov

~ ~ ~

(CORE-3609) Option -t was being displayed twice by fb_inet_server -h.

Fixed by A. Peshkov

~ ~ ~

(CORE-3607) Solaris does not define the RLIMIT_NPROC limit, thus causing compilation of src/remote/inet_server.cpp to fail on that platform.

Fixed by A. Peshkov

~ ~ ~

(CORE-3606) Linker commands that use a C or C++ compiler should apply CFLAGS and CXXFLAGS respectively, to avoid compilation problems on Solaris.

Fixed by A. Peshkov

~ ~ ~

(CORE-3605) GLOB_OPTIONS mixed CFLAGS and CXXFLAGS as though they were interchangeable across platforms; yet they could have exclusive differences, due to differences in compiler implementations.

Fixed by A. Peshkov

~ ~ ~

back to top of page

Mac OS X Lion

(CORE-3911) The API entry points Bopen and BLOB_open were not visible on Mac OSX.

Fixed by A. Peshkov

~ ~ ~

(CORE-3786) Firebird 2.5.1 Classic (32-bit) would hang on creating a database in isql immediately after a reboot. Note, if isql was then killed, retrying the operation would succeed and would not fail again until the next reboot. The problem was reproducible about 90% of the time.

Fixed by P. Beach, A. Peshkov

~ ~ ~

(CORE-3740) SELECT using the IN() operator with 153 or more elements in the argument would cause a crash in the standard 64-bit binary. This turned out to be an issue with the optimization set (flag -O3) used with the compiler.

Fixed by P. Beach, A. Peshkov

~ ~ ~

(CORE-3682) Firebird 2.5.1 would hang on attaching to a second database.

Fixed by P. Beach, A. Peshkov

~ ~ ~

back to top of page

Remote interface/API

(CORE-3819) Resolution of service name to port address in the database connection string could be performed wrongly.

Fixed by V. Khorsun

~ ~ ~

(CORE-3812) A client could lose its connection to the database during a session where huge numbers of primary keys were being dropped and/or altered.

Fixed by V. Khorsun

~ ~ ~

(CORE-3801) Warnings could appear twice in the status vector.

Fixed by V. Khorsun

~ ~ ~

(CORE-3778) An access violation could occur at connection shutdown.

Fixed by V. Khorsun

~ ~ ~

(CORE-3732) Closing an attachment to a database could cause a segmentation fault.

Fixed by A. Peshkov

~ ~ ~

(CORE-3569) CHAR(32767) was presented in the XSQLVAR with length 32765.

Fixed by D. Yemanov

~ ~ ~

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