Skip to content

CI problems with some combinations of runner & python tests

Some pipelines fail with hard to debug errors, see e.g. jobs/332326, jobs/332326, jobs/332335 or jobs/334487.

The problem are ValueError: Invalid file object: <_io.BufferedReader name=20> in the python bindings during callCMake:

DUNE-INFO: Rebuilding dune-py module
Traceback (most recent call last):
  File "test-ug.py", line 14, in <module>
    grid = dune.grid.ugGrid(reader, dimgrid=2)
  File "/builds/core/dune-grid/build-cmake/python/dune/grid/_grids.py", line 235, in ugGrid
    gridModule = module(includes, typeName)
  File "/builds/core/dune-grid/build-cmake/python/dune/grid/grid_generator.py", line 349, in module
    module = generator.load(includes, typeName, typeHash, *args, **kwargs)
  File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 169, in load
    return self.post(moduleName, source, postscript, extraCMake)
  File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 121, in post
    module = builder.load(moduleName, source, self.typeName[0], extraCMake)
  File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 345, in load
    self.compile(infoTxt=PrintCompiling, target=moduleName)
  File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 241, in compile
    logLevel=logging.INFO
  File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 219, in callCMake
    _, stderr = cmake.communicate()
  File "/usr/lib/python3.7/subprocess.py", line 939, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/usr/lib/python3.7/subprocess.py", line 1672, in _communicate
    selector.register(self.stdout, selectors.EVENT_READ)
  File "/usr/lib/python3.7/selectors.py", line 352, in register
    key = super().register(fileobj, events, data)
  File "/usr/lib/python3.7/selectors.py", line 238, in register
    key = SelectorKey(fileobj, self._fileobj_lookup(fileobj), events, data)
  File "/usr/lib/python3.7/selectors.py", line 225, in _fileobj_lookup
    return _fileobj_to_fd(fileobj)
  File "/usr/lib/python3.7/selectors.py", line 40, in _fileobj_to_fd
    "{!r}".format(fileobj)) from None
ValueError: Invalid file object: <_io.BufferedReader name=20>

These errors are unrelated to the changes of the corresponding MR. It seems that some runners are more likely to experience these problems, but I currently don't understand what exactly leads to the problem.

I observed the problem with dune-ci@epic.uni-muenster.de, dune-ci@sky.uni-muenster.de, ci-tu-dresden and one further Dresden runner. On the other hand it is not strictly due to some particular runner, as for an job, I observed, that it failed a couple of times in Dresden and the went through on sky.

I' unsure whether this is is a problem of the python bindings or of the docker images?!