#6204 closed defect (fixed)
Issues with Buildings model writing files to tmp directory
Reported by: | Francesco Casella | Owned by: | Martin Sjölund |
---|---|---|---|
Priority: | high | Milestone: | 1.17.0 |
Component: | Run-time | Version: | |
Keywords: | Cc: | Martin Sjölund |
Description
Please check Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.LoadAggregation.Validation.TemperatureResponseMatrix.
The Jenkins server reports:
assert | debug | Not possible to construct full path name of "tmp" | | | | No such file or directory
This apparently happens when this statement
Modelica.Utilities.Files.createDirectory("tmp");
is executed in the TemperatureResponseMatrix()
function. Since some models may need to use some temporary storage space in the simulation directory, we should allow this during testing as well.
When I simulate the model with OMEdit, I get
... loading "TStep" from "tmp/temperatureResponseMatrix/TemperatureResponseMatrix_validationTStep.mat" Solving a linear system of equations with function "Matrices.solve" is not possible, because the system has either no or infinitely many solutions (A is singular). simulation terminated by an assertion at initialization
so there is probably some other additional issue with the computation and/or writing and/or reading of that matrix.
Change History (14)
comment:1 by , 4 years ago
Cc: | added |
---|
comment:2 by , 4 years ago
Milestone: | 1.17.0 → 1.18.0 |
---|
comment:3 by , 4 years ago
comment:4 by , 4 years ago
We may as well exclude this from testing, if necessary. But maybe we can grant Jenkins some local workspace for cases like this one.
comment:5 by , 4 years ago
In this case they could probably run in individual directories on the same machine. It might be possible to run this in docker with some changes to how we do things. That could also make running older distributions easier... But I believe each file is run by OMPython, so it's not just changing it in that way. Doing that could resolve some DeviceDrivers tests that use the same TCP ports though.
comment:6 by , 4 years ago
This gives me headaches already ;-)
But should be possible to find the problem on Jenkins with a fair amount of debugging.
comment:8 by , 4 years ago
Looking at how the testing script does things... Each model is generated and run in a separate directory. And running this model manually does not work either.
I think this needs to be added as a bug to MSL since the MSL CreateDirectory calls ModelicaInternal_fullPathName to get the name of the directory to create, which fails if the path does not exist (on Linux). Perhaps a ModelicaInternal_fullPathNameNoFail variant is needed.
comment:11 by , 4 years ago
Owner: | changed from | to
---|---|
Status: | new → accepted |
comment:12 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:13 by , 4 years ago
Milestone: | 1.18.0 → 1.17.0 |
---|
comment:14 by , 4 years ago
Thanks @sjoelund.se!
Unfortunately the model still fails because of some linear solver issue. But that's another story.
Testing this on Jenkins could be a bit tricky. Probably I have to use a local Docker image or Jenkins to test this. I would add some debug prints and see where the function want's to create the file, which workdir the program is running in, who the uses is and so on.
And I should probably test this on Ubuntu first, maybe it is a general Linux problem and not related to Jenkins at all.
Or maybe @sjoelund.se can see the problem right away.