Skip to content

Commit

Permalink
more links in FAQ
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Mar 6, 2014
1 parent cf8bd2d commit 2870e02
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
2 changes: 1 addition & 1 deletion Changes
@@ -1,5 +1,5 @@

4.88 2014-03-05
4.88 2014-03-06

4.87 2014-03-04
- Improved Mojo::ByteStream to allow more method chaining.
Expand Down
33 changes: 20 additions & 13 deletions lib/Mojolicious/Guides/FAQ.pod
Expand Up @@ -124,7 +124,8 @@ In L<Mojolicious> this event loop is L<Mojo::IOLoop>.
To protect your applications from excessively large requests and responses,
our HTTP parser has a cap after which it will automatically stop accepting new
data, and in most cases force the connection to be closed. This limit is
around C<10MB> by default, you can use the MOJO_MAX_MESSAGE_SIZE environment
around C<10MB> by default, you can use the attribute
L<Mojo::Message/"max_message_size"> or MOJO_MAX_MESSAGE_SIZE environment
variable to change this value.

=head2 What does the error "Maximum line size exceeded" mean?
Expand All @@ -133,14 +134,17 @@ This is a very similar protection mechanism to the one described in the
previous answer, but a little more specific. It limits the maximum length of
any C<\x0d\x0a> terminated part of a HTTP message, such as request line,
status line and headers. This limit is around C<10KB> by default, you can use
the MOJO_MAX_LINE_SIZE environment variable to change this value.
the attributes L<Mojo::Message/"max_line_size"> and
L<Mojo::Headers/"max_line_size"> or MOJO_MAX_LINE_SIZE environment variable to
change this value.

=head2 What does the error "Maximum buffer size exceeded" mean?

This protection mechanism is very similar to those mentioned in the two
previous answers. It limits how much content the HTTP parser is allowed to
buffer when parsing chunked, compressed and multipart messages. This limit is
around C<256KB> by default, you can use the MOJO_MAX_BUFFER_SIZE environment
around C<256KB> by default, you can use the attribute
L<Mojo::Content/"max_buffer_size"> or MOJO_MAX_BUFFER_SIZE environment
variable to change this value.

=head2 What does the error "EV does not work with ithreads" mean?
Expand Down Expand Up @@ -175,9 +179,11 @@ timers to finally generate a response.
To protect your applications from denial-of-service attacks, all connections
have an inactivity timeout which limits how long a connection may be inactive
before being closed automatically. It defaults to C<20> seconds for the user
agent and C<15> seconds for all built-in web servers, and is commonly referred
to as C<inactivity_timeout>. This timeout always applies, so you might have to
tweak it for applications that take a long time to process a request.
agent and C<15> seconds for all built-in web servers, and can be changed with
the attributes L<Mojo::UserAgent/"inactivity_timeout"> and
L<Mojo::Server::Daemon/"inactivity_timeout"> or the MOJO_INACTIVITY_TIMEOUT
environment variable. This timeout always applies, so you might have to tweak
it for applications that take a long time to process a request.

=head2 What does "Premature connection close" mean?

Expand All @@ -188,13 +194,14 @@ be closed immediately.

=head2 What does "Worker 31842 has no heartbeat, restarting" mean?

As long as they are accepting new connections, Hypnotoad worker processes send
heartbeat messages to the manager process at regular intervals, to signal that
they are still responsive. A blocking operation such as an infinite loop in
your application (or active connections after a worker has stopped accepting
new connections) can prevent this, and will force the affected worker to be
restarted after a timeout. This C<heartbeat_timeout> defaults to C<20> seconds
and can be extended if your application requires it.
As long as they are accepting new connections, worker processes of all
built-in preforking web servers send heartbeat messages to the manager process
at regular intervals, to signal that they are still responsive. A blocking
operation such as an infinite loop in your application (or active connections
after a worker has stopped accepting new connections) can prevent this, and
will force the affected worker to be restarted after a timeout. This timeout
defaults to C<20> seconds and can be extended with the attribute
L<Mojo::Server::Prefork/"heartbeat_interval"> if your application requires it.

=head1 MORE

Expand Down

0 comments on commit 2870e02

Please sign in to comment.