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

geo-engine / geoengine / 42491689542
88%

Build:
DEFAULT BRANCH: main
Ran 08 Nov 2026 03:17PM UTC
Jobs 1
Files 473
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

08 Nov 2026 01:55PM UTC coverage: 88.132% (+0.02%) from 88.114%
42491689542

push

github

web-flow
fix(backend): share compiled expressions and clean them up (#1410)

* fix(backend): share compiled expressions and clean them up

Compile each distinct expression once per server and share the loaded
library between all operators through ExecutionContext. Unload libraries
that are unused and idle for a configurable time, with a cap on idle
libraries, and remove workspaces left behind by killed processes on the
next start. Compiling moves from query_processor() to initialization.

Not compiled or tested locally yet.

* fix(backend): fix build and stale expression workspace detection

Add the expression environment to the third PostgresContext initializer
and use Duration::from_mins to satisfy clippy.

Judge a workspace's age by its lock file. The directory's mtime changes
with every library, so a killed server's workspace was skipped if a
library changed within 60 seconds of the restart.

* fix(backend): limit expression compilations and restrict their workspace

Limit concurrent compilations with the new max_concurrent_compilations
setting, since raster expressions now compile on the blocking pool. Hold
the permit until the compiler ends, even if the request gets cancelled.

Enforce max_idle_libraries after each build, since new libraries can
arrive much faster than the regular sweeps.

Create the workspace with mode 0700, so that nobody else can read or
replace the libraries the server loads, or hold its lock file.

Add tests for the sweep thread and the limit, and remove the unused
from_ast and pretty_code.

* fix(backend): parse expressions in blocking tasks and document the cache

Review feedback: the length of an expression is up to the user, so parsing
must not block a worker. On main, the vector operator already did this.

* fix(backend): use moka for compiled expressions and a dedicated workspace

Review feedback:
- moka replaces the mutex-protected map and the system thread. A tokio task
  keeps cleaning up on an idle server.
- The cache limi... (continued)

330 of 356 new or added lines in 13 files covered. (92.7%)

1 existing line in 1 file now uncovered.

139135 of 157871 relevant lines covered (88.13%)

532219.23 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
0.0
0.0% geoengine/services/src/server.rs
6
91.11
5.75% geoengine/expression/src/dependencies.rs
6
95.71
geoengine/operators/src/processing/expression/environment.rs
4
62.27
-0.07% geoengine/operators/src/engine/execution_context.rs
3
96.76
-0.07% geoengine/services/src/contexts/postgres.rs

Coverage Regressions

Lines Coverage ∆ File
1
96.76
-0.07% geoengine/services/src/contexts/postgres.rs
Jobs
ID Job ID Ran Files Coverage
1 42491689542.1 08 Nov 2026 03:17PM UTC 473
88.13
GitHub Action Run
Source Files on build 42491689542
  • Tree
  • List 473
  • Changed 17
  • Source Changed 16
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #42491689542
  • bce5cb6c on github
  • Prev Build on gh-readonly-queue/main/pr-1419-3a0f6135ea6dc42a6fe15d424a6143bf80576e7f (#42482466440)
  • Next Build on main (#42634838382)
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