Project

General

Profile

Actions

Bug #579

closed

Opera and lighttpd + fcgi over SSL is broken

Added by Anonymous about 18 years ago. Updated over 16 years ago.

Status:
Fixed
Priority:
Normal
Category:
core
Target version:
-
ASK QUESTIONS IN Forums:

Description

This bug is already discussed here :

http://forum.lighttpd.net/topic/435

Short description :

Opera reloads page (or element of page) twice with delay (~4-6s), or even hangs in middle of loading page. It only happens only :

a) No proxy in the way client <--> webserver;

b) Page is served over SSL

c) Page (or element of page) is dynamic, handled over fcgi (happens at least with php). Do not matter, how big or complicated page.

It happens in, at least 1.4.8-1.4.11 versions of lighty, seems working in 1.3.16 (will report details later).

From discussion on IRC :

<ABLomas> any ideas WHY this is a problem ONLY_ with opera, ONLY_ when isn't used proxy, ONLY_ over SSL, and ONLY_ with requests, handled over FCGI ?

<weigon> FCGI is using chunked-encoding to send out content

<weigon> that allows to use keep-alive even if you don't no the size of the whole content

<weigon> it looks like this is borken with SSL + opera

<weigon> disabled http11 is disabling chunked encoding too

<ABLomas> and this may explain why it is working with proxy - proxy waits for full request to finish.... even over ssl (only CONNECT allowed, so no content analysis is done)

<ABLomas> and returns all content "in one go"

<weigon> exactly

Seems that disabling HTTP 1.1 solves this problem.

weigon offered workaround :

$HTTPuseragent =~ "Opera" { server.protocol-http11 = "disable" }

But it do not work at last for me. From debug - lighty enters this section, but http protocol version change seems has no effect in conditionals. Aditional drawback - older opera versions (and upgraded from old version with the same config) identifies as Internet Explorer; so this will not work for them.

-- ABLomas

Actions #1

Updated by Anonymous about 18 years ago

Aditional info :

Lighttpd 1.3.16 has this bug too, just a bit different... (sometimes_ lots of req, not only 2). Req/response headers (similar to 1.4.x version):


2006-03-13 18:56:33: (request.c.293) fd: 6 request-len: 492
GET /a.php HTTP/1.1
User-Agent: Opera/8.53 (Windows NT 5.1; U; en)
Host: testbox
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en
Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Pragma: no-cache
Cache-Control: no-cache
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

2006-03-13 18:56:33: (response.c.118) fd: 6 response-header-len: 163
HTTP/1.1 200 OK
Date: Mon, 13 Mar 2006 16:56:33 GMT
Transfer-Encoding: chunked
Content-type: text/html
X-Powered-By: PHP/4.3.10-16
Server: lighttpd/1.3.16

2006-03-13 18:57:05: (request.c.293) fd: 6 request-len: 492
GET /a.php HTTP/1.1
User-Agent: Opera/8.53 (Windows NT 5.1; U; en)
Host: testbox
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en
Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Pragma: no-cache
Cache-Control: no-cache
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

2006-03-13 18:57:05: (response.c.118) fd: 6 response-header-len: 163
HTTP/1.1 200 OK
Date: Mon, 13 Mar 2006 16:57:05 GMT
Transfer-Encoding: chunked
Content-type: text/html
X-Powered-By: PHP/4.3.10-16
Server: lighttpd/1.3.16

2006-03-13 18:57:37: (request.c.293) fd: 6 request-len: 539
GET /favicon.ico HTTP/1.1
User-Agent: Opera/8.53 (Windows NT 5.1; U; en)
Host: testbox
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en
Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: https://testbox/a.php
Pragma: no-cache
Cache-Control: no-cache
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

2006-03-13 18:57:37: (response.c.1272) file not found: /favicon.ico -> /var/www/favicon.ico
2006-03-13 18:57:37: (response.c.252) Response-Header:
HTTP/1.1 404 Not Found
Content-Length: 345
Date: Mon, 13 Mar 2006 16:57:37 GMT
Accept-Ranges: bytes
Content-Type: text/html
Server: lighttpd/1.3.16

Content of file a.php is very simple - just "static".

-- ABLomas

Actions #2

Updated by marc about 18 years ago

I confirm this behavior, lighttpd-1.4.11 + mod_fastcgi + php 4.4.0

Actions #3

Updated by Anonymous almost 18 years ago

I also can confirm this with lighttpd + mod_fastcgi + ruby on rails + ssl + opera. All of the above eventually occur but eventually work after the keep-alive times out:

  • pages only displaying partially
  • opera requesting the page again
  • ajax scripts not processing
  • opera showing the hourglass mouse cursor and never finishing loading the page

Here's how I fixed it:


# fix the bug with internet explorer and keep-alive + SSL
server.max-keep-alive-idle = 60

# fix the bug with opera acting all strange
$HTTP["useragent"] =~ "Opera" { server.max-keep-alive-requests = 0 }

-- wkonkel

Actions #4

Updated by jan over 17 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

this was a bug in Opera itself which we added a work-around for in 1.4.12

Actions #5

Updated by Anonymous over 16 years ago

Replying to jan:

this was a bug in Opera itself which we added a work-around for in 1.4.12

Useful ticket, thank You! acomplia

Actions

Also available in: Atom