rnewson commented on issue #5887: URL: https://github.com/apache/couchdb/issues/5887#issuecomment-3908613000
Given the timeout at 30s matches the ibrowse request timeout, I think what's happening here is resource exhaustion (and not a logic error in the index updating code). At some point ibrowse is unable to make new connections, or acquire one from its pool, in a timely manner (I can't prove this, nor induce it under artificial load). That the restart has a flurry of 409's, then some doc updates (the PUT and DELETE operations) and then successful queries is expected when querying a stale index (that large number of 409's at the start implies a fair number of concurrent search requests are happening). couchdb/nouveau 3.5.1 makes two significant changes over 3.5.0. Firstly, it switches to an optimistic pattern. it issues the search query (specifying the current db update sequence as the minimum required for a fresh result), gets a 409 if not fresh enough, and only then does it push updates. Secondly, it switches from ibrowse to gun (and from http/1.1 to http/2). I think it is the latter change that is likely to resolve this issue (whereas originally I was expecting it to be a side-effect of the first thing as perhaps the new update pattern didn't have the same bug as the current one. I think, on balance, there probably isn't that bug after all). So... I would invite you to upgrade to 3.5.1 and re-report this issue if it occurs there too. If it does, please capture the logs on couchdb and nouveau side while it is happening, and also try querying the index, through couchdb, with `update=false` and let me know if that works (imo it always should, but if it doesn't then that's very interesting). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
