PR# 19922 Unexpected exception from {ARRAYED_SET} set operations
Problem Report Summary
Submitter: rosivaldo
Category: EiffelBase
Priority: Low
Date: 2024/05/23
Class: Bug
Severity: Non-critical
Number: 19922
Release: 23.09 (23.09.10.7341 - win64)
Confidential: No
Status: Open
Responsible:
Environment: win64
Synopsis: Unexpected exception from {ARRAYED_SET} set operations
Description
A sequence of supposedly legal operations are applied upon an instance of {ANNOTATED_ARRAYED_SET} (descendant of {ARRAYED_SET}). Sometimes, I don't know why, the last operation fails with the exception below.
index_small_enough: CHECK_VIOLATION raised (CHECK_VIOLATION)
******************************** Thread exception *****************************
In thread Root thread 0x0 (thread id)
*******************************************************************************
-------------------------------------------------------------------------------
Class / Object Routine Nature of exception Effect
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
item @4 index_small_enough:
<00000000046F2688> (From ARRAYED_LIST) Runtime check violated. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
item @4
<00000000046F2688> (From ARRAYED_LIST) Routine failure. Fail
-------------------------------------------------------------------------------
SUBSET_STRATEGY_GENERIC
disjoint @17
<000000000474A598> Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
disjoint @4
<00000000046C5808> (From TRAVERSABLE_SUBSET)
Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
disjoint @3
<00000000046C5808> Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
subtract @10 is_disjoint:
<00000000046C5808> (From TRAVERSABLE_SUBSET)
Postcondition violated. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
subtract @10
<00000000046C5808> (From TRAVERSABLE_SUBSET)
Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
subtract @3
<00000000046C5808> Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET
symdif @6
<00000000046C5808> Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET_TESTS_DSCR
inline-agent#1 of test_symdif @20
<000000000448EB68> (From ANNOTATED_ARRAYED_SET_TESTS)
Routine failure. Fail
-------------------------------------------------------------------------------
PREDICATE fast_item
<00000000046C5778> (From FUNCTION) Routine failure. Fail
-------------------------------------------------------------------------------
PREDICATE item @3
<00000000046C5778> (From FUNCTION) Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET_TESTS_DSCR
test_symdif @1
<000000000448EB68> (From ANNOTATED_ARRAYED_SET_TESTS)
Routine failure. Fail
-------------------------------------------------------------------------------
ANNOTATED_ARRAYED_SET_TESTS_DSCR
test_symdif @3
<000000000448EB68> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_EVALUATOR invoke_routine
<000000000448A588> (From EQA_EXTERNALS) Routine failure. Fail
-------------------------------------------------------------------------------
PROCEDURE fast_call
<000000000448E298> Routine failure. Fail
-------------------------------------------------------------------------------
PROCEDURE call @3
<000000000448E298> Routine failure. Fail
-------------------------------------------------------------------------------
PROCEDURE fast_call
<000000000448F828> Routine failure. Fail
-------------------------------------------------------------------------------
PROCEDURE call @3
<000000000448F828> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_TEST_EVALUATOR execute_test_stage @4
<000000000448E1C8> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_TEST_EVALUATOR execute @10
<000000000448E1C8> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_EVALUATOR execute_test @3
<000000000448A588> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_EVALUATOR main_loop @9
<000000000448A588> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_EVALUATOR make @12
<000000000448A588> Routine failure. Fail
-------------------------------------------------------------------------------
EQA_EVALUATOR root's creation
<000000000448A588> Routine failure. Exit
-------------------------------------------------------------------------------
To Reproduce
- Extract the files within main.7z attachment. - With EiffelStudio, open the project st_examples.ecf and compile its target named st_examples_test. - Target AutoTest tool to class:ANNOTATED_ARRAYED_SET_TESTS_DSCR/.*test_symdif. - Click the button "Debug filtered tests". - Press Ctrl+F5 (Run ignoring breakpoints). - Eventually the test will stop due to index_small_enough: CHECK_VIOLATION raised (CHECK_VIOLATION)