-none- 2007-09-03 - By Rainer Jung
Back Frank.Mensch@(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@(protected) To unsubscribe, e-mail: users-unsubscribe@(protected) For additional commands, e-mail: users-help@(protected)
|
|