Bug 189035 - mod_geoip segfaults on x86_64
Summary: mod_geoip segfaults on x86_64
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: mod_geoip
Version: 5
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Michael Fleming
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-04-14 23:12 UTC by Toshio Kuratomi
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version: 1.1.8
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-05-20 08:31:13 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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. :-)


Note You need to log in before you can comment on or make changes to this bug.