Move grid file retrieval code up into (retried) init code#61
Open
rdkls wants to merge 2 commits intomdirolf:masterfrom
Open
Move grid file retrieval code up into (retried) init code#61rdkls wants to merge 2 commits intomdirolf:masterfrom
rdkls wants to merge 2 commits intomdirolf:masterfrom
Conversation
… socket becomes invalid (e.g. happens when mongodb server restart) - we try reconnecting MONGO_MAX_RETRIES_PER_REQUEST times (default 1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)