Bug 148273

Summary: Cannot start apache2 in SL10.1 beta3
Product: [openSUSE] SUSE Linux 10.1 Reporter: Seth Chaiklin <seth>
Component: OtherAssignee: E-mail List <bnc-team-screening>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: suse-beta
Version: Beta 3   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: strace of my httpd2
strace of /etc/init.d/apache2 start

Description Seth Chaiklin 2006-02-05 12:59:50 UTC
After update from beta2 to beta3 using /pub/opensuse/distribution/SL-OSS-factory/inst-source/suse/i586
I cannot start apache2 (I also tried without loading php5, but that did not help).

/var/log/rcapache2.out shows that syntax is OK, as does
/etc/init.d/apache2 configtest

No error messages are given on the console or in the /var/log/apache2/error_log

rpm -qa | grep apache

apache2-prefork-2.2.0-6
apache2-mod_auth_mysql-3.0.0-3
apache2-worker-2.2.0-6
apache2-2.2.0-6
apache2-doc-2.2.0-6
apache2-mod_php5-5.1.2-6
Comment 1 Michael Gross 2006-02-06 11:24:55 UTC
If `httpd2 -S' does not show any error and there is no logged error in the default server's error_log, it looks like a crash. Can you add your configuration if it differs from the shipped default and create a backtrace? Thanks.
Comment 2 Seth Chaiklin 2006-02-06 22:13:54 UTC
httpd2 -S
Syntax OK

My configuration is not very different.  Perhaps the following is sufficient?

rpm -V apache2
S.5....T  c /etc/apache2/listen.conf
S.5....T  c /etc/apache2/ssl-global.conf
S.5....T  c /etc/apache2/ssl.crt/server.crt
S.5....T  c /etc/apache2/ssl.csr/server.csr
S.5....T  c /etc/apache2/ssl.key/server.key


diff -u listen.conf /etc/apache2/listen.conf
--- listen.conf 2006-02-06 22:30:40.000000000 +0100
+++ /etc/apache2/listen.conf    2006-02-06 22:31:23.000000000 +0100
@@ -16,7 +16,6 @@
 #Listen 80
 #Listen 443

-Listen 80


 <IfDefine SSL>
@@ -45,3 +44,5 @@
 #
 #NameVirtualHost *

+Listen 80
+Listen 8080

--- ssl-global.conf     2006-02-06 22:30:05.000000000 +0100
+++ /etc/apache2/ssl-global.conf        2006-01-09 00:37:35.000000000 +0100
@@ -67,6 +67,26 @@
        #SSLRandomSeed startup file:/dev/urandom 512
        #SSLRandomSeed connect file:/dev/urandom 512


+SSLCertificateFile /etc/apache2/ssl.crt/server.crt
+SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
+SSLCACertificateFile /etc/apache2/ssl.crt/ca.crt
+# SSLCertificateChainFile /etc/apache2/ssl.crt/ca.crt
+# SSLCACertificatePath  /etc/apache2/ssl.crt/
+
+# SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM
+#
+#       Use these if you want the remote clients to have certificates
+#       issued to them. Might be useful for high security needs
+#
+#SSLProtocol -all +SSLv2
+#SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
+#SSLVerifyClient require
+
 </IfModule>
 </IfDefine>
 </IfDefine>


---
And then I have made a certificate and installed for server.crt, server.csr, and server.key

-----

I have used 'strace -f' on httpd2, and attached it here.
I hope that is what you were requesting.
Comment 3 Seth Chaiklin 2006-02-06 22:15:40 UTC
Created attachment 66627 [details]
strace of my httpd2

Sorry to send this separately.  Did not understand Bugzilla interface.
Comment 4 Michael Gross 2006-02-07 13:14:30 UTC
From the backtrace:

5673  setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0
5673  bind(5, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)
5673  write(2, "(98)Address already in use: make"..., 78) = 78
5673  close(5)                          = 0
5673  write(2, "no listening sockets available, "..., 46) = 46
5673  write(2, "Unable to open logs\n", 20) = 20

It looks like Apache fails to bind a socket to Port 8080, which is probably already in use. Are you sure there is no other process blocking/using this port? It might even be an old apache process, please check this.
Then it also reports that it was not able to open the logfiles, check the ErrorLog-directive within your configuration. After all this looks very hard like a configuration problem ;)
Comment 5 Seth Chaiklin 2006-02-07 20:19:25 UTC
Created attachment 66869 [details]
strace of /etc/init.d/apache2 start

Michael: I can agree that it looks like configuration. Though I did not
make any changes in configuration from beta2 to beta3
(except for those noted above, and as confirmed by rpm -V)

But here are some more experiments:

1.  Tried again, commenting out Listen 8080.

    a.  issuing httpd2 from command line would start httpd2  (consistent with configuration problem)
    b.  /etc/init.d/apache2 start  returns "failed"  

(have attached a backtrace:
   strace -t -f /etc/init.d/apache2 start

(error log gets up to: 
[Tue Feb 07 21:03:41 2006] [info] Server: Apache/2.2.0, Interface: mod_ssl/2.2.0, Library: OpenSSL/0.9.8a)

2.  px ax | grep httpd

returns nothing (i.e., no old apache process)

3.  If it is a config problem then it must be in the rpm, because as shown above, I have only changed two of the config files, and one of them I changed back and the problem still appears.

Here is: httpd2 -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 suexec_module (shared)
 actions_module (shared)
 alias_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 include_module (shared)
 log_config_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 setenvif_module (shared)
 status_module (shared)
 asis_module (shared)
 dav_module (shared)
 dav_fs_module (shared)
 info_module (shared)
 rewrite_module (shared)
 speling_module (shared)
 ssl_module (shared)
 auth_basic_module (shared)
 authz_groupfile_module (shared)
 authz_default_module (shared)
 authz_user_module (shared)
 authz_host_module (shared)
 authn_dbm_module (shared)
 imagemap_module (shared)
Syntax OK
Comment 6 Seth Chaiklin 2006-02-07 23:33:53 UTC
I have now upgraded to the beta4 kernel (2.6.16_rc2-3) and apache2 is happy. 
Perhaps this is connected to the problem with port 8080.  Anyway, I am going to close this bug and let you do something more useful.