Error when result is saved probably because of concurrent disc access

Hello,I built a very simple model, a hexahedron with an ellipsoid outside. But when I execute “Finalize run configuration and save project”, I always get a lot of error messages. But I can still run the next simulation.
There are error messages such as
error when result is saved probably because of concurrent disc access, the result will be saved back during the next time step",
"ERROR c.a.p.p.n.f.DatafieldWriter [DatafieldWriter.java:92] Error writing datafield: VolInteracFlag

Does anyone know what causes this error? I attach my geo, and parts of debug.log file.

my geo file:

cl__1 = 0.02;
cl__2 = 0.1;
Point(1) = {0.08, -0.15, -0.13, cl__1};
Point(2) = {0.08, -0.15 , 0.08, cl__1};
Point(3) = {-0.08, -0.15 , 0.08, cl__1};
Point(4) = {-0.08, -0.15 , -0.13, cl__1};
Point(5) = {-0.17, 0, 0.08, cl__1};
Point(6) = {-0.17, 0, -0.13, cl__1};
Point(7) = {-0.08, 0.15 , 0.08, cl__1};
Point(8) = {-0.08, 0.15 , -0.13, cl__1};
Point(9) = {0.08, 0.15, 0.08, cl__1};
Point(10) = {0.08, 0.15, -0.13, cl__1};
Point(11) = {0.17, 0, 0.08, cl__1};
Point(12) = {0.17, 0, -0.13, cl__1};
Point(201) = {1, 0, 0, cl__2};
Point(202) = {-1, 0, 0, cl__2};
Point(203) = {0, 1, 0, cl__2};
Point(204) = {0, -1, 0, cl__2};
Point(205) = {0, 0, 0.45, cl__2};
Point(206) = {0, 0, -0.45, cl__2};
Point(287) = {0, 0, 0, cl__1};
Line(1) = {1, 2};
Line(2) = {3, 2};
Line(3) = {4, 3};
Line(4) = {4, 1};
Line(5) = {5, 3};
Line(6) = {6, 5};
Line(7) = {6, 4};
Line(8) = {7, 5};
Line(9) = {8, 7};
Line(10) = {8, 6};
Line(11) = {9, 7};
Line(12) = {10, 9};
Line(13) = {10, 8};
Line(14) = {11, 9};
Line(15) = {12, 11};
Line(16) = {12, 10};
Line(17) = {2, 11};
Line(18) = {1, 12};
Ellipse(37) = {204, 287, 203, 205};
Ellipse(38) = {205, 287, 203, 203};
Ellipse(39) = {203, 287, 206, 206};
Ellipse(40) = {206, 287, 204, 204};
Ellipse(41) = {205, 287, 201, 201};
Ellipse(42) = {201, 287, 206, 206};
Ellipse(43) = {206, 287, 202, 202};
Ellipse(44) = {202, 287, 205, 205};
Circle(45) = {203, 287, 202};
Circle(46) = {202, 287, 204};
Circle(47) = {204, 287, 201};
Circle(48) = {201, 287, 203};
Line Loop(1) = {1, -2, -3, 4};
Plane Surface(1) = {1};
Line Loop(2) = {3, -5, -6, 7};
Plane Surface(2) = {2};
Line Loop(3) = {6, -8, -9, 10};
Plane Surface(3) = {3};
Line Loop(4) = {9, -11, -12, 13};
Plane Surface(4) = {4};
Line Loop(5) = {12, -14, -15, 16};
Plane Surface(5) = {5};
Line Loop(6) = {15, -17, -1, 18};
Plane Surface(6) = {6};
Line Loop(7) = {4, 18, 16, 13, 10, 7};
Plane Surface(7) = {7};
Line Loop(8) = {2, 17, 14, 11, 8, 5};
Plane Surface(8) = {8};
Line Loop(50) = {41, 48, -38};
Ruled Surface(50) = {50};
Line Loop(52) = {42, -39, -48};
Ruled Surface(52) = {52};
Line Loop(54) = {43, -45, 39};
Ruled Surface(54) = {54};
Line Loop(56) = {44, 38, 45};
Ruled Surface(56) = {56};
Line Loop(59) = {41, -47, 37};
Ruled Surface(59) = {59};
Line Loop(61) = {42, 40, 47};
Ruled Surface(61) = {61};
Line Loop(63) = {43, 46, -40};
Ruled Surface(63) = {63};
Line Loop(65) = {44, -37, -46};
Ruled Surface(65) = {65};
Surface Loop(1) = {1, 2, 3, 4, 5, 6, 7, 8};
Surface Loop(67) = {50, 52, 61, 63, 54, 56, 65, 59};
Volume(77) = {67, 1};
Physical Surface(68) = {1, 2, 3, 4, 5, 6, 7, 8};
Physical Surface(69) = {50, 52, 54, 56, 59, 61, 63, 65};
Physical Volume(70) = {77};

=========================================================================
part of debug.log

2022-02-27 20:39:23,287 DEBUG BundleController:Project [CommandLogLevel.java:42] Saving SPIS project - null
2022-02-27 20:39:23,582 DEBUG c.a.p.p.n.f.MeshMaskWriter [MeshMaskWriter.java:65] error when result is saved probably because of concurrent disc access, the result will be saved back during the next time step.
java.lang.NullPointerException: null
at com.artenum.penelope.plugin.netcdf.field.MeshMaskWriter.writeMetaData(MeshMaskWriter.java:86) ~[com-artenum-penelope-plugin-netcdf-3.2.4.jar:na]
at com.artenum.penelope.plugin.netcdf.field.MeshMaskWriter.writeMeshMask(MeshMaskWriter.java:55) ~[com-artenum-penelope-plugin-netcdf-3.2.4.jar:na]
at org.keridwen.modelling.data.model.io.writer.DatafieldWriter.writeContent(DatafieldWriter.java:57) [org-keridwen-modelling-data-model-3.6.0.jar:na]
at org.keridwen.core.data.model.impl.DefaultNode.saveNode(DefaultNode.java:188) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.impl.DefaultNode.saveNodeAs(DefaultNode.java:201) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:178) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeTree(DefaultTreeWriter.java:113) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.impl.DefaultDataModel.saveModel(DefaultDataModel.java:128) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.spis.ui.model.SpisModel$$Proxy.saveModel(Unknown Source) [na:na]
at org.spis.ui.project.command.SaveCommand.run(SaveCommand.java:47) [org-spis-ui-project-6.1.0.jar:6.1.0]
at org.spis.ui.project.command.SaveCommand.run(SaveCommand.java:19) [org-spis-ui-project-6.1.0.jar:6.1.0]
at org.keridwen.core.messaging.AbstractCommand.execute(AbstractCommand.java:223) [org-keridwen-core-messaging-3.0.14.jar:na]
at org.keridwen.core.messaging.DefaultBundleController$CallableCommand.call(DefaultBundleController.java:267) [org-keridwen-core-messaging-3.0.14.jar:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
ERROR c.a.p.p.n.f.DatafieldWriter [DatafieldWriter.java:92] Error writing datafield: VolInteracFlag
URI: null
isRelative: true
Detailed datafield: AbstractDataField [id=71, name=VolInteracFlag, localisation=POLYHEDRON, isValid=false, timeStamp=-1, unit=SimpleStringUnit [unit=, standardUnit=], meshMask= [id=71, name=, description=, meshElementIds={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,…, 20991, 20992, 20993, 20994, 20995}, meshType=POLYHEDRON], dataArray=nbData: 20996/dimension: 0]
java.lang.NullPointerException: null
at com.artenum.penelope.plugin.netcdf.field.DatafieldWriter.writeMetaData(DatafieldWriter.java:81) [com-artenum-penelope-plugin-netcdf-3.2.4.jar:na]
at com.artenum.penelope.plugin.netcdf.field.DatafieldWriter.writeDatafield(DatafieldWriter.java:56) [com-artenum-penelope-plugin-netcdf-3.2.4.jar:na]
at org.keridwen.modelling.data.model.io.writer.DatafieldWriter.writeContent(DatafieldWriter.java:67) [org-keridwen-modelling-data-model-3.6.0.jar:na]
at org.keridwen.core.data.model.impl.DefaultNode.saveNode(DefaultNode.java:188) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.impl.DefaultNode.saveNodeAs(DefaultNode.java:201) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:178) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeChildren(DefaultTreeWriter.java:181) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.io.impl.DefaultTreeWriter.writeTree(DefaultTreeWriter.java:113) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.keridwen.core.data.model.impl.DefaultDataModel.saveModel(DefaultDataModel.java:128) [org-keridwen-core-data-model-3.0.14.jar:na]
at org.spis.ui.model.SpisModel$$Proxy.saveModel(Unknown Source) [na:na]
at org.spis.ui.project.command.SaveCommand.run(SaveCommand.java:47) [org-spis-ui-project-6.1.0.jar:6.1.0]
at org.spis.ui.project.command.SaveCommand.run(SaveCommand.java:19) [org-spis-ui-project-6.1.0.jar:6.1.0]
at org.keridwen.core.messaging.AbstractCommand.execute(AbstractCommand.java:223) [org-keridwen-core-messaging-3.0.14.jar:na]
at org.keridwen.core.messaging.DefaultBundleController$CallableCommand.call(DefaultBundleController.java:267) [org-keridwen-core-messaging-3.0.14.jar:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]

Hello,

When the simulation is running, each time a new point is added in the live monitoring plots, the data of these new plots are saved on the disc. If the previous result data is not finished to be saved yet then you have an error because several data are saved in the same time on the same file. As the error explain, there is a concurrent disc access.

To avoid these errors, you can set a longer period between 2 points for your live monitoring instruments.

These errors do not disturb the simulation run.

Regards,

Benjamin

Hello ruard ,Thank you for your reply,your answer helped me. But I am a new user, I don’t know where the parameter “a period between 2 points for live monitoring instruments” is . Could you please provide further details?

Regards
Xin

Hello Xin,

According to the SPIS user manual (ESA-SPISGEO-D7-SUM-2012-08-002-Vers3-Rev5.pdf) page 73, you have the two following parameters:

  • Sampling Period: instrumentSamplePeriod which = the time step between two measurements
  • SamplingDuration: instrumentObservationDuration which = the duration used to average the data
    between two sampling period

Regards,

Benjamin

Hello Benjamin,
Thanks for your detailed answer, it is very helpful for me.

Regards,

Xin