openstack/swift · Week of 2026-09-19
openstack/swift — 2026-09-19
Gunicorn and eventlet removal. The dominant thread this week is the migration off eventlet, with roughly two dozen changes landing across the WSGI stack. The gunicorn server implementation was completed and wired into swift-init and swift-reload, with lifecycle handling, config validation before apply, refusal signaling on failed reloads, and a per-port arbiter model for servers_per_port. The per-port supervisor now polls the ring, drains replaced workers until in-flight requests finish, and closes finished connections on the worker thread. Object-server hot paths regained zero-copy send under gunicorn, a known-size read shortcut, and pinned glibc malloc thresholds for gthread workers. Supporting work ported utils/logging/xprofile off eventlet, made proxy GET/PUT thread-safe, converted CLIs and the container reconciler to the shim, bounded network timeouts without eventlet, and added without-eventlet unit, functional, and probe CI jobs plus gunicorn docs. A gunicorn >= 25.2.0 floor was set.
Stability and correctness. The relinker gained an audit step that quarantines stale hash directories, the replicator now continues handoff cleanup after quarantine failures, memcached stops growing its pool after a failed connect, and s3api multi-delete order assertions were made concurrency-safe. Pile iteration was tightened to end on the consumer's own count and to count pending items under the lock.
Elsewhere. The feature/mpu and feature/threaded branches took master merges, and s3api dropped some unnecessary backwards-compat code.