Bugs fixed Firebird sub-release 2.0.1

<< Sub-release 2.0.2 | Firebird 2.0.7 Release Notes | Firebird 2.0 >>

Bugs fixed


Sub-release 2.0.1


(CORE-1140) The server would crash when performing garbage collection during index creation. The problem related to the existence of expression indices on the same table. ixed by D. Yemanov

~ ~ ~

(CORE-1139) NBackup was failing to delete the delta file after a successful backup on Win32 Classic.

fixed by D. Yemanov

~ ~ ~

(CORE-1136) NBackup was not able to back up a recently created database.

fixed by D. Yemanov

~ ~ ~

([[https://tracker.firebirdsql.org/browse/CORE-1133 | CORE-1133]) The XNET (IPC) communication protocol would not work across session boundaries.

fixed by V. Horsun

~ ~ ~

(CORE-1130) Bad optimization was occurring when a procedure was left joined with a view or subquery.

fixed by D. Yemanov

~ ~ ~

(CORE-1127) Circular index references in a corrupt database would cause fbserver to go into an infinite loop.

fixed by D. Downie, V. Horsun

~ ~ ~

(CORE-1126) An arithmetic exception was being thrown when UNION sets involved UTF8 literals.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1124) NBackup would not work in interactive mode on Windows.

fixed by D. Yemanov

~ ~ ~

(CORE-1121) NBackup exhibited a page-level deadlock (bugcheck 215) when attempting to lock/back up a database under load.

fixed by D. Yemanov, G. Sergeev

~ ~ ~

(CORE-1110) The function isc_get_client_xxx_version() was not fully compatible with the InterBase version of the gds32.dll Windows client library.

fixed by V. Horsun

~ ~ ~

(CORE-1104) The Linux install would fail if the x0rfbserver program was running.

fixed by A. Peshkov

~ ~ ~

(CORE-1025) The server would crash at runtime when an explicit MERGE plan was specified over multiple JOIN elements.

fixed by D. Yemanov

~ ~ ~

(CORE-1016)Checking the configured UdfAccess setting was not being performed until after the library had been loaded and its startup code had been executed.

fixed by A. Peshkov

~ ~ ~

(CORE-943) Database shutdown was being executed incorrectly when the database was in physical backup mode.

fixed by D. Yemanov

~ ~ ~

(CORE-1094) isc_dsql_sql_info() was returning unordered SQLVAR descriptors.

fixed by D. Yemanov

~ ~ ~

(CORE-1080) Bugcheck 167 (invalid SEND request) occurring in Superserver. This was a long-standing bug in Superserver: when several parallel attachments began executing a trigger that had not yet been loaded into the metadata cache, the first of them would compile the trigger request's BLR but others would not wait until the request compilation finished. Hence, other attachments would execute a NULL request. Protection from such failures existed in MET_procedure using dbb_sp_rec_mutex for stored procedures, but not for triggers.

fixed by V. Horsun

~ ~ ~

(CORE-1012) Since Firebird 1.5.3, neither the relation name nor the alias was being returned for columns participating in a GROUP BY aggregation with joins. This problem was reported to affect particularly applications using IB Objects, which maintains internal structures to support live searching of tables underlying joined and aggregated sets.

fixed by A. Dos Santos Fernandes

~ ~ ~

(CORE-1068) isql was not printing non-nullable blobs, due to incorrect checking of the XSQLVAR structure.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1064) The backup order in gbak was wrong for character sets and collations. Character sets and collations were being backed up after tables and hence they were being restored after tables. The problem became obvious when restoring with the -ONE_AT_A_TIME switch, where a table definition used non-system character sets or collations.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1063) The Server could hang, eating CPU and performing huge I/O copying different codepage fields. Under certain conditions, notably when multi-byte character sets were involved, an endless loop or a transliteration exception could occur wherein BLOB segments of zero length were being created and empty BLOB pages were being stored until resources were exhausted.

fixed by V. Horsun

~ ~ ~

(CORE-944, CORE-982, CORE-1059) This set of bug fixes fixed cases reported in several crash reports on POSIX platforms, involving execution of stored procedures where both BLOBs and external function calls were involved.

fixed by A. Peshkov

~ ~ ~

(CORE-1057) GSEC was exhibiting a bug where it was hiding errors on a call to CryptAcquireContext().

fixed by A. Peshkov, A. dos Santos Fernandes

~ ~ ~

(CORE-1055) Parameter matching for self-referencing stored procedures was wrong.

fixed by D. Yemanov

~ ~ ~

(CORE-1053) A SELECT statement could return invalid results when an index was to evaluate a greater than predicate in a WHERE clause. The erroneous logic would occur if the key value changed exactly at the beginning of the index block.

For example, the statement:

 SELECT * FROM Table WHERE IntField > Constant
 would return fewer records than
 SELECT * FROM Table WHERE IntField >= Constant+1

fixed by A. Peshkov, A. Brinkman

~ ~ ~

(CORE-1051) A bug was found in DFW\check_dependencies that could corrupt the stack.

fixed by V. Horsun

~ ~ ~

(CORE-1046) A bug was causing a core dump in CVT_move.

fixed by D. Yemanov

~ ~ ~

(CORE-1040) A wrong single-segment ascending index could occur on a character field if there were NULLs and empty string values in the column.

fixed by V. Horsun, A. Brinkman

~ ~ ~

(CORE-1020, CORE-1037) Some inconsistencies of installation components could happen with command-line use of the Win32 Installer. The problem areas were fixed.

Note: Previously, the Guardian was installed by default, whether the Classic or Superserver installation was selected. In Firebird 2.0 and higher, Guardian is not installed with Classic and should not be. It is not necessary and, in some Classic environments, it has been considered a possible cause of ghost connections and, thus, resource leakage.

fixed by P. Reeves

~ ~ ~

(CORE-1033) In some views, the LIKE clause would not work for computed values.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1029) Bad plans could be generated for queries with outer joins having IS NULL clauses, depending on the order of the search predicates.

fixed by D. Yemanov

~ ~ ~

(CORE-1020) The server could crash at run-time when an explicit MERGE plan was specified to override one that would have used a few JOIN phrases instead.

fixed by D. Yemanov

~ ~ ~

(CORE-1017) Windows service attachments using the Xnet protocol would fail when Classic had been started with the -x -i (Xnet and TCP/IP) parameters set.

fixed by D. Yemanov

~ ~ ~

(CORE-1011) The server would crash if an application tried to connect to it via an InterBase version of gds32.dll.

fixed by A. Peshkov, D. Yemanov

~ ~ ~

(CORE-1010) The server could crash if an executing DDL statement raised an exception.

fixed by D. Yemanov

~ ~ ~

(CORE-1006) Rollback or garbage collection would cause an access violation (segfault) if an updated table had an expression index defined by a subquery.

fixed by V. Horsun

~ ~ ~

(CORE-1005) A DISTINCT query that specifed NULLS LAST in an ORDER BY clause would return NULLs in the wrong position.

fixed by D. Yemanov

~ ~ ~

(CORE-1004) Conditions could occur where the error Context already in use (BLR error) would be wrongly thrown when accessing explicit cursors in PSQL.

fixed by D. Yemanov

~ ~ ~

(CORE-997) An old bug with indices on a character column with a COLLATE attribute became more visible and made it impossible to upgrade the database from ODS 10.1 to ODS 11. The restore would wrongly report the error internal gds software consistency check (index key too big (nnn)).

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-988) On Linux, using the 32-bit Superserver with the old threading model, the server would repeatedly crash. Due to a bug in some versions of glibc, errno contained garbage after sem_timedwait().

Obviously, a clean fix is not in order. However, considering that people often try to use Firebird with such buggy versions and tend to blame Firebird for the problem, and that upgrading glibc is not trivial operation for many, a hack has been done to the body of the class semaphore. It now works correctly with both the normal and the broken versions of glibc.

fixed by A. Peshkov

~ ~ ~

(CORE-984) Using the Windows client (fbclient.dll) to open a database connection was changing the security descriptor of the process that called the library functions, making it impossible for other processes to share handles with synchonization objects or with other handles.

fixed by D. Yemanov

~ ~ ~

(CORE-966) Socket binding for events exhibited bugs whereby the setsockopt call in inet.cpp was using an uninitialised variable and did not handle errors properly. It resulted in INET/inet_error: bind errno = 10048 errors reported in the log whenever clients bound to database events.

fixed by P. Beach

~ ~ ~

(CORE-959) gstat would not work using the localhost connection string. Since v1.5, it has been possible to run gstat using a pseudo-remote connection string (localhost:<path>) but it was broken in v2.0.

fixed by D. Yemanov

~ ~ ~

(CORE-952) Using a BLOB in an expression index would cause an access violation (segfault).

fixed by V. Horsun

~ ~ ~

(CORE-888) A number of people reported getting the Object in use when attempting to alter, recreate, replace or drop a stored procedure or trigger whilst the existing trigger or SP was in use. It was not a bug, per se, but an intentional restriction. The restriction has been removed (reverted to 1.5 behaviour). Thus it is again possible to perform these types of DDL operations on live objects, and incur the same window of unpredictable effect for Classic users as in previous versions.

Reversion done by D. Yemanov

back to top of page
<< Sub-release 2.0.2 | Firebird 2.0.7 Release Notes | Firebird 2.0 >>