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

geo-engine / geoengine / 41039847285
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: feat/reprojection-performance
DEFAULT BRANCH: main
Ran 30 Oct 2026 10:55AM UTC
Jobs 1
Files 465
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

30 Oct 2026 10:18AM UTC coverage: 87.879% (+0.02%) from 87.859%
41039847285

push

github

web-flow
feat: query runtime decoupling (#1364)

* feat(backend): run queries on a shared processing runtime instead of the HTTP worker

actix runs every HTTP worker as a single-threaded runtime, so a query's
whole stream used to run on the worker that accepted the request.

Queries now run as tasks on the server's main multi-thread runtime
(`QueryContext::processing_runtime`, set by `PostgresContext`) and hand
finished items back through a bounded channel (`spawn_query`,
`spawn_plot_query`). Dropping the consumer aborts the task, errors are
forwarded as items and a panic ends the stream with an error.

Used by the PNG/GeoTIFF utils (WMS, WCS, OGC API tiles/coverages,
dataset from workflow), WFS, plots and the websocket streams.

* add plan document (temporary)

* feat(backend): run query consumers and tasks on the processing runtime

The previous step moved query streams off the HTTP workers, but their
consumers still ran there: PNG blit and encode, WCS GeoTIFF writing,
WFS GeoJSON merging, websocket Arrow IPC encoding and background tasks.

- `spawn_query_task` runs a whole query (query, fold, encode) as one
  abort-on-drop task on the processing runtime; `spawn_stream` does the
  same for streams with work mapped onto them, `spawn_query` builds on it
- PNG and GeoTIFF encoding run in `spawn_blocking` inside that task
- plots use `spawn_query_task`, `spawn_plot_query` is gone
- the task manager spawns tasks on the processing runtime
- failed query tasks are logged with their panic message
- Rayon threads are named `ge-rayon-{i}`

* test(backend): check that PNG queries run on the processing runtime

MockQueryContext gets an optional processing runtime. The test renders
the NDVI PNG with a separate, named runtime and checks that the query
and every tile poll happen on its threads.

* make Tokio Handle not optional

* fix(backend): give the PNG runtime test its processing runtime again and restore docs

* refactor(backend): address review: non-optional task ru... (continued)

403 of 425 new or added lines in 14 files covered. (94.82%)

1 existing line in 1 file now uncovered.

137151 of 156068 relevant lines covered (87.88%)

538222.21 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
93.64
-0.78% geoengine/services/src/api/handlers/plots.rs
4
98.08
-1.92% geoengine/operators/src/util/async_util.rs
4
96.82
-0.06% geoengine/services/src/contexts/postgres.rs
2
94.8
0.64% geoengine/operators/src/util/raster_stream_to_png.rs
2
63.52
0.24% geoengine/services/src/contexts/mod.rs
2
67.36
3.28% geoengine/services/src/processing_graphs/websocket_stream.rs
1
77.99
0.16% geoengine/operators/src/engine/query.rs
1
97.94
-0.09% geoengine/services/src/api/handlers/processing_graphs.rs

Coverage Regressions

Lines Coverage ∆ File
1
93.64
-0.78% geoengine/services/src/api/handlers/plots.rs
Jobs
ID Job ID Ran Files Coverage
1 41039847285.1 30 Oct 2026 10:55AM UTC 465
87.88
GitHub Action Run
Source Files on build 41039847285
  • Tree
  • List 465
  • Changed 17
  • Source Changed 15
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #41039847285
  • d1e9e2c3 on github
  • Prev Build on gh-readonly-queue/main/pr-1392-6e1f35d3497b45573f8c4d962e05a492572f59d1 (#40946126104)
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