Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • E escet
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare revisions
    • Locked files
  • Issues 102
    • Issues 102
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Eclipse ProjectsEclipse Projects
  • Eclipse ESCET (Supervisory Control Engineering Toolkit)
  • escet
  • Issues
  • #49

CIF simulator crashes on too many invariants

Simulating the following model results in a crash:

automaton def A():
    disc bool d = true;
    invariant d or d or d or d or d or d or d or d or d or d or d or d or d or d or d or d or d or d or d;
    location:
        initial;
end

group def G1():
    a1: A();
    a2: A();
end

group def G2():
    g1: G1();
    g2: G1();
end

group def G3():
    g1: G2();
    g2: G2();
end

group def G4():
    g1: G3();
    g2: G3();
end

group def G5():
    g1: G4();
    g2: G4();
end

group def G6():
    g1: G5();
    g2: G5();
end

group def G7():
    g1: G6();
    g2: G6();
end

group def G8():
    g1: G7();
    g2: G7();
end

group def G9():
    g1: G8();
    g2: G8();
end

group def G10():
    g1: G9();
    g2: G9();
end

g: G10();

The crash report states:

[Exception]
java.lang.RuntimeException: Compilation error.
	at org.eclipse.escet.cif.simulator.compiler.CifCompilerContext.compile(CifCompilerContext.java:1531)
	at org.eclipse.escet.cif.simulator.compiler.CifCompiler.compileSpec(CifCompiler.java:115)
	at org.eclipse.escet.cif.simulator.compiler.CifCompiler.compileSpec(CifCompiler.java:63)
	at org.eclipse.escet.cif.simulator.CifSimulator.loadSpec(CifSimulator.java:475)
	at org.eclipse.escet.cif.simulator.CifSimulator.simulateInternal(CifSimulator.java:216)
	at org.eclipse.escet.cif.simulator.CifSimulator.simulate(CifSimulator.java:115)
	at org.eclipse.escet.cif.simulator.CifSimulatorApp.runInternal(CifSimulatorApp.java:129)
	at org.eclipse.escet.common.app.framework.Application.run(Application.java:343)
	at org.eclipse.escet.common.app.framework.Application.run(Application.java:183)
	at org.eclipse.escet.common.eclipse.ui.BaseFileCommandHandler.run(BaseFileCommandHandler.java:261)
	at org.eclipse.escet.common.eclipse.ui.BaseFileCommandHandler$1.run(BaseFileCommandHandler.java:102)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.eclipse.escet.common.app.framework.javacompiler.RuntimeJavaCompilerException: Run-time Java code compilation failed (with 2062 source files):
with output (0):
with diagnostics (100):
    line 2739, column 11: ERROR: code too large for try statement
    line 2748, column 11: ERROR: code too large for try statement
    line 2757, column 11: ERROR: code too large for try statement
[...]
    line 3612, column 11: ERROR: code too large for try statement
    line 3621, column 11: ERROR: code too large for try statement
    line 3630, column 11: ERROR: code too large for try statement

	at org.eclipse.escet.common.app.framework.javacompiler.RuntimeJavaCompiler.compile(RuntimeJavaCompiler.java:187)
	at org.eclipse.escet.cif.simulator.compiler.CifCompilerContext.compile(CifCompilerContext.java:1529)
	... 11 more

The problem with too many invariants is that the code ends up in a single method, and that violates Java class file constraints. We encountered similar issues before. We need to split it up into multiple methods or so.

Assignee
Assign to
Time tracking

Copyright © Eclipse Foundation, Inc. All Rights Reserved.     Privacy Policy | Terms of Use | Copyright Agent