Closed samsondav closed 6 years ago
Looking at the stacktrace I think the fix for this will probably end up in Ace.
I still thinking testing what happens with duplicate headers would be a good idea to rule it out in cases where anyone else sees it.
On the logging, sure. Ace could log at debug level the packets that arrive for HTTP/1 (The HTTP/2 implementation already logs each frame for debug)
I think because the vast majority of headers are submitted singly the best thing would be to concatenate the headers that are duplicated. for all headers I think this means join by ,
except cookie that are joined by ;
Can't we just return them as proplists and let users decide how to handle it? Looking back at how query was parsed, I think we just use the existing key/value lists. https://github.com/CrowdHailer/raxx/blob/master/lib/raxx.ex#L27-L35
I think that would work just as well. There were plans to put the headers in a map so they were easier to match on but I think matching on headers is not something i'm worried about loosing
Stacktrace is here:
Have seen this two or three times. Doesn't appear to be correlated with anything.
I am completely sure we aren't setting headers more than once in our code. Is there some logging or tracing we can add that might help debug this if it happens again?