Bugs fixed Firebird sub-release 2.0.5

<< Sub-release 2.0.6 | Firebird 2.0.7 Release Notes | Sub-release 2.0.4 >>

Bugs fixed


Sub-release 2.0.5


Unregistered bug When Firebird is configured to run in some specific directory (/usr/local/firebird, /opt/firebird or any other) the @prefix@ macro should be substituted with that directory path. On MacOS it was not done and caused exceptions to be thrown when the engine tried to locate some of its components.

fixed by P. Beach

~ ~ ~

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

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-2108) When using the new implementation of 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. Horsun

~ ~ ~

(CORE-2078) The optimizer always had some trivial heuristics to estimate the effective stream selectivity, even if no indices could be used for the retrieval. This code missed being migrated into the ODS11 optimizer logic. The effect was that join orders chosen for cases involving non-indexed predicates were likely to be ineffective.

fixed by D. Yemanov

~ ~ ~

(CORE-2077) On POSIX platforms, the Classic server in embedded mode, i.e., loaded into the user's application space, would handle the TERM signal but would fail to call any other signal handlers in the queue. The effect was that signal handlers set by the application were not executed and the application would keep working after the termination. It was a bad idea to invoke ISC_signal_cancel() from the signal handler and the mechanism has been reworked.

fixed by A. Peshkov

~ ~ ~

(CORE-2073) The implementation of expression indexes exhibited a bug whereby an incorrect result was returned when an inverted Boolean predicate was applied to test an indexed expression.

fixed by D. Yemanov

~ ~ ~

(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

~ ~ ~

(CORE-2055) Backported a fix for a known buffer overflow in the Firebird client library.

fixed by A. Peshkov

~ ~ ~

(CORE-2050) Fixed a performance regression resulting from a surfeit of semop() system calls.

fixed by V. Horsun

~ ~ ~

(CORE-2049) Fixed a performance regression resulting from a surfeit of sigprocmask() system calls.

fixed by A. Peshkov

~ ~ ~

(CORE-2000) Under high load conditions, the lock manager could report false deadlocks.

fixed by V. Horsun

~ ~ ~

(CORE-1984) Lock manager would report false deadlocks if one of the deadlock participants was in WAIT with a permitted timeout.

fixed by V. Horsun

~ ~ ~

(CORE-1983) In any POSIX environment except Solaris, the engine was mishandling the out of memory condition, causing the server to crash.

fixed by A. Peshkov

~ ~ ~

(CORE-1982) Simultaneous backups or restores using the Services API under Superserver could interfere with one another.

fixed by A. dos Santos Fernandes

~ ~ ~

(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). Details are in Chapter 3, in Changes to the Firebird API and ODS.

fixed by A. Peshkov

~ ~ ~

(CORE-1970) A Lock conversion denied (bugcheck 215) error could occur. This fix is related to CORE-1984 and CORE-2000 (above).

fixed by V. Horsun

~ ~ ~

(CORE-1958) When attempting to update the same record multiple times, a Bugcheck 179 (decompression overran buffer) failure could occur.

fixed by D. Yemanov

~ ~ ~

(CORE-1957) Because of a change done in the conversion to C++ at v.1.5, ACLs (Access Control Lists) longer than about 20 characters were being truncated. This has caused particular problems for applications that construct access privileges in run-time and has also given rise to privileges going missing when there are more than about 2000 privileges (for a report of the latter, see Tracker issue CORE-216).

fixed by A. Peshkov

~ ~ ~

(CORE-1930) In a situation where a stored procedure was altered to remove output parameters and dependent procedures are not recompiled, the engine should properly track the dependencies and return an exception when the altered procedure is called. Instead, it was crashing.

fixed by V. Horsun

~ ~ ~

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

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1909) Garbage text was being printed to firebird.log on AMD64 Linux.

fixed by A. Peshkov

~ ~ ~

(CORE-1887) Newly created databases were being created on POSIX platforms with the wrong access rights. Now, access rights are set properly, by an explicit chmod call immediately after creation of the file.

fixed by A. Peshkov

~ ~ ~

(CORE-1886) On Windows Vista, the server would refuse to start as an application under a restricted user account. This fix is a backport from the v.2.1 code that will need to be field-tested during RC.

fixed by N. Samofatov

~ ~ ~

(CORE-1884) Using expressions as the default values of input parameters for stored procedures could cause random server crashes.

fixed by V. Horsun

~ ~ ~

(CORE-1854) When using Unix native OS user authentication, the engine would return CURRENT_USER in the native (case-sensitive) form instead of the upper-cased form that Firebird user names should be resolved to.

fixed by A. Peshkov

~ ~ ~

(CORE-1844) Valgrind often reports Conditional jump or move depends on uninitialised value(s) in check_status_vector(), caused by poor data type matching which had the potential to corrupt the error status vector when there were multiple errors.

fixed by A. Peshkov

~ ~ ~

(CORE-1841) A view that used derived tables and long names for the tables or aliases could cause an overflow in RDB$VIEW_RELATIONS.RDB$CONTEXT_NAME.

fixed by V. Horsun

~ ~ ~

(CORE-1840) Every DDL request executed would leave a small memory leak.

fixed by D. Yemanov

~ ~ ~

(CORE-1830) Multiple updates of the same record in the same transaction, using savepoints, could corrupt indexes.

fixed by V. Horsun

~ ~ ~

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

fixed by A. Peshkov

~ ~ ~

(CORE-1817) The RelaxedAliasChecking parameter was having no effect on RDB$DB_KEY+ . fixed by V. Horsun

~ ~ ~

(CORE-1810) There were problems with user names containing the '.' character.

fixed by A. Peshkov

~ ~ ~

(CORE-1807) After an abnormal termination of Superserver on Linux, under a hard-to-reproduce situation where the “dead” fbserver process continued to listen on port 3050, the Guardian would retry port 3050 several times before giving up and assigning the new process to a non-canonical port. Meanwhile, client requests would go to port 3050 and hang indefinitely. Guardian needed to be restrained from such madness.

fixed by A. Peshkov

~ ~ ~

(CORE-1506) The server would crash with isc_dsql_execute_immediate and a zero-length string.

fixed by A. Peshkov

~ ~ ~

(CORE-1451) Using RDB$DB_KEY in a search argument when calling a selectable procedure would crash the server.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1439) Killing a Classic server process on a POSIX platform could corrupt databases.

fixed by A. Peshkov

~ ~ ~

(CORE-1357) The DummyPacketInterval mechanism was broken on all platforms.

fixed by D. Yemanov

~ ~ ~

(CORE-1313) Derived tables and the MERGE statement were failing to recognise RDB$DB_KEY.

fixed by A. dos Santos Fernandes

~ ~ ~

(CORE-1889) The security database was being created with Forced Writes off, risking corruption under some conditions.

fixed by A. Peshkov

~ ~ ~

back to top of page
<< Sub-release 2.0.6 | Firebird 2.0.7 Release Notes | Sub-release 2.0.4 >>