UpdateFeed and Feeds query and never close the result set, so every WebSub
delivery holds a pooled connection until the process exits. The database hit
max_connections tonight, psql could not connect, postgresStream.Init() failed,
timeline.Create returned nil and every push answered 400 "timeline not found"
- with an error that named a timeline rather than the exhausted pool. The
reader had received no pushes at all.
The feed body is also read once now: passing the request body straight to
ProcessContent empties it for the second channel a feed belongs to.
Tests need the redis and postgres services the pipeline starts; the build was
checked locally, not the suite.