PR# 3500 PANIC after complex rescue/retry
Problem Report Summary
Submitter:
Category: Compiler
Priority: Medium
Date: 2003/08/06
Class: Bug
Severity: Serious
Number: 3500
Release: 5.4.0403
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461)
Synopsis: PANIC after complex rescue/retry
Description
Manu, I was trying to reproduce the code 16 error (Resumption attempt failed). Instead I got a PANIC. Since the code shown below is a lot like my code which generates the code 16 this may (or may not) be related. This is a completely reproducible problem. Randy ====================================================== test.exe: PANIC: unexpected harmful signal ... test.exe: system execution failed. Following is the set of recorded exceptions. NB: The raised panic may have induced completely inconsistent information: ------------------------------------------------------------------------------- Class / Object Routine Nature of exception Effect ------------------------------------------------------------------------------- ROOT_CLASS user_initialization @4 unexpected harmful signal: <0000000000BD0048> Eiffel run-time panic. Panic ------------------------------------------------------------------------------- ROOT_CLASS user_initialization @4 <0000000000BD0048> Routine failure. Panic ------------------------------------------------------------------------------- ROOT_CLASS make @1 <0000000000BD0048> Routine failure. Panic ------------------------------------------------------------------------------- ROOT_CLASS root's creation <0000000000BD0048> Routine failure. Bye ------------------------------------------------------------------------------- Press Return to finish the execution... ====================================================== class ROOT_CLASS inherit EXCEPTIONS creation make feature make is do user_initialization end user_initialization is do -- Melt this routine to get a slightly different error. if update_windows_in_progress then request_update_windows := True else update_windows_in_progress := True xyzzy -- xyzzy end rescue update_windows_in_progress := False request_update_windows := False retry end xyzzy is do user_initialization -- user_initialization if request_update_windows then raise("test") end rescue foo end foo is local l_retry: BOOLEAN do if not l_retry then raise("sldk") end rescue l_retry := True retry end request_update_windows: BOOLEAN update_windows_in_progress: BOOLEAN end
To Reproduce
Problem Report Interactions