FBSVCMGR can produce broken log when restoring database with enabled 'verbose'
and 'res_stat tdrw'
----------------------------------------------------------------------------------------------------
Key: CORE-4897
URL: http://tracker.firebirdsql.org/browse/CORE-4897
Project: Firebird Core
Issue Type: Bug
Components: SVCMGR
Affects Versions: 3.0 RC 1
Reporter: Pavel Zotov
Attachments: fbsvcmgr30-restore-broken-logs.zip
When trivial database (see its .fbk in attach) is restored by FBSVCMGR
'verbose' and option for show statistics ('res_stat tdrw' -- see issues in
CORE-1999 by hvlad) one may to get broken log. Lines in it can look like this:
. . .
gbak: 2.106 0.000 0 0 restoring privilege for user SYSDBA
gbak: 2.107 0.000 0 3 restoring privilege for user SYSDBA
gbak: 2.107 0.000 0 0 restori
ng privilege for user SYSDBA
gbak: 2.123 0.016 0 0 restoring privilege for user SYSDBA
gbak: 2.124 0.000 0 0 restoring privilege for user SYSDBA
gbak: 2.124 0.000 0 0 restoring privilege for user SYSDBA
. . .
This prevent to make any parsing of such log with analysis of restoring
performance.
I'm using following batch which can detect such broken logs based on comparison
with 'proper' size of log that has no broken lines (46817 bytes):
=== begin of 'rtest.bat' ===
@echo off
setlocal enabledelayedexpansion enableextensions
set fbhome=C:\1INSTALL\FIREBIRD\fb30sS
set fbhost=localhost
set fbport=3333
set bkname=C:\FBTESTING\qa\fbt-repo\tmp\e30.fbk
set dbrest=C:\FBTESTING\qa\fbt-repo\tmp\e30.fdz
set k=1
set log=fbsvcmgr30-restore.log
set lsz=0
set broken=0
:m1
@rem del C:\FBTESTING\qa\fbt-repo\tmp\e30.fdz 2>nul
echo|set /p=%time% start iter=!k!. . .
%fbhome%\fbsvcmgr ^
%fbhost%/%fbport%:service_mgr user SYSDBA password masterkey ^
action_restore ^
bkp_file %bkname% ^
dbname %dbrest% ^
res_replace verbose ^
res_stat tdrw 1>%log% 2>&1
for /f "usebackq" %%A in ('%log%') do set lsz=%%~zA
if .%lsz%.==.. set lsz=0
if .!lsz!.==.46817. (
echo - restore log size=!lsz! -- OK
) else (
echo - restore log is broken, size=!lsz!, perform its copy to
%log%.broken_!k!
copy %log% %log%.broken_!k! 1>nul
)
set /a k=!k!+1
goto m1
=== end of 'rtest.bat' ===
Correct settings in this batch to yours, extract .fbk from attached file and
run. After sevral iterations (in my case - no more than 2-3) you will see
messages:
C:\FBTESTING\qa\fbt-repo\tmp>rtest.bat | mtee rtest.bat.log
23:19:29.43 start iter=1. . . - restore log size=46817 -- OK
23:19:39.15 start iter=2. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_2
23:19:54.25 start iter=3. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_3
23:20:08.62 start iter=4. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_4
23:20:23.81 start iter=5. . . - restore log size=46817 -- OK
23:20:33.87 start iter=6. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_6
23:20:45.18 start iter=7. . . - restore log size=46817 -- OK
23:20:56.51 start iter=8. . . - restore log size=46817 -- OK
23:21:08.75 start iter=9. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_9
23:21:17.09 start iter=10. . . - restore log size=46817 -- OK
23:21:29.34 start iter=11. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_11
23:21:41.42 start iter=12. . . - restore log size=46817 -- OK
23:21:52.46 start iter=13. . . - restore log size=46817 -- OK
23:22:02.62 start iter=14. . . - restore log size=46817 -- OK
23:22:14.40 start iter=15. . . - restore log is broken, size=46819, perform its
copy to fbsvcmgr30-restore.log.broken_15
23:22:25.59 start iter=16. . . - restore log size=46817 -- OK
. . .
All broken logs (which have size <> etalone, 46817) will be stored in separate
files with pattern: fbsvcmgr30-restore.log.broken_NN (NN = number of
iteration).
Most of these files have one broken line, some of them - two.
I'm not sure is this bug of FBSVCMGR or windows pipe system, but I didn`t see
any similar before.
--
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