Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#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 Francesco Casella, 4 years ago

Cc: Martin Sjölund added

comment:2 by Francesco Casella, 4 years ago

Milestone: 1.17.01.18.0

comment:3 by Andreas Heuermann, 4 years ago

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.

comment:4 by Francesco Casella, 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 Martin Sjölund, 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 Andreas Heuermann, 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:7 by Francesco Casella, 4 years ago

No problem, we don't have to do it right now.

comment:8 by Martin Sjölund, 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 Martin Sjölund, 4 years ago

Owner: changed from Andreas Heuermann to Martin Sjölund
Status: newaccepted

comment:12 by Martin Sjölund, 4 years ago

Resolution: fixed
Status: acceptedclosed

comment:13 by Martin Sjölund, 4 years ago

Milestone: 1.18.01.17.0

comment:14 by Francesco Casella, 4 years ago

Thanks @sjoelund.se!

Unfortunately the model still fails because of some linear solver issue. But that's another story.

Note: See TracTickets for help on using tickets.