kuno / GeoIP

GeoIP binding for nodejs(>=0.10) and iojs
GNU Lesser General Public License v2.1
414 stars 129 forks source link

Segfault on async lookup #29

Closed Niek closed 11 years ago

Niek commented 12 years ago

I upgraded to the latest node version, and now the geoip async lookup calls cause a segfault. Here is some sample code:

var geoip     = require('geoip');
var country = new geoip.Country('./geoip.dat');
country.lookup('127.0.0.1', function(err, country_obj) {
  if(err) throw err;
  console.log(country_obj);
});

Running this results in:

$ node testcase.js 
Segmentation fault
$ node -v
v0.6.7
$ npm ls | grep geoip
├── geoip@0.4.5 

The lookupSync calls still work as expected. I'm using GeoIP-1.4.8 by the way.

kuno commented 12 years ago

This script works normally on my machine, with geoip 1.4.8

  /tmp/testcase.js:4
  if(err) throw err;
            ^
  Error: Data not found
  →  node -v
  v0.6.7

This seems more likely an issue of your libgeoip package...

Niek commented 12 years ago

I have upgraded to node v0.6.8, but the issue remains. Tried re-building GeoIP 1.4.8, removing and re-installing the modules with npm... still crashes. Here is the output of strace, hopefully it helps:

$ strace node testcase.js 
execve("/usr/bin/node", ["node", "testcase.js"], [/* 21 vars */]) = 0
brk(0)                                  = 0x27d0000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bc20000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=118130, ...}) = 0
mmap(NULL, 118130, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff23bc03000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P \0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=96816, ...}) = 0
mmap(NULL, 2191920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23b7ea000
mprotect(0x7ff23b801000, 2093056, PROT_NONE) = 0
mmap(0x7ff23ba00000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7ff23ba00000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=31752, ...}) = 0
mmap(NULL, 2129000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23b5e2000
mprotect(0x7ff23b5e9000, 2093056, PROT_NONE) = 0
mmap(0x7ff23b7e8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7ff23b7e8000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 /\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=338032, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bc02000
mmap(NULL, 2433296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23b38f000
mprotect(0x7ff23b3db000, 2097152, PROT_NONE) = 0
mmap(0x7ff23b5db000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4c000) = 0x7ff23b5db000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libcrypto.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300]\6\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1620736, ...}) = 0
mmap(NULL, 3731320, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23b000000
mprotect(0x7ff23b166000, 2097152, PROT_NONE) = 0
mmap(0x7ff23b366000, 155648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x166000) = 0x7ff23b366000
mmap(0x7ff23b38c000, 12152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff23b38c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14696, ...}) = 0
mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23adfc000
mprotect(0x7ff23adfe000, 2097152, PROT_NONE) = 0
mmap(0x7ff23affe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff23affe000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libutil.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=10640, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bc01000
mmap(NULL, 2105608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23abf9000
mprotect(0x7ff23abfb000, 2093056, PROT_NONE) = 0
mmap(0x7ff23adfa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7ff23adfa000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`}\5\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=986888, ...}) = 0
mmap(NULL, 3166552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23a8f3000
mprotect(0x7ff23a9db000, 2093056, PROT_NONE) = 0
mmap(0x7ff23abda000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe7000) = 0x7ff23abda000
mmap(0x7ff23abe4000, 82264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff23abe4000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360>\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=543104, ...}) = 0
mmap(NULL, 2638136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23a66e000
mprotect(0x7ff23a6f2000, 2093056, PROT_NONE) = 0
mmap(0x7ff23a8f1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x83000) = 0x7ff23a8f1000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260(\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=88384, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bc00000
mmap(NULL, 2184184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23a458000
mprotect(0x7ff23a46d000, 2093056, PROT_NONE) = 0
mmap(0x7ff23a66c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7ff23a66c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\\\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=140254, ...}) = 0
mmap(NULL, 2217000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff23a23a000
mprotect(0x7ff23a252000, 2097152, PROT_NONE) = 0
mmap(0x7ff23a452000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7ff23a452000
mmap(0x7ff23a454000, 13352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff23a454000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0
mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff239ea6000
mprotect(0x7ff23a030000, 2093056, PROT_NONE) = 0
mmap(0x7ff23a22f000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x7ff23a22f000
mmap(0x7ff23a234000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff23a234000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bbff000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bbfe000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bbfc000
arch_prctl(ARCH_SET_FS, 0x7ff23bbfc740) = 0
mprotect(0x7ff23a22f000, 16384, PROT_READ) = 0
mprotect(0x7ff23a452000, 4096, PROT_READ) = 0
mprotect(0x7ff23a66c000, 4096, PROT_READ) = 0
mprotect(0x7ff23a8f1000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bbfb000
mprotect(0x7ff23abda000, 32768, PROT_READ) = 0
mprotect(0x7ff23adfa000, 4096, PROT_READ) = 0
mprotect(0x7ff23affe000, 4096, PROT_READ) = 0
mprotect(0x7ff23b366000, 53248, PROT_READ) = 0
mprotect(0x7ff23b5db000, 4096, PROT_READ) = 0
mprotect(0x7ff23b7e8000, 4096, PROT_READ) = 0
mprotect(0x7ff23ba00000, 4096, PROT_READ) = 0
mprotect(0xc18000, 4096, PROT_READ)     = 0
mprotect(0x7ff23bc22000, 4096, PROT_READ) = 0
munmap(0x7ff23bc03000, 118130)          = 0
set_tid_address(0x7ff23bbfca10)         = 10843
set_robust_list(0x7ff23bbfca20, 0x18)   = 0
futex(0x7fffb1b713cc, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fffb1b713cc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7ff23bbfc740) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x7ff23a23f740, [], SA_RESTORER|SA_SIGINFO, 0x7ff23a249c60}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7ff23a23f7d0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7ff23a249c60}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0)                                  = 0x27d0000
brk(0x27f1000)                          = 0x27f1000
getrlimit(RLIMIT_DATA, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, ~[RTMIN RT_1], SA_RESTORER, 0x7ff23a249c60}, NULL, 8) = 0
rt_sigaction(SIGINT, {0x5247b0, ~[RTMIN RT_1], SA_RESTORER, 0x7ff23a249c60}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x5247b0, ~[RTMIN RT_1], SA_RESTORER, 0x7ff23a249c60}, NULL, 8) = 0
clock_gettime(CLOCK_MONOTONIC, {20729338, 387971990}) = 0
getuid()                                = 1001
geteuid()                               = 1001
getgid()                                = 1001
getegid()                               = 1001
clock_gettime(CLOCK_MONOTONIC, {20729338, 388201126}) = 0
epoll_create1(O_CLOEXEC)                = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
eventfd2(0, O_NONBLOCK|O_CLOEXEC)       = 4
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
rt_sigaction(SIGCHLD, {0x7d5ba1, ~[RTMIN RT_1], SA_RESTORER|SA_RESTART, 0x7ff23a249c60}, NULL, 8) = 0
mmap(0x1e97e62f5000, 4096, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x1e97e62f5000
mmap(0x1e97e62f5000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x1e97e62f5000
munmap(0x1e97e62f5000, 4096)            = 0
brk(0x2814000)                          = 0x2814000
gettid()                                = 10843
brk(0x283f000)                          = 0x283f000
brk(0x282d000)                          = 0x282d000
mmap(NULL, 151552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bbd6000
brk(0x2819000)                          = 0x2819000
mmap(NULL, 225280, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bb9f000
munmap(0x7ff23bbd6000, 151552)          = 0
mmap(0x86207458000, 67108864, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x86207458000
mmap(0x86208000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x86208000000
mmap(0x86209000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x86209000000
mmap(0x1ee8038a5000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x1ee8038a5000
mmap(0x54e2e6d000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x54e2e6d000
mmap(0xcc037c07000, 536870912, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xcc037c07000
mmap(0xcc037c07000, 262144, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcc037c07000
mprotect(0xcc037c07000, 8192, PROT_NONE) = 0
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23bb1e000
mmap(0xfb8f94ef000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfb8f94ef000
mmap(0x389146b5a000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x389146b5a000
mmap(0x1fa142295000, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x1fa142295000
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7ff2396a5000
mprotect(0x7ff2396a5000, 4096, PROT_NONE) = 0
clone(child_stack=0x7ff239ea4fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7ff239ea59d0, tls=0x7ff239ea5700, child_tidptr=0x7ff239ea59d0) = 10844
rt_sigaction(SIGUSR1, {0x5242d0, ~[RTMIN RT_1], SA_RESTORER, 0x7ff23a249c60}, NULL, 8) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x283a000)                          = 0x283a000
readlink("/proc/self/exe", "/usr/bin/node"..., 8191) = 13
brk(0x2871000)                          = 0x2871000
brk(0x2841000)                          = 0x2841000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2871000)                          = 0x2871000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2841000)                          = 0x2841000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2871000)                          = 0x2871000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23badd000
munmap(0x7ff23badd000, 266240)          = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x28b2000)                          = 0x28b2000
mmap(0x2a0a766d6000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a0a766d6000
mmap(0xcc037c47000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcc037c47000
mprotect(0xcc037c47000, 8192, PROT_NONE) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2841000)                          = 0x2841000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2871000)                          = 0x2871000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
mmap(0xcc037c4d000, 262144, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcc037c4d000
mprotect(0xcc037c4d000, 8192, PROT_NONE) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
getcwd("/var/www/rtb", 4096)            = 13
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
mmap(0xcc037c8d000, 57344, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcc037c8d000
mprotect(0xcc037c8d000, 8192, PROT_NONE) = 0
getcwd("/var/www/rtb", 4096)            = 13
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x28b2000)                          = 0x28b2000
brk(0x2841000)                          = 0x2841000
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
brk(0x2871000)                          = 0x2871000
brk(0x28b2000)                          = 0x28b2000
mmap(NULL, 532480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff23ba9c000
mmap(0xcc037c9b000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcc037c9b000
mprotect(0xcc037c9b000, 8192, PROT_NONE) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
munmap(0x7ff23ba9c000, 532480)          = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
stat("/var/www/rtb/testcase.js", {st_mode=S_IFREG|0664, st_size=209, ...}) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
lstat("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/var/www", {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
lstat("/var/www/rtb", {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
lstat("/var/www/rtb/testcase.js", {st_mode=S_IFREG|0664, st_size=209, ...}) = 0
open("/var/www/rtb/testcase.js", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "var geoip     = require('geoip')"..., 4048) = 209
read(5, "", 4048)                       = 0
close(5)                                = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
stat("/var/www/rtb/node_modules/geoip", {st_mode=S_IFDIR|0755, st_size=154, ...}) = 0
stat("/var/www/rtb/node_modules/geoip.js", 0x7fffb1b708f8) = -1 ENOENT (No such file or directory)
stat("/var/www/rtb/node_modules/geoip.json", 0x7fffb1b708f8) = -1 ENOENT (No such file or directory)
stat("/var/www/rtb/node_modules/geoip.node", 0x7fffb1b708f8) = -1 ENOENT (No such file or directory)
open("/var/www/rtb/node_modules/geoip/package.json", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "{\n  \"name\":\"geoip\",\n  \"descripti"..., 4048) = 1101
read(5, "", 4048)                       = 0
close(5)                                = 0
stat("/var/www/rtb/node_modules/geoip/index.js", {st_mode=S_IFREG|0644, st_size=634, ...}) = 0
lstat("/var/www/rtb/node_modules", {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
lstat("/var/www/rtb/node_modules/geoip", {st_mode=S_IFDIR|0755, st_size=154, ...}) = 0
lstat("/var/www/rtb/node_modules/geoip/index.js", {st_mode=S_IFREG|0644, st_size=634, ...}) = 0
open("/var/www/rtb/node_modules/geoip/index.js", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "var read  = require('fs').readFi"..., 4048) = 634
read(5, "", 4048)                       = 0
close(5)                                = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
stat("/var/www/rtb/node_modules/geoip/build/Release/geoip.node", {st_mode=S_IFREG|0775, st_size=626767, ...}) = 0
lstat("/var/www/rtb/node_modules/geoip/build", {st_mode=S_IFDIR|0775, st_size=68, ...}) = 0
lstat("/var/www/rtb/node_modules/geoip/build/Release", {st_mode=S_IFDIR|0775, st_size=33, ...}) = 0
lstat("/var/www/rtb/node_modules/geoip/build/Release/geoip.node", {st_mode=S_IFREG|0775, st_size=626767, ...}) = 0
futex(0x7ff23afff0e0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/var/www/rtb/node_modules/geoip/build/Release/geoip.node", O_RDONLY) = 5
read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\224\0\0\0\0\0\0"..., 832) = 832
fstat(5, {st_mode=S_IFREG|0775, st_size=626767, ...}) = 0
mmap(NULL, 2217784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7ff239487000
mprotect(0x7ff2394a4000, 2093056, PROT_NONE) = 0
mmap(0x7ff2396a3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x1c000) = 0x7ff2396a3000
close(5)                                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=118130, ...}) = 0
mmap(NULL, 118130, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7ff23bc03000
close(5)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libGeoIP.so.1", O_RDONLY) = 5
read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220^\0\0\0\0\0\0"..., 832) = 832
fstat(5, {st_mode=S_IFREG|0755, st_size=1108680, ...}) = 0
mmap(NULL, 2327392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7ff23924e000
mprotect(0x7ff239285000, 2093056, PROT_NONE) = 0
mmap(0x7ff239484000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x36000) = 0x7ff239484000
close(5)                                = 0
mprotect(0x7ff239484000, 4096, PROT_READ) = 0
mprotect(0x7ff2396a3000, 4096, PROT_READ) = 0
munmap(0x7ff23bc03000, 118130)          = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
open("/var/www/rtb/node_modules/geoip/package.json", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "{\n  \"name\":\"geoip\",\n  \"descripti"..., 4048) = 1101
read(5, "", 4048)                       = 0
close(5)                                = 0
open("./geoip.dat", O_RDONLY)           = 5
lseek(5, -3, SEEK_END)                  = 1743789
read(5, "ved", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743788
read(5, "rve", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743787
read(5, "erv", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743786
read(5, "ser", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743785
read(5, "ese", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743784
read(5, "Res", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743783
read(5, " Re", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743782
read(5, "s R", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743781
read(5, "ts ", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743780
read(5, "hts", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743779
read(5, "ght", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743778
read(5, "igh", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743777
read(5, "Rig", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743776
read(5, " Ri", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743775
read(5, "l R", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743774
read(5, "ll ", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743773
read(5, "All", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743772
read(5, " Al", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743771
read(5, "c A", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743770
read(5, "nc ", 3)                       = 3
lseek(5, -4, SEEK_CUR)                  = 1743769
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7ff23badd000
mprotect(0x7ff23badd000, 4096, PROT_NONE) = 0
clone(child_stack=0x7ff23bb1cfb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7ff23bb1d9d0, tls=0x7ff23bb1d700, child_tidptr=0x7ff23bb1d9d0) = 10845
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x27d0098, FUTEX_WAKE_PRIVATE, 1) = 1
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault