Oracle HTTP Server SSL Proxypass With Chunked Data Responses Causes High CPU Usage

(Doc ID 2327240.1)

Last updated on NOVEMBER 14, 2017

Applies to:

Oracle HTTP Server - Version 11.1.1.7.0 and later
Information in this document applies to any platform.

Symptoms

When ProxyPass requests are forwarded to a webserver's SSL port and chunked data responses are returned, this caused the httpd.worker process to immediate consume high cpu eg. 80% or higher as observed in top output.

strace show repeating " -1 EAGAIN (Resource temporarily unavailable)" entries and no data read from the file descriptor(fd)

[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625579881}) = 0
[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625611598}) = 0
[pid 3658] read(19, 0x25bf048, 8000) = -1 EAGAIN (Resource temporarily unavailable)
[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625684088}) = 0
[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625715953}) = 0
[pid 3658] read(19, 0x25bf048, 8000) = -1 EAGAIN (Resource temporarily unavailable)
[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625788549}) = 0
[pid 3658] clock_gettime(CLOCK_REALTIME, {1507221405, 625820423}) = 0

Issue does not reproduce if request is forwarded to backend server's http port. Issue only reproduce if ssl is used between OHS and backend server.



Changes

Following is a sample configuration to reproduce the issue.  The application in server1.oracle.com returns chunked data.

SSLProxyEngine on
SSLProxyWallet "/tmp/testwallet"
ProxyPass / https://server1.oracle.com/
ProxyPassReverse / https://server1.oracle.com/

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms