annotate docs/html/50x.html @ 6440:248aa2757332

Fixed timeouts with threaded sendfile() and subrequests. If a write event happens after sendfile() but before we've got the sendfile results in the main thread, this write event will be ignored. And if no more events will happen, the connection will hang. Removing the events works in the simple cases, but not always, as in some cases events are added back by an unrelated code. E.g., the upstream module adds write event in the ngx_http_upstream_init() to track client aborts. Fix is to use wev->complete instead. It is now set to 0 before a sendfile() task is posted, and it is set to 1 once a write event happens. If on completion of the sendfile() task wev->complete is 1, we know that an event happened while we were executing sendfile(), and the socket is still ready for writing even if sendfile() did not sent all the data or returned EAGAIN.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 18 Mar 2016 05:04:45 +0300
parents b5ba6f22a0fc
children 1cd63ae46243
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4840
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
1 <!DOCTYPE html>
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 <html>
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 <head>
4840
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
4 <title>Error</title>
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 <style>
4840
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
6 body {
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
7 width: 35em;
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
8 margin: 0 auto;
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
9 font-family: Tahoma, Verdana, Arial, sans-serif;
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
10 }
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 </style>
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 </head>
4840
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
13 <body>
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
14 <h1>An error occurred.</h1>
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
15 <p>Sorry, the page you are looking for is currently unavailable.<br/>
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
16 Please try again later.</p>
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
17 <p>If you are the system administrator of this resource then you should check
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
18 the <a href="http://nginx.org/r/error_log">error log</a> for details.</p>
b5ba6f22a0fc Improved 50x error page.
Valentin Bartenev <vbart@nginx.com>
parents: 663
diff changeset
19 <p><em>Faithfully yours, nginx.</em></p>
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 </body>
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 </html>