SYSTEM Cited by 1 source
Spring Boot¶
Spring Boot is the opinionated Spring framework distribution for JVM microservices. Spring Boot 3 (late 2022) requires Java 17+; its default servlet container is embedded Tomcat serving REST endpoints. Observability defaults route span data through Micrometer Tracing.
Relevance to the Netflix 2024-07-29 incident¶
Netflix's Java 21 migration fleet is on Spring Boot 3 + embedded
Tomcat + Micrometer Tracing with Brave bridge + Zipkin Reporter.
Spring Boot 3 makes enabling
virtual threads a one-line
config change — which also silently enables the VT-pinning
failure mode on every code path that transits synchronized
blocks containing blocking calls (including the default tracing
path through brave.RealSpan.finish). The stack composition is
load-bearing for the bug: each component is individually
reasonable, but they compose into the starvation deadlock
Netflix documented.
Seen in¶
- sources/2024-07-29-netflix-java-21-virtual-threads-dude-wheres-my-lock — The canonical wiki instance of a Spring Boot 3 + Java 21 + VT stack hanging under carrier-thread exhaustion from VT pinning inside Micrometer Tracing's Brave bridge.
Related¶
- systems/embedded-tomcat — Default servlet container.
- systems/micrometer-tracing — Observability abstraction.
- systems/java-21-virtual-threads — Enabled via single config in Spring Boot 3.
- companies/netflix — Fleet adopter.