[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]

Reply via email to