** Description changed:

+ [Impact]
+ The default apache2.conf causes apache to issue streams of error
+ messages about deadlocks acquiring the SSL session cache lock.
+ 
+ Users are still reporting seeing this flaw in production (Xenial-based)
+ hosts.
+ 
+ [Test Case]
+ Reproduction steps TBD.  Problem exhibits on high load systems.  Verification 
will need to be done by those seeing the issue in production.
+ 
+ [Regression Potential]
+ Since this only changes the config installed by default, it won't impact 
existing installations, however behaviors to watch for would be SSL-related or 
configuration-related oddnesses.
+ 
+ [Fix]
+ Backport a fix applied in bionic and newer, that modifies the makes
+ Apache use pthread mutexes by default on Linux, or fctnl on other
+ architectures that lack robust pthread muxexes.
+ 
+ [Original Report]
  OS:
  Ubuntu 14.04 LTS
  
  Kernel:
  3.13.0-79-generic x86_64
  
  Apache:
  2.4.7-1ubuntu4.5
  
  In the default Apache 2.4 config on Ubuntu 14.04 LTS is the following
  set in /etc/apache2/apache2.conf:
  
  Mutex file:${APACHE_LOCK_DIR} default
  
  (/debian/config-dir/apache2.conf in
  
http://archive.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.4.7-1ubuntu4.5.debian.tar.gz)
  
  which leads to the following output of "apache2ctl -t -D DUMP_RUN_CFG":
  
  Mutex default: dir="/var/lock/apache2" mechanism=fcntl
  
  This leads constantly to a lot of these warning/emergency messages on a
  server with 200 busy worker threads, 100 Requests/s, 300 KB/s:
  
  [Tue Mar 08 16:08:18.596653 2016] [ssl:warn] [pid 8339:tid
  140182179256064] (35)Resource deadlock avoided: AH02026: Failed to
  acquire SSL session cache lock
  
  [Wed Mar 09 07:09:31.099331 2016] [mpm_worker:emerg] [pid 26526:tid
  139668485949184] (35)Resource deadlock avoided: AH00273:
  apr_proc_mutex_lock failed. Attempting to shutdown process gracefully.
  
  Solution (as suggested by Yann Ylavic from Apache):
  Commenting (removing) the Mutex directive, which leads to the  following 
output of "apache2ctl -t -D DUMP_RUN_CFG":
  
  Mutex default: dir="/var/run/apache2/" mechanism=default
  
  Then, there are no error messages anymore.
  
  For the discussion, see the corresponding Apache httpd-users mailing
  list thread:
  
  http://httpd.markmail.org/message/c7w5aujfmy2kfazi
  
  (thread subject 'Lots of messages "[ssl:warn] Resource deadlock avoided:
  AH02026: Failed to acquire SSL session cache lock"' from 2016-03-08)
  
- 
  Here some more information:
  
  # apache2ctl -V
  Server version: Apache/2.4.7 (Ubuntu)
  Server built:   Jul 24 2015 17:25:11
  Server's Module Magic Number: 20120211:27
  Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
  Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
  Architecture:   64-bit
  Server MPM:     worker
-   threaded:     yes (fixed thread count)
-     forked:     yes (variable process count)
+   threaded:     yes (fixed thread count)
+     forked:     yes (variable process count)
  Server compiled with....
-  -D APR_HAS_SENDFILE
-  -D APR_HAS_MMAP
-  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-  -D APR_USE_SYSVSEM_SERIALIZE
-  -D APR_USE_PTHREAD_SERIALIZE
-  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-  -D APR_HAS_OTHER_CHILD
-  -D AP_HAVE_RELIABLE_PIPED_LOGS
-  -D DYNAMIC_MODULE_LIMIT=256
-  -D HTTPD_ROOT="/etc/apache2"
-  -D SUEXEC_BIN="/usr/lib/apache2/suexec"
-  -D DEFAULT_PIDLOG="/var/run/apache2.pid"
-  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-  -D DEFAULT_ERRORLOG="logs/error_log"
-  -D AP_TYPES_CONFIG_FILE="mime.types"
-  -D SERVER_CONFIG_FILE="apache2.conf"
+  -D APR_HAS_SENDFILE
+  -D APR_HAS_MMAP
+  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
+  -D APR_USE_SYSVSEM_SERIALIZE
+  -D APR_USE_PTHREAD_SERIALIZE
+  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
+  -D APR_HAS_OTHER_CHILD
+  -D AP_HAVE_RELIABLE_PIPED_LOGS
+  -D DYNAMIC_MODULE_LIMIT=256
+  -D HTTPD_ROOT="/etc/apache2"
+  -D SUEXEC_BIN="/usr/lib/apache2/suexec"
+  -D DEFAULT_PIDLOG="/var/run/apache2.pid"
+  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
+  -D DEFAULT_ERRORLOG="logs/error_log"
+  -D AP_TYPES_CONFIG_FILE="mime.types"
+  -D SERVER_CONFIG_FILE="apache2.conf"

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1565744

Title:
  "Mutex file:${APACHE_LOCK_DIR} default" should be disabled by default
  on Linux because it leads to errors

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1565744/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to