1 @message |
firebird.qa.plugin.ExecutionError: ISQL execution failed
LOG DETAILS:
2024-08-09 15:25:07.299
2024-08-09 15:25:07.299 act = <firebird.qa.plugin.Action object at [hex]>
2024-08-09 15:25:07.299
2024-08-09 15:25:07.299 @pytest.mark.es_eds
2024-08-09 15:25:07.299 @pytest.mark.version('>=3.0.1')
2024-08-09 15:25:07.299 def test_1(act: Action):
2024-08-09 15:25:07.299
2024-08-09 15:25:07.299 if (res := check_ipv6_avail()) < 0:
2024-08-09 15:25:07.299 pytest.skip(f"IPv6 not avail, retcode: {res}")
2024-08-09 15:25:07.299
2024-08-09 15:25:07.299 sql_chk = f"""
2024-08-09 15:25:07.299 set list on;
2024-08-09 15:25:07.299 commit;
2024-08-09 15:25:07.300 connect 'inet4://127.0.0.1/{act.db.db_path}';
2024-08-09 15:25:07.300
2024-08-09 15:25:07.300 select mon$remote_protocol as procotol_when_connect_from_isql
2024-08-09 15:25:07.300 from mon$attachments where mon$attachment_id = current_connection;
2024-08-09 15:25:07.300
2024-08-09 15:25:07.300 set term ^;
2024-08-09 15:25:07.300 execute block returns(protocol_when_connect_by_es_eds varchar(20) ) as
2024-08-09 15:25:07.300 declare stt varchar(255) = 'select mon$remote_protocol from mon$attachments where mon$attachment_id = current_connection';
2024-08-09 15:25:07.300 begin
2024-08-09 15:25:07.300 for
2024-08-09 15:25:07.300 execute statement (stt)
2024-08-09 15:25:07.300 on external 'inet4://127.0.0.1/{act.db.db_path}'
2024-08-09 15:25:07.300 as user '{act.db.user}' password '{act.db.password}'
2024-08-09 15:25:07.300 into protocol_when_connect_by_es_eds
2024-08-09 15:25:07.300 do
2024-08-09 15:25:07.300 suspend;
2024-08-09 15:25:07.300 end
2024-08-09 15:25:07.300 ^
2024-08-09 15:25:07.300 set term ;^
2024-08-09 15:25:07.301 commit;
2024-08-09 15:25:07.301
2024-08-09 15:25:07.301 -- since 27.10.2019; checked again 13.06.2024
2024-08-09 15:25:07.301 connect 'inet6://[::1]/{act.db.db_path}';
2024-08-09 15:25:07.301
2024-08-09 15:25:07.301 select mon$remote_protocol as procotol_when_connect_from_isql
2024-08-09 15:25:07.301 from mon$attachments where mon$attachment_id = current_connection;
2024-08-09 15:25:07.301
2024-08-09 15:25:07.301 set term ^;
2024-08-09 15:25:07.301 execute block returns(protocol_when_connect_by_es_eds varchar(20) ) as
2024-08-09 15:25:07.301 declare stt varchar(255) = 'select mon$remote_protocol from mon$attachments where mon$attachment_id = current_connection';
2024-08-09 15:25:07.301 begin
2024-08-09 15:25:07.301 for
2024-08-09 15:25:07.301 execute statement (stt)
2024-08-09 15:25:07.301 -- Failed before fix #8156 ("Can not specify concrete IPv6 address in ES/EDS connection string"):
2024-08-09 15:25:07.301 on external 'inet6://[::1]/{act.db.db_path}'
2024-08-09 15:25:07.301 as user '{act.db.user}' password '{act.db.password}'
2024-08-09 15:25:07.301 into protocol_when_connect_by_es_eds
2024-08-09 15:25:07.301 do
2024-08-09 15:25:07.301 suspend;
2024-08-09 15:25:07.302 end
2024-08-09 15:25:07.302 ^
2024-08-09 15:25:07.302 set term ;^
2024-08-09 15:25:07.302 commit;
2024-08-09 15:25:07.302 """
2024-08-09 15:25:07.302
2024-08-09 15:25:07.302 expected_stdout = """
2024-08-09 15:25:07.302 PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv4
2024-08-09 15:25:07.302 PROTOCOL_WHEN_CONNECT_BY_ES_EDS TCPv4
2024-08-09 15:25:07.302 PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv6
2024-08-09 15:25:07.302 PROTOCOL_WHEN_CONNECT_BY_ES_EDS TCPv6
2024-08-09 15:25:07.302 """
2024-08-09 15:25:07.302
2024-08-09 15:25:07.302 act.expected_stdout = expected_stdout
2024-08-09 15:25:07.302 > act.isql(switches=['-q', f'inet://{act.db.db_path}'], input=sql_chk, connect_db=False)
2024-08-09 15:25:07.302 E firebird.qa.plugin.ExecutionError: ISQL execution failed
2024-08-09 15:25:07.302
2024-08-09 15:25:07.302 tests\bugs\core_5229_test.py:144: ExecutionError
2024-08-09 15:25:07.302 ---------------------------- Captured stdout setup ----------------------------
2024-08-09 15:25:07.302 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11060\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2024-08-09 15:25:07.303 -------------------------- Captured ISQL stdout call --------------------------
2024-08-09 15:25:07.303 Database: inet://H:\QA\temp\qa2024.tmp\fbqa\test_11060\test.fdb, User: SYSDBA
2024-08-09 15:25:07.303 Database: 'inet4://127.0.0.1/H:\QA\temp\qa2024.tmp\fbqa\test_11060\test.fdb', User: SYSDBA
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303 PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv4
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303 PROTOCOL_WHEN_CONNECT_BY_ES_EDS TCPv4
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303 Database: 'inet6://[::1]/H:\QA\temp\qa2024.tmp\fbqa\test_11060\test.fdb', User: SYSDBA
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303 PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv6
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303
2024-08-09 15:25:07.303 -------------------------- Captured ISQL stderr call --------------------------
2024-08-09 15:25:07.303 Statement failed, SQLSTATE = 42000
2024-08-09 15:25:07.303 External Data Source provider 'inet6://[' not found
2024-08-09 15:25:07.304 -At block line: 4, col: 13
|
2 #text |
act = <firebird.qa.plugin.Action pytest object at [hex]>
@pytest.mark.es_eds
@pytest.mark.version('>=3.0.1')
def test_1(act: Action):
if (res := check_ipv6_avail()) < 0:
pytest.skip(f"IPv6 not avail, retcode: {res}")
sql_chk = f"""
set list on;
commit;
connect 'inet4://127.0.0.1/{act.db.db_path}';
select mon$remote_protocol as procotol_when_connect_from_isql
from mon$attachments where mon$attachment_id = current_connection;
set term ^;
execute block returns(protocol_when_connect_by_es_eds varchar(20) ) as
declare stt varchar(255) = 'select mon$remote_protocol from mon$attachments where mon$attachment_id = current_connection';
begin
for
execute statement (stt)
on external 'inet4://127.0.0.1/{act.db.db_path}'
as user '{act.db.user}' password '{act.db.password}'
into protocol_when_connect_by_es_eds
do
suspend;
end
^
set term ;^
commit;
-- since 27.10.2019; checked again 13.06.2024
connect 'inet6://[::1]/{act.db.db_path}';
select mon$remote_protocol as procotol_when_connect_from_isql
from mon$attachments where mon$attachment_id = current_connection;
set term ^;
execute block returns(protocol_when_connect_by_es_eds varchar(20) ) as
declare stt varchar(255) = 'select mon$remote_protocol from mon$attachments where mon$attachment_id = current_connection';
begin
for
execute statement (stt)
-- Failed before fix #8156 ("Can not specify concrete IPv6 address in ES/EDS connection string"):
on external 'inet6://[::1]/{act.db.db_path}'
as user '{act.db.user}' password '{act.db.password}'
into protocol_when_connect_by_es_eds
do
suspend;
end
^
set term ;^
commit;
"""
expected_stdout = """
PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv4
PROTOCOL_WHEN_CONNECT_BY_ES_EDS TCPv4
PROCOTOL_WHEN_CONNECT_FROM_ISQL TCPv6
PROTOCOL_WHEN_CONNECT_BY_ES_EDS TCPv6
"""
act.expected_stdout = expected_stdout
> act.isql(switches=['-q', f'inet://{act.db.db_path}'], input=sql_chk, connect_db=False)
E firebird.qa.plugin.ExecutionError: ISQL execution failed
tests\bugs\core_5229_test.py:144: ExecutionError
|