Capture Highs output when solving
Summary
Highs logs are not entirely captured. As discussed on the Highs bug tracker, it can result in error messages like the following:
ERROR: Output stream (<_io.TextIOWrapper name='' mode='w' encoding='utf-8'>) closed before all output was written to it. The following was left in the output buffer: 'ERROR: Output stream (<_io.TextIOWrapper name='' mode='w'\nencoding='utf-8'>). The expected behaviour is that no error message and no log line is written.
Logs in Highs may be written by any function, including addRows. I think the reason for this issue is that they are not covered by TeeStream. This is related to #3003.
Steps to reproduce the issue
Run the hangs.py file from this repository on Windows
Error Message
Multiple lines like
ERROR: Output stream (<_io.TextIOWrapper name='' mode='w' encoding='utf-8'>) closed before all output was written to it. The following was left in the output buffer: 'ERROR: Output stream (<_io.TextIOWrapper name='' mode='w'\nencoding='utf-8'>)
Information on your system
Pyomo version: 6.7 Python version: 3.11 Operating system: Windows How Pyomo was installed (PyPI, conda, source): pip Solver (if applicable): Highspy