Description of problem: root@gibraltar:~> sysctl -w kernel.exec-shield=0 kernel.exec-shield = 0 root@gibraltar:~> httpd Segmentation fault root@gibraltar:~> sysctl -w kernel.exec-shield=1 kernel.exec-shield = 1 root@gibraltar:~> httpd root@gibraltar:~> killall httpd root@gibraltar:~> sysctl -w kernel.exec-shield=0 kernel.exec-shield = 0 root@gibraltar:~> httpd Segmentation fault Version-Release number of selected component (if applicable): httpd-2.0.47-7 kernel-2.4.22-1.2087.nptl How reproducible: Always Steps to Reproduce: See description Actual results: httpd segfaults Expected results: httpd starts Additional info: Also look at bug #105772 (same bug with samba)
I can't reproduce with httpd-2.0.47-8, can you update to that and try again?
Hmm, still present: [...] root@wombat:~> rpm -q glibc httpd; uname -r glibc-2.3.2-98 httpd-2.0.47-8 2.4.22-1.2087.nptl root@wombat:~> sysctl -w kernel.exec-shield=0 kernel.exec-shield = 0 root@wombat:~> service httpd restart Stopping httpd: [ OK ] Starting httpd: [FAILED] root@wombat:~> httpd Segmentation fault root@wombat:~> sysctl -w kernel.exec-shield=1 kernel.exec-shield = 1 root@wombat:~> service httpd restart Stopping httpd: [FAILED] Starting httpd: [ OK ] root@wombat:~> [...] Any additional info you might need? FYI, the machine should have virtually all packages installed.
Can you: strace httpd rpm -qf /etc/httpd/conf.d/*.conf I'd ask for a backtrace but gdb doesn't support PIE yet :(
Here you are: [...] root@wombat:~> sysctl -w kernel.exec-shield=0 kernel.exec-shield = 0 root@wombat:~> service httpd stop Stopping httpd: [ OK ] root@wombat:~> strace httpd execve("/usr/sbin/httpd", ["httpd"], [/* 28 vars */]) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ root@wombat:~> rpm -qf /etc/httpd/conf.d/*.conf file /etc/httpd/conf.d/chorios.conf is not owned by any package file /etc/httpd/conf.d/homedir.conf is not owned by any package mod_perl-1.99_09-10 php-4.3.3-2 mod_python-3.0.3-3 squirrelmail-1.4.0-1 mod_ssl-2.0.47-8 mod_dav_svn-0.31.0-1 root@wombat:~> [...] It is very suspicious to me that it segfaults immediately before even trying to load libraries etc. Correction to my previous post: prelink is _not_ installed (I guessed that wrong prelinkage could be the culprit) -- shall I leave it like that or install it?
You could try something like LD_DEBUG=all LD_DEBUG_OUTPUT=/tmp/httpd /usr/sbin/httpd Jakub, any ideas about this?
Created attachment 95101 [details] LD_DEBUG output of httpd run with exec-shield off
That was the file from strace, can you attach the one from httpd too?
No, because running it on httpd alone doesn't produce a file.
ld.so problem? toolchain problem? kernel problem?
Calling QA people - can anyone reproduce these problems on Fedora Test 3? I still can't. If there is some problem with PIE then we need to get it fixed ASAP. [root@pepsi root]# rpm -q httpd httpd-2.0.47-8 [root@pepsi root]# uname -r 2.4.22-1.2088.nptl
Ah ha. I *can* reproduce this on Test 3 if I "prelink -u /usr/sbin/httpd". execve("/usr/sbin/httpd", ["/usr/sbin/httpd"], [/* 31 vars */]) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Interestingly (or maybe it isn't), I *can* start up httpd OK using: # /lib/ld-linux.so.2 /usr/sbin/httpd Jakub are you looking into this?
Ingo tracked this down to a kernel problem. Reproduction case was having: /lib/ld-linux.so.2 not prelinked exec-shield off executable with a large bss e.g. int foo[30000]; int main() {return 0;}
*** Bug 105772 has been marked as a duplicate of this bug. ***
Fix will be in tomorrows rawhide push.
Fixed.