embedded perl, patch

Alexandr Gomoliako zzz at zzz.org.ua
Fri Oct 28 11:53:58 UTC 2011

On 10/28/11, Igor Sysoev <igor at sysoev.ru> wrote:
> On Thu, Oct 27, 2011 at 10:40:01PM +0300, Alexandr Gomoliako wrote:
>> > Really ? nginx is not single line pipelined commands.
>> > Single mistake should not stop whole server. I believe that nginx
>> > should log mistake and allows other requests to proceed.
>> Let's say we are creating a handler and this handler died but
>> was able to create another one. This another handler can cause
>> some damage, do things it isn't supposed to. I understand that
>> it isn't the case currently, but it will be with asynchronous subs.
> So you usually shutdown host if some single line script fails,
> because it may cause some damage: files corruption, etc ?

It depends. If it is a load balancer -- of course not. But I don't expect
to run anything that can corrupt some data there.
However, If application acts as a data storage of some sort,
I'd rather shut it down on any error and not take any chances on data
corruption, pollution, etc.

>> I think it's possible to make perl modules behave more like
>> native modules, even create configuration directives.
>> This will enable anyone to do much more much faster,
>> which is the whole point of embedding perl I believe.
> Native modules never abort worker process. Never.
> They try to handle failure gracefully, logging error for developer
> and showing 500 page for user.

That's right. So perl modules can try to do that too and use eval {}
themselves if they need to.

More information about the nginx-devel mailing list