Hello,

I am running log4perl in a mod_perl2 script on an apache with worker
MPM.

Startig from 10 concurrent users, I am getting the following messages in
the error log.

[Fri Mar 20 10:37:28 2009] [error] [client 192.168.1.201] Couldn't set 
semaphore during object creation: Identifier removed at 
/usr/share/perl5/Log/Log4perl/Appender/Synchronized.pm line 45\n

More concurrent users means more of these errors.

The requests fail subsequently with http status 500.

Versions:
 - Kernel: 2.6.22-14-generic
 - Apache: 2.2.8 worker, self compiled
 - log4perl 1.10-1 (Ubuntu)

Configuration:
Apache:
        PerlRequire /apache/startup.pl
        PerlWarn        On
        PerlTaintCheck  On

        Alias /action/ /apache/action/
        <Location /action/>
              SetHandler perl-script
              PerlResponseHandler ModPerl::Registry
              PerlOptions +ParseHeaders
              Options +ExecCGI
              Order allow,deny
              Allow from all 
        </Location>


Log4Perl:
        ...
        my $conf = qq(
                log4perl.category               = $threshold, Syncer

        # File appender (unsynchronized)
                log4perl.appender.Logfile               = 
Log::Log4perl::Appender::File
                log4perl.appender.Logfile.autoflush     = 1
                log4perl.appender.Logfile.filename      = $filename
                log4perl.appender.Logfile.mode          = append
                log4perl.appender.Logfile.layout        = 
Log::Log4perl::Layout::PatternLayout
                log4perl.appender.Logfile.layout.ConversionPattern = 
%d{dd/MMM/yyyy:HH:mm:ss} %p %m%n

                # Synchronizing appender, using the file appender above
                log4perl.appender.Syncer                = 
Log::Log4perl::Appender::Synchronized
                log4perl.appender.Syncer.appender       = Logfile
                log4perl.appender.Syncer.destroy        = 1
        );

        Log::Log4perl::init( \$conf );
        my $logger = Log::Log4perl::get_logger();
        ...


The threshold is set to INFO meaning that every call results in a single
log entry being made. The script runs for about one second.

When I tried out running the script as a handler (instead of the registry 
method), this did not
change the behaviour.

I understand that there are performance limits and eventually failures,
but is not that a bit early, with only ten concurrent usersr?

So I guess I have a misconfigured setup. Could anybody give me a good
hint? I googled for my error, but without luck.

Regs,

Christian Folini


-- 
I myself am human and free only to the extent that I acknowledge the
humanity and liberty of all my fellows... 
--- Mikhail Bakunin

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to