couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan Ramage (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1697) if-none-match header causes 500 internal server error on CORS requests
Date Sun, 17 Mar 2013 14:49:14 GMT

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

Ryan Ramage commented on COUCHDB-1697:
--------------------------------------

Thanks for the review. Test case is here:

https://git-wip-us.apache.org/repos/asf?p=couchdb.git;a=blobdiff;f=test/etap/231-cors.t;h=ce52747924bb14472cb9eaf29fb46189c0354727;hp=a150867604ad2bf2e38f8c25a97756ed4ba10f2c;hb=02357223d3618467494a858ec9bae38352238261;hpb=2cc063040dffb2ef826b0c36d67d6b0b4e2cdeea

Next time I will do test with fix in same commit, easier to review.
                
> if-none-match header causes 500 internal server error on CORS requests
> ----------------------------------------------------------------------
>
>                 Key: COUCHDB-1697
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1697
>             Project: CouchDB
>          Issue Type: Bug
>          Components: HTTP Interface
>    Affects Versions: 1.3
>            Reporter: Ryan Ramage
>            Assignee: Ryan Ramage
>            Priority: Blocker
>             Fix For: 1.3
>
>
> Browsers can send a if-none-match header to couchdb, but this can will break when CORS
is enabled. The reason seems to be the header comes in as a binary, eg from the debug log
the header is:
> {'If-None-Match',"\"V9J3604P4V9VTR5H77SBHJW\""},
> When maybe_apply_cors_headers is called, the assumption is that the headers are strings.
This can be seen here: https://github.com/apache/couchdb/blob/b0420f9006915149e81607615720f32f21c76725/src/couchdb/couch_httpd_cors.erl#L219
> Thus a string:to_lower is undefined as can be seen in this stacktrace:
> [info] [<0.148.0>] Stacktrace: [{string,to_lower,
>                                  [undefined],
>                                  [{file,"string.erl"},{line,468}]},
>                                 {couch_httpd_cors,maybe_apply_cors_headers,2,
>                                  [{file,
>                                    "/Users/jan/Work/build-couchdb-mac/build-couchdb/git-build/https%3A%2F%2Fgit-wip-us.apache.org%2Frepos%2Fasf%2Fcouchdb.git%3A06c3f351f158f107a8293c7c6c9b2415b942f0e9/src/couchdb/couch_httpd_cors.erl"},
>                                   {line,219}]},
>                                 {couch_httpd,send_response,4,
>                                  [{file, 
> See original gist https://gist.github.com/ryanramage/5143964#file-gistfile1-txt-L64

--
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

Mime
View raw message