Attempt to drop existing user randomly fails with "336723990 : record not found
for user" on Classic (4.0 only is affected)
---------------------------------------------------------------------------------------------------------------------------
Key: CORE-6080
URL: http://tracker.firebirdsql.org/browse/CORE-6080
Project: Firebird Core
Issue Type: Bug
Affects Versions: 4.0 Beta 1
Reporter: Pavel Zotov
This ticket was created by Vlad request after discuss failures in test for
CORE-6038 when it is launched. It seems that only 4.0 Classic is affected.
Consider following batch:
=====
@echo off
setlocal enabledelayedexpansion enableextensions
for /f "delims=." %%a in ('wmic os get localdatetime ^| findstr /i /r /b
/c:"[0-9]"') do (
set dts=%%a
set ymd=!dts:~2,6!
set hms=!dts:~8,6!
)
set fbc=C:\FB\40CS
set dbpath=c:\temp
set authplg=Srp
@rem set authplg=Legacy_UserManager
set dbnm=!dbpath!\c6038.fdb.tmp
set sql=!dbpath!\%~n0.sql.tmp
set tmp=!dbpath!\%~n0.tmp.tmp
set err=!dbpath!\%~n0.err.tmp
set log=%~dpn0.!ymd!_!hms!.log
if exist !dbnm! del !dbnm!
(
echo set bail on;
echo create database 'localhost:!dbnm!' user sysdba password 'masterkey';
echo commit;
echo alter database set linger to 30;
echo commit;
echo show database;
) >!tmp!
!fbc!\isql.exe -z -q -i !tmp!
!fbc!\gfix.exe -w async localhost:!dbnm! -user sysdba -password masterkey
(
echo connect 'localhost:!dbnm!' user sysdba password 'masterkey';
echo create or alter user c6038_srp password 'c6038_srp' using plugin
!authplg!;
echo commit;
echo connect 'localhost:!dbnm!' user c6038_srp password 'c6038_srp';
echo commit;
echo connect 'localhost:!dbnm!' user sysdba password 'masterkey';
echo drop user c6038_srp using plugin !authplg!;
) > !sql!
!fbc!\fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey
info_server_version >!tmp!
type !tmp!
type !tmp! >>!log!
echo !date! !time! Started.
if exist !err! del !err!
set verb=1
set /a n=300
set /a i=0
:m1
set /a i=!i!+1
if !verb! EQU 1 (
echo !date! !time!, attempt !i! >!tmp!
type !tmp!
type !tmp! >>!log!
del !tmp!
for /f "usebackq tokens=*" %%a in ('!err!') do set size=%%~za
if !size! gtr 0 (
echo CONNECTION FAILED IN ITERATION # !i!. CHECK ERROR LOG:
type !err!
type !err! >>!log!
exit
)
)
!fbc!\isql.exe -q -i !sql! 1>>!err! 2>&1
if !i! GEQ !n! (
echo !date! !time! Completed.
for /f "usebackq tokens=*" %%a in ('!err!') do set size=%%~za
if !size! gtr 0 (
echo CHECK ERROR LOG AFTER ALL ITERATIONS:
type !err!
type !err! >>!log!
)
exit
)
goto m1
=====
Change in it only these three settings: fbc, dbpath and authplg.
Prepare FB to work as Classic and run this batch.
On WI-T4.0.0.1524 you will soon encounter with:
=====
10.06.2019 18:13:19.67, attempt 1
10.06.2019 18:13:20.72, attempt 2
. . .
10.06.2019 18:13:49.75, attempt 27
10.06.2019 18:13:50.79, attempt 28
Statement failed, SQLSTATE = HY000
modify record error
After line 1 in file c:\temp\c6038.leg.sql.tmp
Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to
set up a Firebird login.
After line 3 in file c:\temp\c6038.leg.sql.tmp
Statement failed, SQLSTATE = HY000
record not found for user: C6038_SRP
=====
Trace with 'log_prepare_statements = true' will show:
1) TWO prepare_statement events before point when error raises:
PREPARE_STATEMENT
drop user c6038_srp using plugin Srp
....
PREPARE_STATEMENT
drop user c6038_srp using plugin Srp
2) SUCCESSFUL finish of executed statement:
EXECUTE_STATEMENT_FINISH
drop user c6038_srp using plugin Srp
0 records fetched
0 ms
and immediately after this - error:
3) ERROR AT JTransaction::commit
C:\TEMP\C6038.FDB.TMP (ATT_55, SYSDBA:NONE, NONE, TCPv6:::1/63982)
C:\FB\40SS\isql.exe:5124
336723990 : record not found for user: C6038_SRP
--
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