Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#6204 closed defect (fixed)

Issues with Buildings model writing files to tmp directory

Reported by: casella Owned by: sjoelund.se
Priority: high Milestone: 1.17.0
Component: Run-time Version:
Keywords: Cc: sjoelund.se

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 Changed 3 years ago by casella

  • Cc sjoelund.se added

comment:2 Changed 3 years ago by casella

  • Milestone changed from 1.17.0 to 1.18.0

comment:3 Changed 3 years ago by AnHeuermann

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 Changed 3 years ago by casella

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 Changed 3 years ago by sjoelund.se

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 Changed 3 years ago by AnHeuermann

This gives me headaches already ;-)
But should be possible to find the problem on Jenkins with a fair amount of debugging.

comment:7 Changed 3 years ago by casella

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

comment:8 Changed 3 years ago by sjoelund.se

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 Changed 3 years ago by sjoelund.se

  • Owner changed from AnHeuermann to sjoelund.se
  • Status changed from new to accepted

comment:12 Changed 3 years ago by sjoelund.se

  • Resolution set to fixed
  • Status changed from accepted to closed

comment:13 Changed 3 years ago by sjoelund.se

  • Milestone changed from 1.18.0 to 1.17.0

comment:14 Changed 3 years ago by casella

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.