• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FlexMeasures / flexmeasures / 41819946573
88%

Build:
DEFAULT BRANCH: main
Ran 04 Nov 2026 11:27AM UTC
Jobs 1
Files 195
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Nov 2026 11:19AM UTC coverage: 87.694%. Remained the same
41819946573

push

github

web-flow
Keep appsi solver output off the app's log handlers, which could deadlock a worker (#2807)

* Keep appsi solver output off the app's log handlers

Pyomo's appsi solvers (e.g. appsi_highs) solve inside capture_output(capture_fd=True),
which points file descriptors 1 and 2 at a pipe that a reader thread drains into config.solver_output_logger.
That logger propagates to the root by default,
so a console handler writes each line back into the pipe it came from:
lines pile up with one more prefix per pass,
and once a line no longer fits in the pipe, the reader thread blocks on its own write while holding the handler's lock,
which hangs the worker.

device_scheduler now hands appsi solvers a logger of its own, registered nowhere,
whose one handler writes to a copy of stdout taken before the capture starts.
Solver output and any warnings logged during the solve then reach the console exactly once.

The new subprocess test reproduces the loop through device_scheduler at DEBUG,
and fails without the fix (lines carry up to five prefixes) as well as with a fix that merely drops the output.

Closes #2742

Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>

* Changelog entry and docs for keeping appsi solver output off the log handlers

Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>

* Link the changelog entry to PR #2807

Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>

* Say in the docs that appsi solver output no longer reaches the log file, and how to keep a HiGHS log

Signed-off-by: Ahmad-Wahid <ahmedwahid16101@gmail.com>

* Move the appsi solver-output helper to the planning utils

It is a utility around the solve, not part of the scheduling model, so it distracts from what linear_optimization.py is about.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UBBvKZkzbfEPKctwTN8SDf
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* Merge the changelog entries of the two HiGHS output fixe... (continued)

23 of 26 new or added lines in 2 files covered. (88.46%)

96 existing lines in 12 files now uncovered.

23102 of 26344 relevant lines covered (87.69%)

0.88 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
88.11
-0.24% flexmeasures/data/models/planning/utils.py

Coverage Regressions

Lines Coverage ∆ File
17
81.95
0.0% flexmeasures/data/models/generic_assets.py
15
90.66
0.0% flexmeasures/data/models/time_series.py
15
75.57
0.0% flexmeasures/data/queries/generic_assets.py
13
90.36
0.0% flexmeasures/data/models/data_sources.py
11
81.45
0.0% flexmeasures/data/schemas/reporting/pandas_reporter.py
8
93.67
0.0% flexmeasures/data/models/charts/belief_charts.py
5
93.79
0.0% flexmeasures/data/schemas/scheduling/__init__.py
4
82.05
0.0% flexmeasures/data/models/forecasting/__init__.py
3
88.11
-0.24% flexmeasures/data/models/planning/utils.py
3
88.24
0.0% flexmeasures/data/services/utils.py
1
97.56
0.0% flexmeasures/data/models/reporting/__init__.py
1
98.48
0.0% flexmeasures/data/models/reporting/profit.py
Jobs
ID Job ID Ran Files Coverage
1 41819946573.1 04 Nov 2026 11:27AM UTC 195
87.69
GitHub Action Run
Source Files on build 41819946573
  • Tree
  • List 195
  • Changed 29
  • Source Changed 29
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #41819946573
  • 3ae2b03c on github
  • Prev Build on main (#41727551109)
  • Next Build on main (#41821542780)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc