Hi Amarin, Could you checkout the "0.4.5" tag of libevhtp and rebuild with that one? I don't think master is the right starting point. I tried your code and my Chrome (version 18.x devel), Firefox 9.0.1 and Opera 11.60 worked fine. I've statically build your code against libevent release-2.0.16-stable and libevhtp 0.4.5 and dynamically linked it with OpenSSL 0.9.8 on my Mac. In friendly letters all my browsers say "hello". Oscar On 13/1/12 8:50 PM, Amarin Phaosawasdi wrote: > Hi All, > > We're working on fixing an issue with one of our servers, which serves > HTTPS requests on one end, and makes asynchronous RPCs on the other end. > > The server uses libevhtp to serve HTTPS requests. But since it is also > based on libevent and we suspect it might have something to do with > bufferevent_openssl, we thought it is appropriate to post it here. > > When a HTTPS request comes in, a the server invokes an async RPC to an > internal server. When the RPC finishes, we then use the RPC results to > provide an HTTPS response to the browser. > > However, almost all the time the browser gives an error. > - "SSL received a record with an incorrect Message Authentication Code. > (Error code: ssl_error_bad_mac_read)." (in Firefox) > - "Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error." (in Chrome) > - "Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection > without sending any data. (in Chrome) > > Rarely, when the browser doesn't give an error, it either succeeds or > blocks forever. > > Repeated fails normally end with a segmentation fault in the server. > > When a synchronous RPC is used instead (everything is finished on the > callback stack), the error is gone and every request is successful. > > Also if the server is configured to serve HTTP requests instead of HTTPS, > it also always succeeds regardless or the RPC calling mode. > > Does anybody have an idea what might be going on? > > The attached code can be used to reproduce this issue. When the server is > run, use a browser to connect to https://127.0.0.1:1025. > > Tested with: > gcc/g++ 4.4.5 > Both openssl 0.9.8 and 1.0.0f > libevhtp development branch > libevent master branch > Debian 2.6.39-bpo.2-amd64 x86_64 > > Thank you, > Amarin >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature