Closed maxkratz closed 1 year ago
I also observed this behavior - it seems to be a concurrency issue in the GipslEngine l.37:
constraints.values().parallelStream().forEach(constraint -> constraint.buildConstraints());
Workaround is building the constraints serial instead of parallel:
constraints.values().stream().forEach(constraint -> constraint.buildConstraints());
See: https://github.com/Echtzeitsysteme/gips-tests/blob/main/gipsl.all.build.filter/src/gipsl/all/build/filter/Model.gipsl
Sometimes, the test
testMap2to1NoIsDoubled()
(https://github.com/Echtzeitsysteme/gips-tests/blob/main/test.suite.gips/src/test/suite/gipsl/all/build/GipslAllBuildFilterTest.java#L46-L56) fails because some of the matches are missing.ILP solver output if test passes:
ILP solver output if test fails:
AFAIK, this behaviour is independent from the used pattern matcher (I've also tested it with Democles) and the used ILP solver (GUROBI and GLPK show the same error).