You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FB crashes when database is in full shutdown and several sessions make attempts to attach to this DB in infinite loop (3.0 SuperServer only is affected) [CORE6196]
#6441
3. Create batch file (change variables 'fbc' and 'dsn' according to your environment):
@echo off
setlocal enabledelayedexpansion enableextensions
set dtm=19000101000000
call :get\_ANSI\_precise\_dts dtm time\_only
set dtm=\!dtm::=\!
set dtm=\!dtm:\.=\_\!
set err\_file=%\~dpn0\.\!dtm\!\.err
set fbc=C:\\FB\\30SS
set dsn=localhost:e30
set fbn=firebird\.exe
set err=%\~dpn0\.
set /a iter=0
:m1
set /a iter=\!iter\!\+1
echo \!time\! iter #⁠ \!iter\!
echo quit; \| \!fbc\!\\isql \!dsn\! \-q \-user sysdba \-pas masterkey 1\>nul 2\>\!err\_file\!
findstr /m /c:"SQLSTATE = 08006" \!err\_file\! 1\>nul
if NOT errorlevel 1 \(
echo \!time\! No reply from Firebird server\. Bye\-bye\.
del \!err\_file\!
goto final
\)
del \!err\_file\!
goto m1
:get\_ANSI\_precise\_dts
setlocal
for /f "tokens=1\-2 delims=\.\+" %%a in \('wmic\.exe OS GET LocalDateTime ^\| findstr /r /b /c:"20\.\*\."' \) do \(
set current\_dts=%%a
set ms\_value=%%b
\)
set current\_dts=\!current\_dts\!\.\!ms\_value:\~0,2\!
@rem 20191021\|201404\.22
@rem 01234567\|890123456
set time\_ms=\!current\_dts:\~\-9\!
set current\_time=\!time\_ms:\~0,2\!:\!time\_ms:\~2,2\!:\!time\_ms:\~\-5\!
if /i \.%2\.==\.time\_only\. \(
set result=\!current\_time\!
\) else \(
set current\_date=\!current\_dts:\~0,8\!
set current\_date=\!current\_date:\~\-2\!\.\!current\_date:\~4,2\!\.\!current\_dts:\~0,4\!
set result=\!current\_date\! \!current\_time\!
\)
endlocal & set "%\~1=%result%"
goto:eof
:final
=======
4. Open two cmd.exe and launch this batch in both of them.
After very short time FB will crach. Both sessions of running batch will stop themselves because get "SQLSTATE = 08006" in STDERR.
Here are dump, stack-trace, firebird.conf and .log:
Submitted by: @pavel-zotov
1. Create database and change its state to full shutdown
2. Prepare firebird.conf:
=======
3. Create batch file (change variables 'fbc' and 'dsn' according to your environment):
=======
4. Open two cmd.exe and launch this batch in both of them.
After very short time FB will crach. Both sessions of running batch will stop themselves because get "SQLSTATE = 08006" in STDERR.
Here are dump, stack-trace, firebird.conf and .log:
https://drive.google.com/open?id=13KPHXcYhJFBByqFtF1mfPV08KmpDgsF0
PS.
SuperServer only is affected, and only 3.0 (I've checked WI-V3.0.5.33184).
No such effect on SC and on 4.0 (any mode).
The text was updated successfully, but these errors were encountered: