nginx-gridfs
nginx-gridfs copied to clipboard
Move grid file retrieval code up into (retried) init code
It the mongo server restarts after nginx has started, nginx-gridfs then has a stale socket. This wasn't getting picked up in the handler's initial code to check connection, and would fail later at "gridfs_find_query" time, returning 404.
This commit moves the "gridfs_find_query" call into the handler's initial gridfs_init loop, which is retried (by default) once if it initially fails. The result is that if the mongo server restarts, nginx no longer has to be restarted to clear the stale handler; the failure of the find request triggers the "ngx_http_mongo_reconnect" call, then the subsequent call is successful (unless there actually is something wrong)