Firebird Documentation IndexFirebird 2.5 Release NotesBugs Fixed → Old Bugs Fixed
Firebird Home Firebird Home Prev: Firebird 2.5.0 ReleaseFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.5 Project Teams

Old Bugs Fixed

Core Engine/API
Server/Client Crashes
Database Monitoring/Administration
Data Manipulation Language
Command-line Utilities
Services Manager
Remote Interface/API
Security
International Language Support
POSIX-specific
Windows-specific
MacOSX-specific
Miscellaneous Bugs

The following bugs were reported as fixed during Firebird v.2.5 development:

Core Engine/API

(CORE-3034)     If a request was cancelled for some reason, such as database shutdown or by a user request, while inserting key into an expression index, it could lead to bugcheck 300 (can't find shared latch).

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3016)     On disconnect a “Fatal lock manager error: invalid lock id (0), errno: 0” could show up in firebird.log.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3015)     Various “Cannot initialize the shared memory region” errors were reported.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3003)     New checks for the existence of a SUSPEND statement in a procedure being called via SELECT statement were working properly: if the procedure was called via a SELECT statement and SUSPEND was not present, an error would be thrown, e.g., “Procedure ... is not selectable (it does not contain a SUSPEND statement)”.

However, if the same error condition occurred during a RESTORE, it could cause the restore to fail.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2995)     A single error in the status vector was being reported twice.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2993)     On a highly loaded system, the fatal lock manager error “Invalid lock id (NNN)” could occur while working with monitoring tables.

fixed by V. Khorsun, D. Yemanov

    ~ ~ ~     

(CORE-2900)     Using a request containing an aggregated DISTINCT could cause regular but random memory access violations.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2977)     The server was working incorrectly with indexed fields of type DATE in databases with ODS lower than 10.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2965)     The ROW_COUNT value returned after a subquery involving a SINGULAR predicate was inconsistent with the rules, viz., ROW_COUNT is meant to count rows affected by an update or delete and should not return non-zero value from subqueries.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2956)     Problems with requests processing procedure parameters.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2943)     An error would occur during parsing of a recursive query with two recursive parts.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2936)      If two consecutive leaf index pages were removed (garbage collected) from an index simultaneously by two different connections, the linked list of sibling pages could be broken, with the sibling pointer at another index page left pointing to the freed index page. When the freed page was allocated again, index corruption would be reported as “Wrong page type (expected 7 found N)”.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2916)     Error handling was broken in the case of a conversion error occurring during index creation.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2893)     An expression within a subquery could be treated as invariant and produce incorrect results.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2879)     Sweep could raise the error page 0 is of wrong type (expected 6, found 1).

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2876)     Unintelligent error handling when using ALTER DATABASE ADD DIFFERENCE FILE could cause the engine to get confused about the backup mode of a database.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2875)     Comparing a CHAR column longer than 4096 bytes with a string constant would cause a string right truncation error.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2871)     If a derived table or a view contained both a left/right join and an ORDER BY clause and the outer query also contained an ORDER BY clause, the outer ORDER BY clause would have no effect.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2858)     Memory trashing was possible when raising some exceptions to signal failed security checks.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2856)     A non-NULL key in a unique index could not be found when the key was removed

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2833)     Changing data that affected an expression index would fail if that data contained references to null date fields.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2826)     Join condition would fail for UTF-8 databases.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1089)     Selecting from a view that used DISTINCT and LEFT JOIN returned records in the wrong order if the ORDER BY clause did not include columns from the right-side (non-mandatory) table.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-195)     Regression of an old bug, previously fixed in v.1.5.1, whereby a bugcheck 291 (cannnot find back record version) would occur when updating the same record that had already fired an action in a BEFORE UPDATE trigger. The regression that was reintroduced in v.2.0 was less destructive, insofar as it affected only the record that was physically first in the table.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2822)     The error “no current row for fetch operation” was being thrown when a subquery included a non-trivial derived table.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2820)     Queries with PLAN ORDER were exhibiting small memory leaks as a side effect of an earlier, major fix.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2815)     Tidy-up of a logic condition that could cause the page inventory page to be marked for change after it was already changed.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2785)     An improperly handled BLOB transliteration problem showed up under specific conditions, viz., where an input argument string in single-byte Cyrillic text, for storing as COMMENT with an object definition, overstepped the maximum 64 KB size of a non-initial BLOB segment when transliterated. Its surplus bytes were causing an immediate transliteration error instead of being deferred for inclusion in the subsequent chunk, as they should have been.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2783)     An access violation would occur when a recursive query was used as a subquery in the SELECT list and its result was specified as an ORDER BY criterion.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2730)     A bus error could occur when working with DB_KEY on RISC machines: when casting from a literal (which has no alignment requirements) to db_key, alignment is necessary at the QWORD boundary and should have been enforced.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2722)     Storage of a malformed blob was being allowed when copying from a blob with NONE/OCTETS character set.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2660)     COUNT(*) would incorrectly return 0 when a match was not found for an outer join condition. Now it correctly returns NULL.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2659)     The query plan for an outer join involving complex views could be sub-optimal, by not making use of an available index.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2640)     Under some conditions, the lock manager could fail to detect a regular deadlock and cause the server to hang.

fixed by V. Khorsun, D. Yemanov

    ~ ~ ~     

(CORE-2635)     A unique index could be corrupted at level 1 if it contained a lot of NULL keys.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2632)     Unexpected “Invalid BLOB ID” errors could occur when working with the monitoring tables.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2616)     Error “page <N> is of wrong type (expected 7, found 5)” could occur under load, giving the impression that something had corrupted the database. On restart, there would be no evidence of corruption.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2608)     On latter versions of Windows (64-bit XP or later, 32-bit Vista or later), when Firebird is working with large databases, the operating system dedicates all RAM to the filesystem cache and stops responding. Windows may also crash.

It is a documented issue. For Firebird, it has been addressed by implementing a new parameter, FileSystemCacheSize in firebird.conf to control the amount of RAM used for filesystem caching.

fixed by N. Samofatov

    ~ ~ ~     

(CORE-2602)     Attachments using character set NONE could fail to read from the monitoring tables.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2591)     High mutex wait ratio and degraded performance would start to show up after a period of normal performance.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2581 and CORE-2582)     Infinity and NAN results from any expressions, including internal and external function calls, were not trapped by the engine as exceptions in some circumstances.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2578)     Selecting RDB$DBKEY from a view with more than one table joined would return a conversion error.

fixed by A. dos Santos Fernandes, A Peshkov

    ~ ~ ~     

(CORE-2514)     An error concerning CreateFile was being reported when space on the 'temp' drive was insufficient.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2422 and CORE-2321)     The server was not switching between multiple locations configured in TempDirectories. Instead, the sorting would fail when the first configured temporary directory had insufficient free space. Typically, the user would see a sorted or other query that required a large amount of temp space fail with an error like 'operating system directive write failed. Invalid argument.'

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2315)     Firebird FLOAT support did not conform to the original InterBase specification. According to the IB documentation, a FLOAT value should have a range from 1.175E-38 to 3.402E38. Cross-platform tests proved that the largest value that would not overflow was < 3.4E38.

fixed by W. Oliver

    ~ ~ ~     

(CORE-1991)     When a UDF was declared with BLOB parameters, the engine was storing null in RDB$FUNCTION_PARAMETERS.RDB$FIELD_LENGTH. This was causing a run-time 'message length error'.

fixed by D. Sibiryakov

    ~ ~ ~     

(CORE-1781)     The engine would throw a consistency check error when a subquery was ordered by an aggregate function from another context.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2564)     Bus errors would be thrown when working with the monitoring tables on RISC machines.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2550)     Bus errors would be thrown when working with DB_KEY on big-Endian machines.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2538)     PSQL would not allow use of a singleton query result as an input parameter to a stored procedure if the procedure was called using EXECUTE PROCEDURE.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2532)     Volume sizes in a multi-volume database were being assigned incorrectly.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2526)     The server could be shut down without regard to connections to services.

fixed by A. Peshkov, D. Yemanov

    ~ ~ ~     

(CORE-2505)     Built-in trigonometric functions could produce NaN and Infinity.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2501)     Binary shift functions would give wrong results with negative shift values.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2499)     The implementation limit of DISTINCT items was not being enforced, causing incorrect BLR to be generated.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2482)     Monitoring tables data collection was unstable when the database was accepting attachments or detachments.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2475)     External table data was not visible to Classic sessions other than the first to access the table.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2449)     An unexpected “lock conflict” error could be thrown in lieu of the expected exception.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2444)     The engine could hang when multiple attachments registered their interest in events simultaneously and free space in the events table became exhausted.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2426)     ALTER TABLE was not respecting collations.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2416)     Preparing a query with aggregation over a derived table would cause an access violation.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2411)     The optimizer would choose a slower PLAN for certain types of query than it would in versions 2.0.4 and 2.1.1. (The bug affected versions 2.0.5 and 2.1.2 as well.)

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2397)     Dropping more than one index on a table within the same transaction could cause corruption.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2359)     Logical multibyte maximum string length was not respected when assigning numbers.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2331)     ALTER DOMAIN would result in an invalid RDB$FIELD_SUB_TYPE value being stored.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2272)     The server would start returning garbage when killing an events connection attempt.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1971)     Set the fixed and documented evaluation order (always left to right) for the WHERE clause and other predicates.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1346)     LPAD() and RPAD() functions hit implementation restrictions when applied to more than one column in a statement.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2356)     On Windows the listener process of Classic Server was unable to create the necessary resources after restart if any worker process was present.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2355)     Incorrect handling of LOWER/UPPER when result string shrinks in terms of byte length.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2351)     It was not possible to create a database whose <file specification> was an alias, even though the alias existed.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2349)     The “Invalid SQLDA” error was being falsely thrown.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2348)     More database corruption problems showed up resulting from transaction numbers overflowing 32-bit signed integer.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2340)     Bugcheck 258 (page slot not empty) could occur under high concurrent load.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2320)     A complex recursive query did not always return all rows.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2313)     INF_* functions could invalidate the whole output buffer with isc_info_truncated at the beginning, due to a boundary condition.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2311)     A WITH RECURSIVE query could cause memory leakage.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2300)     The second evaluation of SUBSTRING() would throw an unexpected arithmetic exception, numeric overflow, or string truncation error.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2289)     The wrong name was being reported for the referenced primary key when a foreign key violation occurred during foreign key creation.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2242)     The engine was incorrectly populating integer containers in the blob parameter buffer (BPB) with integers in machine-local format, causing errors on Big Endian platforms.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2241)     If an ALTER TABLE ALTER COLUMN.. operation was performed on a table in the course of a bulk insert operation, minor index corruption could occur causing subsequent queries to return the wrong number of records. The bug was traced to legacy code in BTR\compress_root().

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2230)     Input parameters for EXECUTE BLOCK were not being domain-checked.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2186)     In the Windows embedded server, fbintl.dll was not being unloaded after the isc_dsql_execute_immediate() during the processing for CREATE DATABASE.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2182)     It was not possible to drop an existing UDF whose name was duplicated by the name of a new built-in function.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2154)     A “request synchronization error” would occur when calling isc_dsql_sql_info() with the isc_info_sql_records parameter after the last record had been fetched with EXECUTE PROCEDURE.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2132)     Indexed retrieval could not be chosen if a stored procedure call was used in the comparison predicate.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2117)     Incorrect ROW_COUNT values were being returned with indexed retrieval and subqueries.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2115)     For some long queries the query plan could go missing.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2101)     A Bugcheck 249 (pointer page vanished) error would be thrown when an attempt was made to fetch beyond the end-of-stream mark of an open PSQL cursor.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2098)     It was not possible to create a view that selected from a global temporary table.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2078)     If selective non-indexed predicates were involved in a join, the join plan was not optimized as well as it could be.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2075)     Parts of the RDB$DB_KEY of views could be inverted when using outer joins.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2073)     Expression indices bug: incorrect result for the inverted boolean.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2069)     Incorrect view expansion when RDB$DB_KEY was used inside a view body.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2068)     Comparision would return a wrong result with the IN <subquery_expression> operand if the <subquery_expression> argument involved the RDB$DB_KEY.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2067)     GROUP BY and RDB$DB_KEY problems

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2066)     Conversion of SQL_TEXT / SQL_VARCHAR to SQL_TIMESTAMP / SQL_TIME / SQL_DATE

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2053)     Computed expressions could suffer from poor optimization if used inside the RETURNING clause of the INSERT statement.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2045)     A v.2.1 regression was picked up, whereby references to non-existent system fields with blr_field were not being resolved to NULL, whereas a parallel change involving blr_fld was exhibiting the proper corrective behaviour.

fixed by dos Santos Fernandes

    ~ ~ ~     

(CORE-2044)     Incorrect result for UPDATE OR INSERT ... RETURNING OLD and non-nullable columns

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2041)     UPDATE OR INSERT with GEN_ID() was causing the generator to step by 3.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2039)     Domain-level CHECK constraints were processing NULL values wrongly.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2031)     NULL in the first record in a condition on RDB$DB_KEY

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2027)     The buffer size for ORDER BY expressions involving system fields was being calculated wrongly.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2026)     Problem with a read-only marked database

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2008)     NOT NULL flag for procedure parameters in the system schema

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2002)     A conversion error from a UDF result would leave a memory leak if the result was marked with FREE_IT.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2001)     When trying to show a conversion error, the message arithmetic exception or string truncation was sometimes appearing instead.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2000)     The Lock Manager could report false deadlocks under high load.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1986)     Altering the name of a domain was causing dependencies on the domain to be dropped.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1984)     The Lock Manager could falsely report a deadlock if one of the alleged participants was waiting with a permitted timeout.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1980)     Sweeper could consume 100% of CPU indefinitely.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1970)     Lock conversion denied (215) errors could occur.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1962)     The function EXTRACT (MILLISECONDS FROM aTimeStampOrTime) was returning incorrect results.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1958)     A Bugcheck 179 (decompression overran buffer) consistency check error would be thrown when attempts were made to update the same record multiple times in a transaction.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1957)     Long access control lists (ACLs) were being truncated, causing privileges to disappear.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1943)     A statement that aggregated on a RAND() expression would return infinite rows.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1938)     Bugcheck 243 (missing pointer page) was being thrown on preparing or executing statements that referred to a table being dropped or recreated by another connection.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1936)     The built-in function LOG(base, number) was not checking parameters and would deliver NAN values for out-of-range input instead of excepting.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1914)     If a problem occurred during table creation, the database could be left in an inconsistent state.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1812)     For some date/time expressions in dialect 1, indexes were not being used when they should have been.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1650)     An improbable case was demonstrated whereby something like SELECT GEN_ID(..) FROM RDB$DATABASE with a GROUP BY operation would cause rows to be generated infinitely.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1607)     A correlated subquery that depended on a UNION stream would be poorly optimized.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1606)     Ability to insert child record if parent record is locked but foreign key target unchanged

fixed by A. Potapchenko, V. Khorsun

    ~ ~ ~     

(CORE-1575)     Multiple updates to a table in a single transaction would throw up a serious memory bug.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1544)     When a user application created “temporary” stored procedures in run-time for some run-time purpose, the internal generator for the RDB$PROCEDURES.RDB$PROCEDURE_ID column could easily overflow the 32K limit (a signed SMALLINT) in its internal generator and cause a “numeric overflow” exception on trying to create the new stored procedure.

The fix wraps around the generated value at the 32K boundary, allowing reuse of existing gaps in the ID numbering. A similar fix was applied to RDB$GENERATORS and RDB$EXCEPTIONS as well.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1343)     Simple case and a subquery

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1246)     Outer joins with derived tables returned incorrect results.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1245)     Outer joins with views returned incorrect results.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-903)     Firebird's behaviour with regard to multiple assignments referring to the same column in the SET clause of an UPDATE statement did not comply with the standard.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-501)     COALESCE exhibited an optimization problem.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-216)     Privileges could be lost if a database contained too many.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1421)     SuperServer could not shut down immediately if the shutdown request followed a failed login attempt.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1907)     Dropping and adding a domain constraint in the same transaction would leave incorrect dependencies.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1905)     Hash sign (#) in filenames in aliases.conf was being handled incorrectly.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1887)     Newly created databases had wrong access rights.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1869)     Roles granting/revoking logic differed between v.2.0 and v.2.1.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1841)     If some VIEW used derived tables and long table names/aliases, it was possible to overflow RDB$VIEW_RELATIONS.RDB$CONTEXT_NAME.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1840)     Each DDL execution would cause a small memory leak.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1838)     SET STATISTICS INDEX on an index for a GTT could wrongly change the index id by the maximum available number for the database page size.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1830)     Possible index corruption with multiple updates of the same record in the same transaction with savepoints being used.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1817)     The RelaxedAliasChecking parameter was having no effect with regard to RDB$DB_KEY.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1811)     Parser reacted incorrectly to the unquoted usage of the keyword “VALUE”.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1798)     RDB$DB_KEY was being evaluated as NULL in INSERT ... RETURNING.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1797)     OLD/NEW.RDB$DB_KEY returned incorrect result in triggers.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1784)     Error with EXECUTE PROCEDURE inside EXECUTE STATEMENT.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1777)     Conflicting table reservation specifications were being allowed in the TPB.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1775)     Security checking was performing poorly during prepare.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1770)     Bugcheck 291 in DDL.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1735)     Behavour problem with SET DEFAULT action argument in referential integrity triggers.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1731)     Sometimes engine would hang for several minutes, using 1000% CPU load but with no I/O activity.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1730)     Problems arose if one of the directories specified in the TempDirectories config setting was not available.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1724)     Common table expressions could not be used in computed columns nor in quantified predicates (IN / ANY / ALL).

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1694)     Bug in CREATE/ALTER database trigger, where comments were in Russian.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1693)     Error in EXECUTE STATEMENT inside CONNECT / TRANSACTION START triggers.

fixed by A. dos Santos Fernandes, D. Yemanov

    ~ ~ ~     

(CORE-1689)     There are <n> dependencies” error message shows the wrong count of dependent objects

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1357)     DummyPacketInterval mechanism was broken.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1307)     Switch -s of fb_inet_server was not being processed correctly

fixed by A. Peshkov

    ~ ~ ~     

(CORE-479)     Grants would overwrite previous entries in RDB$SECURITY_CLASSES.

fixed by A. Peshkov

    ~ ~ ~     

Server/Client Crashes

(CORE-3011)     The server could hang or crash while monitoring connections that were repeatedly attaching and detaching.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2908)     The engine could crash or raise unexpected errors when working with an ODS 8.x database.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2888)     A source of memory corruption could cause incorrect query evaluation and could even crash the server.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2576)     The server could crash when parsing wrong or truncated BLR.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2455)     The server would fail when doing DROP DATABASE right after an error occurred in a statistical function.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2441)     The server could crash on executing an UPDATE OR INSERT statement.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2306)     Superserver could terminate abnormally when some worker thread failed to start.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2368)     An access violation would follow the call to isc_cancel_events() if the event was not found.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2222)     Storing a text blob with a transliterating blob filter could cause an access violation in the engine.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2137)     A database restore could crash the server when the configuration parameter DummyPacketInterval was set explicitly.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2121)     The Client library could crash in the course of an operation involving BLOBs.

c

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1983)     An out-of-memory condition in the operating system would cause an access violation.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1965)     The Lock Manager would crash with an invalid lock ID under concurrent DDL load.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1894)     Circular dependencies between computed fields would crash the server.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1963)     The server could crash on commit when granting/revoking privileges from multiple connections simultaneously.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1506)     Server crashes with isc_dsql_execute_immediate() and a zero-length string.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-210)     The Classic server would crash if the same stored procedure was being altered in two separate processes.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1930)     Possible server crash if procedure was altered to have no outputs and dependent procedures were not recompiled

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1919)     Memory corruptions in EXECUTE STATEMENT could crash the server.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1884)     Random crashes using stored procedures with expressions as default values for input parameters.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1839)     Server could crash when sorting by a field that was calculated using a recursive CTE.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1793)     Server crashes at prepare of query with unused parameterized CTE.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1512)     Server crashes due to the wrong parsing of the DEFAULT clause.

fixed by D. Yemanov

    ~ ~ ~     

Database Monitoring/Administration

(CORE-2209)     Monitoring requests in high load conditions could become very slow and even block other activity during that time.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2171)     The column MON$CALLER_ID of table MON$CALL_STACK was reporting invalid IDs.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2017)     I/O statistics for stored procedures were not being kept account of in the monitoring tables.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1944)     On Big Endian platforms, the monitoring tables contained wrong data.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1890)     Database monitoring process could hang under high load.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1881)     Database monitoring could crash the server or badly affect its page locking logic.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1728)     Database monitoring would not work after a fresh Linux install.

fixed by A. Peshkov

    ~ ~ ~     

Data Manipulation Language

(CORE-1910)     Invalid fields were accepted in the insert clause for MERGE.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1859)     Arithmetic overflow or division by zero could occur in MAX() function.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1828)     Error with ABS() function in dialect 1.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Command-line Utilities

isql

(CORE-2831)     Database and user name should not be in the output when a script is extracted.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2741)     Metadata extract would misinterpret the DDL of a CHECK constraint if the CHECK keyword was in any character mix other than all lower case or all upper case.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-915)     The metadata extract tools of isql were doubling line breaks in PSQL body code in cases where the PSQL body had been written in a third-party Windows text editor.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2408)     The isql metadata extraction process was placing default values for procedure parameters before the NOT NULL and COLLATE flags.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2407)     The isql metadata extraction process was omitting the PAGE_SIZE clause from the CREATE DATABASE statement.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2370)     An SQL plan of more than 2048 characters was not printed at all in isql.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2270)     When run in a zlogin console, isql would consume all memory and crash.

fixed by J. Swierczynski, A. Peshkov

    ~ ~ ~     

(CORE-1891)     SHOW VIEW would show nonsense information for view fields with expressions.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1875)     Errors in scripts with CURRENT_DATE.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1862)     Extracted script was unusable with interdependent selectable procedures in FB 2.1

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1782)     Isql would crash when fetching data for a column having an alias longer than 30 characters.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1749)     DDL statement with AUTODDL ON was not showing statistics.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1507)     ISQL linecount facility in scripts goes out of sync after an INPUT command.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1363)     ISQL would crash when the string converted from a double was longer than 23 bytes.

fixed by C. Valderrama

    ~ ~ ~     

gsec

(CORE-2928)     Buffer overflow in gsec

fixed by A. Peshkov

For reasons unknown, the gsec code copies the value of the password hash to an internal user data structure during a display operation. Since V.2.0, when the newer hash algorithm made the hash longer than previously, the buffer used for storing it could be too short.

This does not create a vulnerability because the hash value does not travel anywhere. It is harmless, anyway: the buffer overflow cannot be exploited because the first, middle and last names are filled immediately after the password.

It is fixed now, thus avoiding having newer versions of glibc detecting this overflow.

    ~ ~ ~     

(CORE-2528)     The gsec utility did not return error codes to the operating system.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1680)     Gsec DISPLAY was showing only a few of the first users when the security databases contained more than 50 users.

fixed by A. Peshkov

    ~ ~ ~     

gbak

(CORE-2914)     Restoring a database having an expression index referencing a non-existent UDF would cause the server to crash.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2793)     The binary representation of a backup file was demonstrated to be not consistent from one backup to another, when tested over multiple backup/restore cycles of the same data. It was reported as applicable to all gbak versions since v.1.5.4. To date, it has been fixed here, in v.2.1.4 and in the v.3.0 alpha.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2634)     A regression had arisen whereby performance dropped when restoring a database with a large amount of metadata.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2291)     The error Bugcheck 284 (cannot restore singleton select data) would be thrown on bad trigger code involving [FOR] SELECT, when the engine should have been detecting the error and throwing the proper exception.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2285)     A database with a large number of grants could become corrupted after a backup/restore.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2245)     A database with long exception messages defined would exhibit errors when being restored from a backup.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2223)     gbak was encountering several bugs when operating on the access control lists (ACLs) that store SQL privileges.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2214)     Security classes were being restored incorrectly.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1911)     Backup and restore were not thread-safe when using the Services API.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-1843)     Gbak with Service Manager would not allow paths with spaces.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1703)     Delays/lockups when the gbak output was redirected to another process.

fixed by D. Yemanov

    ~ ~ ~     

nBackup

(CORE-2750)     Physical backup could not restart operations after the explicit difference file had been dropped.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2648)     NBackup's delta file was not respecting the “Forced Writes” database setting.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2266)     nBackup's database locking was not working correctly, causing database file growth to continue when database writes should have been in suspension.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1696)     Deadlock would occur in the Lock Manager when the NBackup utility was in use.

fixed by R. Simakov

    ~ ~ ~     

(CORE-1876)     Incremental backups with NBACKUP were broken in v.2.1.

fixed by N. Samofatov

    ~ ~ ~     

gfix

(CORE-2846)     If gfix -shut <mode> -attach <timeout> failed after the specified timeout due to connections being still active, connection to the database would become impossible.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-97)     A lock on the database file was being left by gfix -shut -force, preventing a subsequent restore.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2268)     Non-valid transaction numbers would cause gfix to throw BUGCHECK errors.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2271)     The gfix utility had a legacy bug that exhibited itself during the database validation/repair routines on large databases. The privilege level of the user running these routines was being checked too late in the operation, thus allowing a non-privileged user (i.e., not SYSDBA or Owner) to start a validation operation. Once the privilege check occurred, the database validation could halt in mid-operation and thus be left unfinished, resulting in logical corruption that might not have been there otherwise.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1961)     A Bugcheck 210 (page in use during flush) consistency check error would be thrown during database validation.

fixed by D. Yemanov, R. Simakov

    ~ ~ ~     

gstat

(CORE-2519)     Output from gstat was incorrect for tables with more than 2 billion records.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1412)     Some long-standing bugs in gstat's processing of parameters needed fixing.

fixed by C. Valderrama

    ~ ~ ~     

fb_lock_print

(CORE-2598)     fb_lock_print -c[onsistency] switch was not working on Windows.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2354)     fb_lock_print -ia” output was not being flushed to the file between iterations.

fixed by A. Peshkov

    ~ ~ ~     

qli Query Utility for GDML

(CORE-2247)     In the QLI utility, message and descriptor buffers were not properly aligned.

fixed by A. Peshkov

    ~ ~ ~     

Services Manager

(CORE-1982)     Simultaneous backups or restores invoked through the Services API could interfere with one another.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Remote Interface/API

(CORE-2563)     It was possible to shut down the Superserver's main port (3050 by default) by sending a malformed packet of some special format, that would lead to a Denial of Service condition for new incoming connections. This exploit could be used by an unauthenticated client.

Reported 15-Jul-2009 by Core Security Technologies.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2437)     A buffer overflow could occur on the client when receiving events.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2307)     API information requests were returning incomplete values in the results.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-2234)     Sometimes, terminated worker processes in Classic on Windows were still considered to be alive after termination, due to improper checks on the Firebird server's part. The same bug could cause the Firebird server to misbehave with prolonged deadlocks when under load.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2151)     When a temporary directory path had spaces within it, it was (wrongly) being truncated at the rightmost space.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2033)     The symbol _Unwind_GetIP in the client library was being left unresolved due to a missing static library linkage.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2018)     Only a single client could access a read-only database.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1972)     A non-SYSDBA user was able to change the Forced Writes mode of any database, along with several other database characteristics that should be restricted to the SYSDBA. This long-standing, legacy loophole in the handling of DPB parameters could lead to database corruptions or give ordinary users access to SYSDBA-only operations.

The changes could affect several existing applications, database tools and connectivity layers (drivers, components).

Same fix was backported to v.2.1.2 and v.2.0.5.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1868)     Client library was crashing inside isc_dsql_free_statement().

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1763)     The client library was not setting the options SO_KEEPALIVE nor TCP_NODELAY for the socket at connection.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1755 and )CORE-1756     A couple of crash scenarios could occur in isc_start_transaction().

fixed by D. Kovalenko, A. Peshkov

    ~ ~ ~     

(CORE-1726)     Failure in isc_service_start().

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1079)     Every attach of fbclient/fbembed library to the host process would leak 64KB of memory.

fixed by A. Peshkov

    ~ ~ ~     

Security

(CORE-2657)     A poorly documented SPB tag provided the undesirable ability to pass an arbitrary trusted user name to a service and enable that user to acquire any permissions, including those of SYSDBA.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2087)     When the configuration parameter RemoteBindAddress specified a hostname instead of an IP address, or specified a non-existent IP address, it would be silently ignored and the server would bind to all interfaces, without any notification in firebird.log or the system log. This was considered a potential security risk if the system had ports open to the Internet. Now, an invalid or unavailable IP address will be resolved to localhost (127.0.0.1).

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2055)     Buffer overflow in Firebird client library.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1845)     Some standard calls would show the server installation directory to regular users.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1810)     Some issues appeared concerning usernames with '.' characters.

fixed by A. Peshkov

    ~ ~ ~     

International Language Support

    ~ ~ ~     

(CORE-2642)     An obscure ICU initialization problem on Windows could cause misbehaviour in a multi-threaded environment.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2607)     Introducer syntax(_charset) problems were occurring when it was used in association with monitoring queries or PSQL modules.

For information about the problem and a workaround provided for it, see the topic Introducer Syntax Usage under Other Improvements in the International Language Support chapter.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

    ~ ~ ~     

(CORE-2361)     String truncation was occurring when reading a character set 8859_1 Spanish column using isc_dsql_fetch() with a UTF8 connection.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2227)     Problems were occurring in some environments when creating triggers that referred to column names with accented characters.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-2123)     Problem with getting UNICODE_FSS data in the CP943C connection charset

fixed by A. dos Santos Fernandes, D. Kovalenko

    ~ ~ ~     

(CORE-2122)     Translation of large text blobs between UNICODE_FSS / UTF8 and other charsets

fixed by A. dos Santos Fernandes, D. Kovalenko

    ~ ~ ~     

(CORE-2095)     Bug in CVJIS_eucj_to_unicode().

fixed by A. dos Santos Fernandes, D. Kovalenko

    ~ ~ ~     

(CORE-2019)     A UTF-8 conversion error (string truncation) was being thrown unexpectedly.

fixed by dos Santos Fernandes

    ~ ~ ~     

(CORE-1989)     A column with UNICODE_CI collation for UTF8 could not be used in a foreign key constraint.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1927)     The procedure sp_register_character_set could generate a negative value for RDB$CHARACTER_SETS.RDB$CHARACTER_SET_ID.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1690)     A condition in tables with UTF8 text was causing the error Arithmetic exception, numeric overflow, or string truncation.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1596)     Bug in CsConvert::convert

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1432)     The collation attribute of columns was not being propagated between record formats.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-316)     A database with multi-byte characters in its name could not be opened.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1802)     Some issues were reported concerning maximum key size using the PXW_CSY collation.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1774)     A problem appeared with collate ES_ES_CI_AI.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-1254)     Problem with DISTINCT and insensitive collations.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

POSIX-specific

(CORE-3067)     On 64-bit POSIX, except HP-UX, objects were not being unmapped when shared memory was closed.

The 64-bit pointer had been masked with a 32-bit mask, which turned out to be a really bad idea: with Object == 0x7FAB12345678 and page size == 4K, the upper bits were lost and the starting address would be at 0x12345000 instead of the intended 0x7FAB12345000.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3019)     On a recent version of Gentoo Linux, an attempt to source the function library /etc/init.d/functions.sh would fail with the message “* ERROR: firebird does not have a start function” and neither SuperServer nor SuperClassic would start.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3001)     Install was failing to create the firebird user and group.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2919)     The Linux installation script was ignoring non-standard ports.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2845)     The build process on Solaris would stop with the message: “need to use SFIO”. On the whole, Solaris 10 no longer requires SFIO - the 64-bit builds do not suffer the issue with the maximum 255 file descriptors and there are simple work-arounds for 32-bit builds. See this article for details.

However, the issue still affects Solaris 10 3/05 through Solaris 10 11/06. Some patches are needed to correct the problem.

For the time being, the easiest solution is to leave the define in the code, but comment it with the relevant information for Solaris 10. The define can be removed if the patches have been applied or the user is running an unaffected version of Solaris 10.

Updated information concerning this issue has been inserted into common.h. Anyone building 32-bit Firebird on Solaris 10 will have to make an informed decision according to the version and build/patch level of Solaris before uncommenting the SFIO define.

fixed by P. Beach

    ~ ~ ~     

(CORE-2814)     On SPARC, the server was crashing in the routine map_sort_data with a bus error.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2601)     A lot of the standard configure switches for fine-tuning the installation directories on POSIX platforms do not work for Firebird.

It was close to impossible to make the standard GNU switches work without changing the defaults for them, a rigmarole that is far from obvious or easy. Instead, a set of new switches for the configure has been added to enable fine-level configuration of the locations of Firebird's files.

The switches are listed in the Installation chapter, in the topic Dedicated Firebird Switches for 'configure'.

fixed by A. Peshkoff

    ~ ~ ~     

(CORE-2572)     Locks of type LCK_page_space were being processed incorrectly on big-endian machines.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-2221)     On POSIX platforms, any attachment to any database would fail after the access rights for security2.fdb were modified from 0660 to 0666.

fixed by P. Beach, A. Peshkov

    ~ ~ ~     

(CORE-2093)     SuperServer startup would fail on Solaris 64-bit.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1909)     Garbage in firebird.log on linux/amd64

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1885)     CREATE COLLATION caused lost connection under Posix.

fixed by A. dos Santos Fernandes, A. Peshkov

    ~ ~ ~     

(CORE-1854)     Value of CURRENT_USER might not be in upper case when using Unix OS authentication.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1826)     changeRunUser.sh and restoreRootRunUser.sh scripts were not changing the run user in the init.d scripts.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1818)     Temporary files used for temporary page spaces were not deleted after use on Posix platforms.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1807)     Server was being assigned to a non-canonical port after abnormal termination.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1766)     Owner and group of isc_monitor1 file on Linux classic server were incorrect.

fixed by A. Peshkov

    ~ ~ ~     

(CORE-1671)     atexit() calls in client libraries cause segfaults if the libraries were used in dlopen'ed modules.

fixed by A. Peshkov

    ~ ~ ~     

Windows-specific

(CORE-2769)     On heavily loaded Windows systems, local connect (XNET) could fail due to the client timing out while waiting for the server to set the xnet_response_event. To help with this problem, the ConnectionTimeout parameter in firebird.conf has been activated for XNET connections.

Improvement made by D. Yemanov

    ~ ~ ~     

(CORE-2108)     When using the Windows local protocol (XNET), the next available map number was calculated incorrectly, thus allowing the server to try to reuse a map number that already existed. If the “new” map's timestamp was equal to the timestamp of the pre-existing map, it would cause the get_free_slot() function to fail.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-2107)     Establishing a TCP\IP connection to the Windows Classic Server could fail under high load.

fixed by V. Khorsun

    ~ ~ ~     

(CORE-1923)     Successful execution of instsvc.exe remove was returning 1 as its completion code, instead of 0.

fixed by D. Yemanov

    ~ ~ ~     

(CORE-1820)     Setup program was failing to detect a running server.

fixed by P. Reeves, D. Yemanov

    ~ ~ ~     

(CORE-1105, CORE-1390, CORE-1566 & CORE-1639)     Aliases would not work properly for XNET connections.

fixed by D. Yemanov

    ~ ~ ~     

MacOSX-specific

(CORE-2065)     The MacOSX installation package was in violation of platform rules by not including the client library in the dynamic loader search paths.

fixed by P. Beach

    ~ ~ ~     

Miscellaneous Bugs

(CORE-2282)     Truncating UDFs were broken for negative numbers below -1.

fixed by C. Valderrama

    ~ ~ ~     

(CORE-2281)     Rounding UDFs were broken for negative numbers.

fixed by C. Valderrama

    ~ ~ ~     

Prev: Firebird 2.5.0 ReleaseFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.5 Project Teams
Firebird Documentation IndexFirebird 2.5 Release NotesBugs Fixed → Old Bugs Fixed