[EMAIL PROTECTED] wrote:
Hello,
tomorrow i had the problem, that my Apache (Apache/2.2.4 (Unix)
mod_ssl/2.2.4 OpenSSL/0.9.8d mod_jk/1.2.25) didn't start up. In the
"error.log" of the Apache the following error message can be found:
[Sun Sep 02 11:20:30 2007] [crit] (28)No space left on device:
mod_jk: could not create jk_log_lock Configuration Failed
Disk space definitely wasn't the problem, i checked the available
space by executing "df" and every partition had at least 25%
available free disk space.
/dev/sda3 3076316 2224224 852092 73% / tmpfs
517592 8 517584 1% /dev/shm /dev/sda1
530088 41692 488396 8% /boot /dev/sda5 409580
58016 351564 15% /tmp /dev/sda6 530088 100712
429376 19% /var/log /dev/sdb1 18425928 622312
17803616 4% /piro
I tried to start the Apache again, but it still didn't come up. After
rebooting the complete server, the problem was gone and the Apache
started up as always.
Does anybody have a tip, what could have been the problem? Are
similiar problems known? Maybe the Apache has problems handling with
semaphores? A similar problem was known in Apache 2.053, but up to
now Apache 2.24 didn't have any problems yet.
Which platform do you use?
The message means, that apr_global_mutex_create() wasn't successful. We
(mod_jk) call it for a lock type of APR_LOCK_DEFAULT. This automatically
maps to one of
APR_LOCK_FCNTL, /**< fcntl() */
APR_LOCK_FLOCK, /**< flock() */
APR_LOCK_SYSVSEM, /**< System V Semaphores */
APR_LOCK_PROC_PTHREAD, /**< POSIX pthread process-based locking */
APR_LOCK_POSIXSEM, /**< POSIX semaphore process-based locking */
So what's the default for your platform?
The general preference is (APR 1.2 used in Apache httpd 2.2):
- flock
- sysvsem
- fcntl
- pthread
- posix semaphore
To find out, what was detected as available during your Apache httpd or
APR build, you need to check the header file apr.h, which gets generated
when building apr resp. httpd. The following command shows you the
available locking methods:
$ grep SERIALIZE apr.h
#define APR_USE_FLOCK_SERIALIZE 0
#define APR_USE_SYSVSEM_SERIALIZE 0
#define APR_USE_POSIXSEM_SERIALIZE 0
#define APR_USE_FCNTL_SERIALIZE 1
#define APR_USE_PROC_PTHREAD_SERIALIZE 0
#define APR_USE_PTHREAD_SERIALIZE 1
#define APR_HAS_FLOCK_SERIALIZE 0
#define APR_HAS_SYSVSEM_SERIALIZE 1
#define APR_HAS_POSIXSEM_SERIALIZE 1
#define APR_HAS_FCNTL_SERIALIZE 1
#define APR_HAS_PROC_PTHREAD_SERIALIZE 1
So this platform supports (HAS) all of them apart from flock, but it
will only use fcntl and pthread. Since fcntl has higher general
preference it will be the default.
You could also find out this by using:
$ ./httpd -V|grep SERIALIZE
-D APR_USE_FCNTL_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
Now that you know the method used, you could check the man pages of the
call, to find out possible reasons for error 28.
Hope that makes sense to you.
Thanks in advance for your reply!
Greetz Frank
Regards,
Rainer
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]