PR# 19995 Once classes: crash in SCOOP mode

Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: Low
Date: 2026/06/06
Class: Bug
Severity: Non-critical
Number: 19995
Release: 25.12.9.8922
Confidential: No
Status: Open
Responsible:
Environment: win
Synopsis: Once classes: crash in SCOOP mode

Description
I got this crash in SCOOP mode in workbench mode when using once classes.
This crash is random, I was not able to reproduce it.

~~~~~~~~~~~~~~~~
b = a.b: False
b is {BB}.f: True

aa: system execution failed.
Following is the set of recorded exceptions:

******************************** Thread exception *****************************
In thread           Root thread            0x0 (thread id)
*******************************************************************************
-------------------------------------------------------------------------------
Class / Object      Routine                Nature of exception           Effect
-------------------------------------------------------------------------------
AA                  make @N                Segmentation violation:
<XXXXXXXXXXXXXXXX>                         Operating system signal.      Fail
-------------------------------------------------------------------------------
AA                  make @N
<XXXXXXXXXXXXXXXX>                         Routine failure.              Fail
-------------------------------------------------------------------------------
AA                  root's creation                                     
<XXXXXXXXXXXXXXXX>                         Routine failure.              Exit
-------------------------------------------------------------------------------
~~~~~~~~~~~~~~~~


--
Eric Bezault
To Reproduce
class AA

create

	make,
	make_separate

feature

	make
		local
			a: separate AA
		do
			create b.f
			create a.make_separate
			separate a as sa, b as sb do
				print ("b = a.b: " + (sb = sa.b).out + "%N")
				inspect sb
				when {separate BB}.f then
					print ("b is {BB}.f: True%N")
				else
					print ("b is {BB}.f: False%N")
				end
				inspect sa.b
				when {separate BB}.f then
					print ("a.b is {BB}.f: True%N")
				else
					print ("a.b is {BB}.f: False%N")
				end
			end
		end

	make_separate
		do
			create b.f
		end

	b: separate BB
		
end
~~~~~~~~~~~~~~~~
once class BB

create

	f

feature

	f
		once ("PROCESS")
		end
	
end
Problem Report Interactions