Join Firebird!

Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses

Follow Us

Select your media preference

Newsletter

Subscribe to Firebird’s Newsletter to receive the latest news

Developer's Report: Firebird Core Development
September - December 2015
 
September
Trunk
  • Postfix for CORE-4904
  • Improvement CORE-4935 : Increase performance of backout of dead record version (or undo of just created primary record version) when backversions chain is too long
  • Improvement CORE-4936 : Reduce internal contention in background garbage collector
  •    Other small improvements:
  • garbage collector\sweep now skip record header if transaction is below OIT - it allows to reduce number of page fetches
  • missed points to gather RECORD_FRAGMENT_READS and RECORD_BACKVERSION_READS statistics
  • Improvement CORE-4939 : Make IO operations with nbackup backup file aligned at page size boundary
  • Protect dbb_pc_transactions vector in concurrent environment.
  • Fixed few issues with B-tree handling of long keys:
  • More checks for b-tree page overflow during inset of new node.
  • Special care is taken to generate split point so that both new pages do not exceed the page_size.
  • Handle case when index key is added and split is propagated up to top-level page and former top-level page is a split by  concurrent thread meanwhile.
  • Bugcheck when b-tree level become greater than MAX_LEVEL (16 currently) is replaced by isc_imp_exc error.
  • Validation code (aka gfix) now check correctness of level assigned to b-tree page (all pages at level should have same value and value should be decremented by one at each level down).  It should fix bug CORE-4914 and related issues.
B2_5_Release
  • Postfix for CORE-4904
October
Trunk
  • Fixed bug CORE-4952 : SuperServer could hung on database shutdown
  • Fix deadlock in fbclient (see CORE-4680). Thanks to Alex.
  • Removed unused mutex. Fixed tiny memory leak.
  • Windows DLL issues:
Detect case when DLL unloaded after ExitProcess was called In such case all threads are killed by OS thus any synchronization is potentially dangerous and could lead to hang-up. When this condition is detected all kind of cleanup (including engine shutdown) is skipped. It fixed CORE-4938 and similar issues.
  • All utilities call fb_shutdown on exit
  • Fixed small memory leak (happens on every auth request)
  • Avoid too frequent VirtualAlloc\VirtualFree calls (optimization)
  • Fixed race condition when many attachments creates event session at the same moment
  • Implemented delayed closing of server sockets - it should fix server hang up (see CORE-4680).
  • Fixed socket disconnect handling to allow graceful shutdown of network connection and avoid a lot of network errors in firebird.log (mostly 10053\10054).
  • Fixed few issues in event's handling code which could lead to AV (CORE-4680).
  • Fixed few small memory leaks.
  • Fixed delays on disconnect (Classic mode only, seems Windows-specific)
  • Fixed logging WSAEINTR error on shutdown of Classic listener process (Windows-specific).
  • Fixed TCS issue with events reported privately by Alex
  • Fixed AV on client : when disconnect happens while event callback run
  • Revert some of my recent changes in socket closing sequence as it causes delays client side on Linux. It also should fix CORE-4977 : Detach of 3.x database from 3.x Linux client takes much longer than from 3.x Windows client
  • Avoid send over closing socket (it put errors 10058 (WSAESHUTDOWN) in firebird.log)
  • Fixed bug CORE-4968 : fbtrace.conf in FB30-HOME: missing equality sign ('=') between parameter  "log_errors" and its default values ("false")
B2_5_Release
  • Backport fix for bug CORE-4680 : Possible deadlock in firebird connect.
  • Backport from trunk: mark port as disconnecting to avoid reporting (expected) network errors
  • Backport from trunk: avoid send over closing socket (it put errors 10058 (WSAESHUTDOWN) in firebird.log)
  • Backport feature CORE-1999 : TimeStamp in the every line output gbak.exe utility
  • Forward compatibility with ODS12 - don't put into backup relation constraints of system relations (which was introduced by ODS12). It allows to backup fb3 database using gbak v2.5 and later restore such backup by v3 engine.
November
Trunk
  • Additional means to avoid crash\hangup when application unload fbclient.dll not calling fb_shutdown.
  • Fixed reason of 500 ms delay experienced by such applications (described by Arno in fb-devel).
  • Fixed missing assignment of thread priorities.
  • Improved reaction on Ctrl+C\Ctrl+Break\console close request in Trace Manager and Services Manager console utilities on Windows.
  • Fixed bug CORE-4998 : Both client and server could not close connection after failed authentification
  • Fixed bug CORE-5015 :  AV in engine could happen when ON DISCONNECT trigger posted event
  • Fix one of the reason for AV in the engine (see CORE-4680, test by Pavel Zotov at 18 Nov 2015).
  • Refactor xnet module to separate client and server parts (endpoints). It fixed bug CORE-5029 : AV in fbclient when multi-threaded application uses XNET protocol and allows in the future to implement client ability to specify target server endpoint name at connection level (currently it is set in firebird.conf).
  • Avoid reporting of "SERVER/process_packet: broken port, server exiting" message for already detached port (affects CS only)
  • Fixed bug CORE-5033 : File fb_user_mapping could be left in Firebird lock directory after correct shutdown of all Firebird worker processes
  • Fixed bug CORE-5034 : At least 5 seconds delay on disconnect could happen if disconnect happens close after Event Manager initialization
B2_5_Release
  • Backported fix for bug CORE-4656 : Server could hang during chasing dead record version
  • Missed part for CORE-1999
December
Trunk
  • Fixed AV in CS introduced recently.
  • Fixed the race condition on Windows when shared memory is initialized. Test case is at CORE-4680, see comments by Pavel Zotov at 18 Nov 2015.
  • Let XNET client returns correct isc_network_error in case of not running XNET server.  Before it returns isc_unavailable and fools y-valve.
  • Fixed MSVC10 build of UDR examples
  • Build and copy udrcpp_example.dll
Vladyslav Khorsun
Dnetpropetrovsk, Ukraine
September - December 2015
 
September
Trunk
  • Postfix for CORE-4904
  • Improvement CORE-4935 : Increase performance of backout of dead record version (or undo of just created primary record version) when backversions chain is too long
  • Improvement CORE-4936 : Reduce internal contention in background garbage collector
  •    Other small improvements:
  • garbage collector\sweep now skip record header if transaction is below OIT - it allows to reduce number of page fetches
  • missed points to gather RECORD_FRAGMENT_READS and RECORD_BACKVERSION_READS statistics
  • Improvement CORE-4939 : Make IO operations with nbackup backup file aligned at page size boundary
  • Protect dbb_pc_transactions vector in concurrent environment.
  • Fixed few issues with B-tree handling of long keys:
  • More checks for b-tree page overflow during inset of new node.
  • Special care is taken to generate split point so that both new pages do not exceed the page_size.
  • Handle case when index key is added and split is propagated up to top-level page and former top-level page is a split by  concurrent thread meanwhile.
  • Bugcheck when b-tree level become greater than MAX_LEVEL (16 currently) is replaced by isc_imp_exc error.
  • Validation code (aka gfix) now check correctness of level assigned to b-tree page (all pages at level should have same value and value should be decremented by one at each level down).  It should fix bug CORE-4914 and related issues.
B2_5_Release
  • Postfix for CORE-4904
October
Trunk
  • Fixed bug CORE-4952 : SuperServer could hung on database shutdown
  • Fix deadlock in fbclient (see CORE-4680). Thanks to Alex.
  • Removed unused mutex. Fixed tiny memory leak.
  • Windows DLL issues:
Detect case when DLL unloaded after ExitProcess was called In such case all threads are killed by OS thus any synchronization is potentially dangerous and could lead to hang-up. When this condition is detected all kind of cleanup (including engine shutdown) is skipped. It fixed CORE-4938 and similar issues.
  • All utilities call fb_shutdown on exit
  • Fixed small memory leak (happens on every auth request)
  • Avoid too frequent VirtualAlloc\VirtualFree calls (optimization)
  • Fixed race condition when many attachments creates event session at the same moment
  • Implemented delayed closing of server sockets - it should fix server hang up (see CORE-4680).
  • Fixed socket disconnect handling to allow graceful shutdown of network connection and avoid a lot of network errors in firebird.log (mostly 10053\10054).
  • Fixed few issues in event's handling code which could lead to AV (CORE-4680).
  • Fixed few small memory leaks.
  • Fixed delays on disconnect (Classic mode only, seems Windows-specific)
  • Fixed logging WSAEINTR error on shutdown of Classic listener process (Windows-specific).
  • Fixed TCS issue with events reported privately by Alex
  • Fixed AV on client : when disconnect happens while event callback run
  • Revert some of my recent changes in socket closing sequence as it causes delays client side on Linux. It also should fix CORE-4977 : Detach of 3.x database from 3.x Linux client takes much longer than from 3.x Windows client
  • Avoid send over closing socket (it put errors 10058 (WSAESHUTDOWN) in firebird.log)
  • Fixed bug CORE-4968 : fbtrace.conf in FB30-HOME: missing equality sign ('=') between parameter  "log_errors" and its default values ("false")
B2_5_Release
  • Backport fix for bug CORE-4680 : Possible deadlock in firebird connect.
  • Backport from trunk: mark port as disconnecting to avoid reporting (expected) network errors
  • Backport from trunk: avoid send over closing socket (it put errors 10058 (WSAESHUTDOWN) in firebird.log)
  • Backport feature CORE-1999 : TimeStamp in the every line output gbak.exe utility
  • Forward compatibility with ODS12 - don't put into backup relation constraints of system relations (which was introduced by ODS12). It allows to backup fb3 database using gbak v2.5 and later restore such backup by v3 engine.
November
Trunk
  • Additional means to avoid crash\hangup when application unload fbclient.dll not calling fb_shutdown.
  • Fixed reason of 500 ms delay experienced by such applications (described by Arno in fb-devel).
  • Fixed missing assignment of thread priorities.
  • Improved reaction on Ctrl+C\Ctrl+Break\console close request in Trace Manager and Services Manager console utilities on Windows.
  • Fixed bug CORE-4998 : Both client and server could not close connection after failed authentification
  • Fixed bug CORE-5015 :  AV in engine could happen when ON DISCONNECT trigger posted event
  • Fix one of the reason for AV in the engine (see CORE-4680, test by Pavel Zotov at 18 Nov 2015).
  • Refactor xnet module to separate client and server parts (endpoints). It fixed bug CORE-5029 : AV in fbclient when multi-threaded application uses XNET protocol and allows in the future to implement client ability to specify target server endpoint name at connection level (currently it is set in firebird.conf).
  • Avoid reporting of "SERVER/process_packet: broken port, server exiting" message for already detached port (affects CS only)
  • Fixed bug CORE-5033 : File fb_user_mapping could be left in Firebird lock directory after correct shutdown of all Firebird worker processes
  • Fixed bug CORE-5034 : At least 5 seconds delay on disconnect could happen if disconnect happens close after Event Manager initialization
B2_5_Release
  • Backported fix for bug CORE-4656 : Server could hang during chasing dead record version
  • Missed part for CORE-1999
December
Trunk
  • Fixed AV in CS introduced recently.
  • Fixed the race condition on Windows when shared memory is initialized. Test case is at CORE-4680, see comments by Pavel Zotov at 18 Nov 2015.
  • Let XNET client returns correct isc_network_error in case of not running XNET server.  Before it returns isc_unavailable and fools y-valve.
  • Fixed MSVC10 build of UDR examples
  • Build and copy udrcpp_example.dll
Vladyslav Khorsun
Dnetpropetrovsk, Ukraine