Submitted by: @pavel-zotov
Attachments:
python-crash-screen-when-using-fbclient-of-fb3.png
python-crash-dumps-when-using-fbclient-of-fb3.zip
Steps to reproduce:
0) install FB 2.5 and FB 3.0 on the same Windows host (hereafter: FB 2.5 was installed in C:\1INSTALL\FIREBIRD\fb25sC\ and listening port 3255; FB 3.0 was installed in C:\1INSTALL\FIREBIRD\fb30sS\ and listening port 3333; `PATH` variable contains first folder to FB3: PATH=C:\1INSTALL\FIREBIRD\fb30sS;D:\Python27\;D:\Python27\Scripts;D:\W2K\system32;D:\W2K; . . .)
1) create .fbt file, e.g. `core_4386.fbt`, and save it in the folder %fbt-repo-home%\tests\bugs\
File content:
{
'id': '',
'qmid': None,
'tracker_id': '',
'title': '',
'description': '',
'min_versions': '3.0',
'versions': [
{
'firebird_version': '3.0',
'platform': 'All',
'init_script':
"""
""",
'test_type': 'Python',
'test_script':'''c1=db_conn.cursor()
c1.execute("select sign(current_connection) as att from rdb$database");
printData(c1)
''',
'expected_stdout':
"""
ATT
-----------
1
""",
'substitutions':[('-.*','')]
}
]
}
2) open cmd.exe window and do there:
C:\FBTESTING\qa\fbt-repo>set pbak=%path%
C:\FBTESTING\qa\fbt-repo>set p25=C:\1INSTALL\FIREBIRD\fb25sC\bin
C:\FBTESTING\qa\fbt-repo>set path=%p25%;%pbak%
// check that we indeed have folder to FB 2.5 client at the beginning of PATH list:
C:\FBTESTING\qa\fbt-repo>path
PATH=C:\1INSTALL\FIREBIRD\fb25sC\bin;C:\1INSTALL\FIREBIRD\fb30sS;D:\Python27\;D:\Python27\Scripts;D:\W2K\system32; . . .
// now run test which should check FB-3 instance but do connect using client of 2.5:
C:\FBTESTING\qa\fbt-repo>fbt_run -b C:\1INSTALL\FIREBIRD\fb30sS bugs.core_4386 -o localhost/3333
.
----------------------------------------------------------------------
Ran 1 tests in 0.781s
OK
// now restore PATH to previous value, so the first folder in it will be "C:\1INSTALL\FIREBIRD\fb30sS" -- i.e. to FB3 instance:
C:\FBTESTING\qa\fbt-repo>set path=%pbak%
C:\FBTESTING\qa\fbt-repo>path
PATH=C:\1INSTALL\FIREBIRD\fb30sS;D:\Python27\;D:\Python27\Scripts;D:\W2K\system32;D:\W2K; . . .
// and repeat fbt_run once more:
C:\FBTESTING\qa\fbt-repo>fbt_run -b C:\1INSTALL\FIREBIRD\fb30sS bugs.core_4386 -o localhost/3333
Last action can finish with either exception followed by "OK"
Exception WindowsError: 'exception: access violation reading 0x00000010' in <bound method PreparedStatement.__del__ of <
fdb.fbcore.PreparedStatement object at 0x02308E90>> ignored
.
----------------------------------------------------------------------
Ran 1 tests in 0.906s
OK
-- or with Windows message about failed process (Python), and in that case test will not run at all.
Sometimes I get only empty output: neither exception from Python nor Windows abend message.
No any rows in firebird.log appear when this fault occur.
Attached files: screenshot and additional dumps that are specified in it.
PS.
`fbtest` was updated 07-JUN-2015, but I saw this error before.
Config of FB3:
RemoteServicePort = 3333
AuthServer = Legacy_Auth, Srp, Win_Sspi
UserManager = Legacy_UserManager
AuthClient = Legacy_Auth
WireCrypt = Disabled
SharedCache = true
SharedDatabase = false
ExternalFileAccess = Full
Config of FB 2.5:
RemoteServicePort = 3255
DefaultDbCachePages = 256
ExternalFileAccess = Restrict C:\1INSTALL\FIREBIRD\fb25sC;C:\FBTESTING\qa\fbt-repo\tmp;C:\FBTESTING\OLTP2014
FileSystemCacheThreshold = 65536K
LockHashSlots = 22111
MaxUserTraceLogSize = 99999