[ 
https://issues.apache.org/jira/browse/COUCHDB-1651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13579756#comment-13579756
 ] 

Benoit Chesneau commented on COUCHDB-1651:
------------------------------------------

This patch is good enough, at least it makes sure the process will crash, 
throwing wasn't enough ere since it wasn't catched to exit the process. Couple 
of remarks:

[~pfraze] the recursion limit you still get is probably due to the fact you 
achieved the limit.

I think a better way to handle the recursion limit would be resolving all the 
routes first (in case of routes above the design docs) before to go back in the 
normal request handling. So we can cache the result and check if we already 
resolved it. I will provide a patch asap that does that. Also it would be good 
to have a proper unittest to make sure we effectively fixed the problem.
                
> Server responds 400 "Exceeded rewrite recursion limit" indefinitely
> -------------------------------------------------------------------
>
>                 Key: COUCHDB-1651
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1651
>             Project: CouchDB
>          Issue Type: Bug
>          Components: HTTP Interface
>            Reporter: Paul Frazee
>         Attachments: resolve_spurious_rewrite_limit_errors.patch
>
>
> Running 1.2.1 on Windows 7 as a service.
> hosts file includes "127.0.0.1 grimwire.local"
> CouchDB conf includes vhosts entries:
> grimwire.local:5984            /grimwire/_design/grimwire/_rewrite
> grimwire.local:5984/local      /grimwire/_design/local/_rewrite
> 'grimwire' design doc rewrites:
> [
>       {
>               "from": "",
>               "to": "index.html",
>               "method": "GET"
>       },
>       {
>               "from": "*",
>               "to": "*"
>       }
> ]
> 'local' design doc rewrites:
> [
>       {
>               "from":"",
>               "to":"index.html",
>               "method":"GET"
>       },
>       {
>               "from":"/posts",
>               "to":"_list/wallpost/wallpost-by-created_at",
>               "method":"GET"
>       },
>       {
>               "from":"/posts",
>               "to":"_update/wallpost",
>               "method":"POST"
>       },
>       {
>               "from":"/posts/:id",
>               "to":"_show/wallpost/:id",
>               "method":"GET"
>       },
>       {
>               "from":"/posts/:id",
>               "to":"_update/wallpost/:id",
>               "method":"PUT"
>       },
>       {
>               "from":"*",
>               "to":"*"
>       }
> ]
> Problem:
> The requests work as expected for some unknown period, then begin to respond 
> with a 400 status and the "Exceeded rewrite recursion limit" error message. 
> Changing the rewrites rules for both applications, including setting them to 
> empty arrays, had no effect.
> The problem was solved by restarting the CouchDB service.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to