| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| concourse-server-0.12.1.1773178521.bin | 2026-03-10 | 99.2 MB | |
| README.md | 2026-03-10 | 3.9 kB | |
| Version 0.12.1 source code.tar.gz | 2026-03-10 | 165.6 MB | |
| Version 0.12.1 source code.zip | 2026-03-10 | 166.9 MB | |
| Totals: 4 Items | 431.7 MB | 0 | |
- Fixed a bug that caused
searchoperations to deadlock subsequent writes and commits by leaving Buffer page read locks held after the search completed. This affected code paths that invokesearchdirectly and query paths that delegate tosearchforCONTAINS/NOT_CONTAINSevaluations. - Fixed a bug that could deadlock subsequent operations when an
AtomicOperationencountered an unexpected exception while applying writes to the durable store because commit-time locks were not guaranteed to be released on that failure path. - Fixed a bug in the
LockBrokerwhere contended range lock acquisitions would spin-wait indefinitely instead of parking the thread. TheRangeLock.park()method never actually parked any thread because its queue management logic prevented threads from ever being added to the wait queue. This caused threads blocked on a range lock to burn 100% CPU while waiting, and amplified the impact of any upstream lock contention by keeping blocked threads running hot instead of yielding the CPU. - Added persistent, environment-scoped storage for plugins. Plugins can now durably store data that survives installs, upgrades, and uninstalls via the new
Plugin#storage()API. Each plugin receives an isolated storage scope rooted at{plugins.data_directory}/{bundle_name}/{environment}/, with containment enforcement that prevents directory traversal escapes. The storage root is configurable via the newplugins.data_directoryoption inconcourse.yaml.- The legacy
PluginStateContainerstorage methods (data(),localStorage(),memoryStorage(),tempStorage()) are now deprecated in favor ofPlugin#storage()and directBucketcreation where necessary
- The legacy
- Added plugin test framework support for specifying a custom java binary. Plugin tests can now specify a custom
javabinary for the plugin's JVM via thePluginTest#javaBinary()method. The binary path is injected into the plugin bundle'sconf/plugin.prefsas thejava_binarysetting before installation. Tests that implement the newPluginTestWithAutoJavaBinarycan automatically discovers the highest installed JDK on the host machine. This allows plugins that target newer versions of Java to use the ETE test framework for testing. - Added a comprehensive server monitoring and observability framework. Concourse Server now exposes real-time operational metrics via JMX and a new
monitorCLI tool, enabling operators to observe server health, diagnose performance issues, and track resource utilization without external tooling.monitorCLI tool: runconcourse monitorwith subcommands (overview,storage,operations,transactions,locks,heap,gc,threads,transport,compaction) to view formatted metric dashboards. Use--jsonfor machine-readable output,--watchfor continuous refresh with per-interval delta tracking,--intervalto control the refresh rate, and-eto target a specific environment.- JMX access: metrics are exposed as standard MXBeans under
com.cinchapi.concourse:type=Server(server-wide) andcom.cinchapi.concourse:type=Engine,environment=<name>(per-environment). - Concourse Server can expose monitoring metrics on a Prometheus-compatible HTTP endpoint for scraping by Prometheus, Grafana, GKE Managed Prometheus, or any compatible collector.
- Set
monitoring.export_metrics: trueinconcourse.yamlto enable export on the default port (9091). The export port is configurable viamonitoring.metrics_port. - To push metrics via OpenTelemetry (OTLP) to services like Datadog, New Relic, or an OpenTelemetry Collector, set
monitoring.enable_opentelemetry: trueand configure the endpoint, protocol, and interval inconcourse.yaml.
- Set
- Fixed a bug that caused the
CONTAINSandNOT_CONTAINSsearch operators to fail when used with navigation keys (e.g.,mother.children contains 'foo').