Bug 189035

Summary: mod_geoip segfaults on x86_64
Product: [Fedora] Fedora Reporter: Toshio Kuratomi <toshio>
Component: mod_geoipAssignee: Michael Fleming <mfleming+rpm>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 5CC: extras-qa
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.1.8 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-05-20 08:31:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Toshio Kuratomi 2006-04-14 23:12:03 UTC
Description of problem:
mod_geoip causes an apache segfault on x86_64

Version-Release number of selected component (if applicable):
mod_geoip-1.1.7-3.fc5
httpd-2.2.0-5.1.2

How reproducible:
Everytime.

Steps to Reproduce:
1. On an AMD64, yum install mod_geoip
2. service httpd restart
3. tail -f /var/log/httpd/error_log
  
Actual results:
[Fri Apr 14 16:13:39 2006] [notice] child pid 5766 exit signal Segmentation
fault (11)
[Fri Apr 14 16:13:39 2006] [notice] child pid 5767 exit signal Segmentation
fault (11)
[Fri Apr 14 16:13:39 2006] [notice] child pid 5768 exit signal Segmentation
fault (11)
[...]
Expected results:
Apache would start up without segfaulting.

Additional info:
I have tried moving all conf files except mod_geoip.conf out of the
/etc/httpd/conf.d directory and the segfault continues.

I have moved only mod_geoip out of the conf.d directory and apache runs correctly.

If you have an idea of where to start looking for additional information, I'd be
happy to do more troubleshooting.

Comment 1 Michael Fleming 2006-04-15 01:16:53 UTC
Easily reproducible on a (recently acquired) AMD Sempron (64bit) running FC5-x86_64.

(gdb) bt
#0  0x00002aaaabaf9160 in strlen () from /lib64/libc.so.6
#1  0x00002aaab05544db in GeoIP_open (
    filename=0x55741768 <Address 0x55741768 out of bounds>, flags=0)
    at GeoIP.c:376
#2  0x00002aaab043c46e in geoip_child_init (p=0x5555557b73d8, s=0x5555556b2de8)
    at mod_geoip.c:141
#3  0x000055555557de9d in ap_run_child_init () from /usr/sbin/httpd
#4  0x000055555558f36d in ap_graceful_stop_signalled () from /usr/sbin/httpd
#5  0x000055555558f88a in ap_graceful_stop_signalled () from /usr/sbin/httpd
#6  0x00005555555900fd in ap_mpm_run () from /usr/sbin/httpd
#7  0x000055555556b59c in main () from /usr/sbin/httpd

(gdb) bt full
#0  0x00002aaaabaf9160 in strlen () from /lib64/libc.so.6
No symbol table info available.
#1  0x00002aaab05544db in GeoIP_open (
    filename=0x55741768 <Address 0x55741768 out of bounds>, flags=0)
    at GeoIP.c:376
        buf = {st_dev = 93824994735064, st_ino = 0,
  st_nlink = 140737485216928, st_mode = 2880390989, st_uid = 10922,
  st_gid = 1434153944, pad0 = 21845, st_rdev = 7, st_size = 93824994734816,
  st_blksize = 46912509404822, st_blocks = 93824994735064, st_atim = {
    tv_sec = 93824994735064, tv_nsec = 7}, st_mtim = {tv_sec = 93824994735280,
    tv_nsec = 93824993668584}, st_ctim = {tv_sec = 46912515119488,
    tv_nsec = 8}, __unused = {93824994318984, 93824993668584, 93824994735064}}
        gi = (GeoIP *) 0x5555557bb3d0
#2  0x00002aaab043c46e in geoip_child_init (p=0x5555557b73d8, s=0x5555556b2de8)
    at mod_geoip.c:141
        cfg = (geoip_server_config_rec *) 0x555555727888
        i = 0
#3  0x000055555557de9d in ap_run_child_init () from /usr/sbin/httpd
No symbol table info available.
#4  0x000055555558f36d in ap_graceful_stop_signalled () from /usr/sbin/httpd
No symbol table info available.
#5  0x000055555558f88a in ap_graceful_stop_signalled () from /usr/sbin/httpd
No symbol table info available.

I have a baaad feeling about this.

(To get a core out of apache, add "CoreDumpDirectory /some/path" directive in
httpd.conf. Install the debuginfo packages helps too - the above is with
mod_geoip and GeoIP's installed)


Comment 2 Michael Fleming 2006-05-01 07:56:24 UTC
Hi Toshio,

Upstream have released new versions of this and the base GeoIP library and
judging from a local build of both (on a fully-updated FC5 x86_64 box) it
appears to fix this issue. 

I'm pushing out new packages on all branches at the moment, please let me know
if it breaks in the Extras build.

Comment 3 Michael Fleming 2006-05-20 08:31:13 UTC
Tried it with subsequent versions of mod_geoip / GeoIP. Apache seems happier, no
more segfaults after many attempts. Closing this bug. :-)