Call to Services API on 1st FB instance blocks start of audit session in 2nd FB instance for 130 seconds --------------------------------------------------------------------------------------------------------
Key: CORE-6476 URL: http://tracker.firebirdsql.org/browse/CORE-6476 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 4.0 Beta 2 Reporter: Pavel Zotov Weird behaviour was encountered during attempts to implement test for CORE-5993. Steps to reproduce: * create two folders for FB instances (in the commands list below these are: "C:\FB\40SS\" and "C:\FB\fb40-tmp\"); * put (unpack) entire FB distributive to each of these folders; * open firebird.conf in each of them and set different ports for listening (e.g. 3400 and 57456 ) * STOP any running FB servers * add to firebird.conf in the 2nd FB instance (which is in "C:\FB\fb40-tmp\") line for audit: ===== AuditTraceConfigFile = "C:\FBTESTING\qa\fbt-repo\tmp\tmp_c5993_audit.cfg" ===== * create config for audit (file "C:\FBTESTING\qa\fbt-repo\tmp\tmp_c5993_audit.cfg"): ===== database= { enabled = true log_filename = "C:\\FBTESTING\\qa\\fbt-repo\\tmp\\tmp_c5993_audit.log" time_threshold = 0 log_initfini = false log_warnings = false log_errors = true log_connections = true log_transactions = true log_statement_finish = true } ===== * Create batch with following content: ===== @echo off @setlocal enabledelayedexpansion enableextensions @rem ######## set DELAY=130 @rem ######## set log=%~dpn0.tmp taskkill /f /t /im firebird.exe tasklist | findstr /i /c:"firebird.exe" >nul if NOT errorlevel 1 ( echo At least one running FB instance detected. You have to stop all of them. goto :fin ) @echo on start C:\FB\40SS\firebird.exe -a start C:\FB\fb40-tmp\firebird.exe -a ping -n 2 127.0.0.1>nul @echo !time! Call services API of the first FB instance. Check result: C:\FB\40SS\fbsvcmgr.exe localhost/3400:service_mgr user sysdba password masterkey info_user_dbpath @echo Take delay for !delay! seconds. timeout !DELAY! @echo !time! Check that active session exists in the TRACE list of the second FB instance: C:\FB\fb40-tmp\fbsvcmgr.exe localhost/57456:service_mgr user sysdba password masterkey action_trace_list 1>!log! @rem C:\FB\fb40-tmp\fbsvcmgr.exe localhost/57456:service_mgr user sysdba password masterkey info_user_dbpath 1>!log! @echo off for /f %%a in ("!log!") do ( if %%~za EQU 0 ( echo ####### ACHTUNG ####### echo NO TRACE SESSIONS FOUND echo ####################### ) else ( type !log! ) ) del !log! taskkill /f /t /im firebird.exe :fin echo Bye-bye. ===== PAY ATTENTION on variable DELAY. Now it is 130. Run this batch. Its output will be: ===== C:\FBTESTING\qa\misc>start C:\FB\40SS\firebird.exe -a C:\FBTESTING\qa\misc>start C:\FB\fb40-tmp\firebird.exe -a C:\FBTESTING\qa\misc>ping -n 2 127.0.0.1 1>nul 12:21:39.56 Call services API of the first FB instance. Check result: C:\FBTESTING\qa\misc>C:\FB\40SS\fbsvcmgr.exe localhost/3400:service_mgr user sysdba password masterkey info_user_dbpath Security database: C:\FB\40SS\SECURITY4.FDB Take delay for 130 seconds. C:\FBTESTING\qa\misc>timeout !DELAY! Waiting for 0 seconds, press a key to continue ... 12:23:50.13 Check that active session exists in the TRACE list of the second FB instance: C:\FBTESTING\qa\misc>C:\FB\fb40-tmp\fbsvcmgr.exe localhost/57456:service_mgr user sysdba password masterkey action_trace_list 1>!log! Session ID: 1 name: Firebird Audit user: SYSDBA date: 2021-01-28 12:23:50 flags: active, admin, system, audit SUCCESS: The process with PID 2652 (child process of PID 2800) has been terminated. SUCCESS: The process with PID 6292 (child process of PID 2800) has been terminated. Bye-bye. ===== So far, so good: we can see audit session in the trace list. Now change DELAY variable to 129. Output will be finished like this: ===== ####### ACHTUNG ####### NO TRACE SESSIONS FOUND ####################### SUCCESS: The process with PID 6780 (child process of PID 5952) has been terminated. SUCCESS: The process with PID 6932 (child process of PID 5952) has been terminated. Bye-bye. ===== PS. Checked on 4.0.0.2345 SS Config file for 1st FB: ===== AuthClient = Srp, Srp256, ExtAuth, Win_Sspi, Legacy_Auth AuthServer = Srp, Srp256, ExtAuth, Win_Sspi, Legacy_Auth BugCheckAbort = 1 DefaultDbCachePages = 20000 ExtConnPoolLifeTime = 10 ExtConnPoolSize = 10 ExternalFileAccess = Full FileSystemCacheThreshold = 65536K IpcName = fb40_SS KeyHolderPlugin = KeyHolder LockHashSlots = 22111 LockMemSize = 5M MaxUnflushedWrites = -1 MaxUnflushedWriteTime = -1 ReadConsistency = 0 RemoteServicePort = 3400 ServerMode = Super TempBlockSize = 2M TempCacheLimit = 2147483647 TempDirectories = d:\temp UDFAccess = Restrict UDF UserManager = Srp, Legacy_UserManager WireCrypt = Enabled WireCryptPlugin = ChaCha, Arc4 ===== Config file for 2nd FB: ===== AuditTraceConfigFile = "C:\FBTESTING\qa\fbt-repo\tmp\tmp_c5993_audit.cfg" AuthClient = Srp AuthServer = Srp BugcheckAbort = 1 IpcName = tmp_ipc_5993 RemoteServiceName = tmp_fbs_5993 RemoteServicePort = 57456 ServerMode = Super WireCrypt = Required ===== -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel