Check firebird.log [no messages found for interval when this test was running]
Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
  + Statement failed, SQLSTATE = 42000
  + unsuccessful metadata update
  + -REVOKE failed
  + -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
  + RDB$USER                        SYSDBA
  + RDB$GRANTOR                     TMP$8462
  + RDB$PRIVILEGE                   M
  + RDB$GRANT_OPTION                0
  + RDB$RELATION_NAME               ROLE_8462
  + RDB$FIELD_NAME                  <null>
  + RDB$USER_TYPE                   8
  + RDB$OBJECT_TYPE                 13
  - Records affected: 0
  + Records affected: 1

LOG DETAILS:

2025-06-28 16:36:43.755
2025-06-28 16:36:43.755 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-28 16:36:43.755 tmp_user = <firebird.qa.plugin.User object at [hex]>
2025-06-28 16:36:43.755 tmp_role = <firebird.qa.plugin.Role object at [hex]>
2025-06-28 16:36:43.755
2025-06-28 16:36:43.755     @pytest.mark.version('>=4.0.6')
2025-06-28 16:36:43.755     def test_1(act: Action, tmp_user: User, tmp_role: Role):
2025-06-28 16:36:43.755
2025-06-28 16:36:43.755         test_sql = f"""
2025-06-28 16:36:43.755             set list on;
2025-06-28 16:36:43.755             set term ^;
2025-06-28 16:36:43.755             execute block as
2025-06-28 16:36:43.755             begin
2025-06-28 16:36:43.755                 execute statement 'drop role {tmp_role.name}';
2025-06-28 16:36:43.755             when any do
2025-06-28 16:36:43.755                 begin
2025-06-28 16:36:43.755                     --- nop ---
2025-06-28 16:36:43.755                 end
2025-06-28 16:36:43.755             end
2025-06-28 16:36:43.756             ^
2025-06-28 16:36:43.756             set term ;^
2025-06-28 16:36:43.756             commit;
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             grant RDB$ADMIN to {tmp_user.name};
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             commit;
2025-06-28 16:36:43.756             connect '{act.db.dsn}' user {tmp_user.name} password '{tmp_user.password}' role rdb$admin;
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             create role {tmp_role.name};
2025-06-28 16:36:43.756             grant {tmp_role.name} to {act.db.user};
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             commit;
2025-06-28 16:36:43.756             connect '{act.db.dsn}' user {act.db.user} password '{act.db.password}';
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             set count on;
2025-06-28 16:36:43.756
2025-06-28 16:36:43.756             --select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
2025-06-28 16:36:43.757             revoke {tmp_role.name} from {act.db.user};
2025-06-28 16:36:43.757             commit;
2025-06-28 16:36:43.757             select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
2025-06-28 16:36:43.757         """
2025-06-28 16:36:43.757
2025-06-28 16:36:43.757         expected_stdout = """
2025-06-28 16:36:43.757             Records affected: 0
2025-06-28 16:36:43.757         """
2025-06-28 16:36:43.757         act.expected_stdout = expected_stdout
2025-06-28 16:36:43.757         act.isql(input = test_sql, combine_output=True)
2025-06-28 16:36:43.757 >       assert act.clean_stdout == act.clean_expected_stdout
2025-06-28 16:36:43.757 E       assert
2025-06-28 16:36:43.757 E         + Statement failed, SQLSTATE = 42000
2025-06-28 16:36:43.757 E         + unsuccessful metadata update
2025-06-28 16:36:43.757 E         + -REVOKE failed
2025-06-28 16:36:43.757 E         + -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
2025-06-28 16:36:43.757 E         + RDB$USER                        SYSDBA
2025-06-28 16:36:43.757 E         + RDB$GRANTOR                     TMP$8462
2025-06-28 16:36:43.757 E         + RDB$PRIVILEGE                   M
2025-06-28 16:36:43.757 E         + RDB$GRANT_OPTION                0
2025-06-28 16:36:43.758 E         + RDB$RELATION_NAME               ROLE_8462
2025-06-28 16:36:43.758 E         + RDB$FIELD_NAME                  <null>
2025-06-28 16:36:43.758 E         + RDB$USER_TYPE                   8
2025-06-28 16:36:43.758 E         + RDB$OBJECT_TYPE                 13
2025-06-28 16:36:43.758 E         - Records affected: 0
2025-06-28 16:36:43.758 E         + Records affected: 1
2025-06-28 16:36:43.758
2025-06-28 16:36:43.758 tests\bugs\gh_8462_test.py:65: AssertionError
2025-06-28 16:36:43.758 ---------------------------- Captured stdout setup ----------------------------
2025-06-28 16:36:43.758 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11600\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-06-28 16:36:43.758 CREATE user: TMP$8462 PLUGIN: Srp
2025-06-28 16:36:43.758 CREATE role: ROLE_8462
2025-06-28 16:36:43.758 -------------------------- Captured stdout teardown ---------------------------
2025-06-28 16:36:43.758 DROP role: ROLE_8462
2025-06-28 16:36:43.758 DROP user: TMP$8462 PLUGIN: Srp
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_user = <firebird.qa.plugin.User pytest object at [hex]>
tmp_role = <firebird.qa.plugin.Role pytest object at [hex]>

    @pytest.mark.version('>=4.0.6')
    def test_1(act: Action, tmp_user: User, tmp_role: Role):
    
        test_sql = f"""
            set list on;
            set term ^;
            execute block as
            begin
                execute statement 'drop role {tmp_role.name}';
            when any do
                begin
                    --- nop ---
                end
            end
            ^
            set term ;^
            commit;
    
            grant RDB$ADMIN to {tmp_user.name};
    
            commit;
            connect '{act.db.dsn}' user {tmp_user.name} password '{tmp_user.password}' role rdb$admin;
    
            create role {tmp_role.name};
            grant {tmp_role.name} to {act.db.user};
    
            commit;
            connect '{act.db.dsn}' user {act.db.user} password '{act.db.password}';
    
            set count on;
    
            --select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
            revoke {tmp_role.name} from {act.db.user};
            commit;
            select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
        """
    
        expected_stdout = """
            Records affected: 0
        """
        act.expected_stdout = expected_stdout
        act.isql(input = test_sql, combine_output=True)
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E         + Statement failed, SQLSTATE = 42000
E         + unsuccessful metadata update
E         + -REVOKE failed
E         + -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
E         + RDB$USER                        SYSDBA
E         + RDB$GRANTOR                     TMP$8462
E         + RDB$PRIVILEGE                   M
E         + RDB$GRANT_OPTION                0
E         + RDB$RELATION_NAME               ROLE_8462
E         + RDB$FIELD_NAME                  <null>
E         + RDB$USER_TYPE                   8
E         + RDB$OBJECT_TYPE                 13
E         - Records affected: 0
E         + Records affected: 1

tests\bugs\gh_8462_test.py:65: AssertionError
Full history of outcomes and elapsed time, ms:
NN SNAP_INFO CS_outcome SS_outcome CS_run_time SS_run_time CS_run_beg CS_run_end SS_run_beg SS_run_end
1 4.0.6.3189 2025.02.25 1a1a5 F F 1747 1071 2025.06.28 13:20:08.437 2025.06.28 13:20:10.184 2025.06.28 12:21:29.965 2025.06.28 12:21:31.036

Elapsed time, ms. Chart for last 1 runs:

Last commits information (all timestamps in UTC):