Repository navigation
plimsoll v0.17.2
Fixes from a review of v0.17.1: the warm pool's split now stays put under demand that takes turns at any pool size, a failing session call is proven to come back as a result before sessions are served, and the docker provider's shutdown no longer races its pool.
Sessions
- The warm pool's split holds at every size. v0.17.1's fix assumed small pools and two language sets: in larger pools one open still moved a set's share by up to size/16 of a container, so sessions alternating between JavaScript and Python moved a container on every open in odd pools of 9 or more, as did three sets in turn from 7 up. One open now moves a set's share by at most a quarter of a container (its weight is 1/(4 x pool size) in a pool of more than 4), and a container moves only when the move is worth more than 1.75 containers. In simulation, demand that takes turns or runs a few sessions of each moved nothing once settled at any size from 1 to 32, and random hints cost under 0.02 extra container starts per session; a lasting change still moves the pool within a few turnovers. docs/sessions.md, "A warm pool".
- The session startup check now runs a call whose code exits 3 and serves no sessions unless it comes back as a result with exit 3, on any provider.
- A pool whose image no longer runs a language the pool was asked for makes what it can and settles, instead of remaking the same container without pause. Embedders only.
- The docker provider's
Drainno longer waits on container removals the pool may still add to when its context ended first (a data race), and a pool started afterDrainis refused. Embedders only.
Images
- Preflight refuses an image whose
ENVsetsNODE_DEBUGorNODE_DEBUG_NATIVE.NODE_DEBUG=esmmakes node write to stderr before a call's start marker, so since v0.17.1 every failing session snippet on such an image came back as an error instead of its exit code.
Clients
@plimsollmark/clientand the Python client are at 0.17.2, unchanged apart from the version.
Upgrading
- An image whose
ENVsetsNODE_DEBUGorNODE_DEBUG_NATIVEnow fails Preflight. StartSessionPoolafterDrainreturns an error.