Linux Dedi Segfault

  1. 4 years ago

    Hi,

    I'm having some issues running ALiVE server on my linux dedi (Ubuntu 15.04). It's segfaulting but I can't seem to find why. I've got some info below: (wall of debug coming...)

    dmesg:

    arma3server[20536]: segfault at 1c ip 00000000bcccd714 sp 00000000974e1e60 error 4 in ALiVEPlugIn.so[bcc1f000+1d5000]

    ldd on the .so:

            linux-gate.so.1 =>  (0xf77a2000)
            libcurl.so.4 => /usr/lib/i386-linux-gnu/libcurl.so.4 (0xf753d000)
            libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf74f0000)
            libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7334000)
            /lib/ld-linux.so.2 (0x56651000)
            libidn.so.11 => /usr/lib/i386-linux-gnu/libidn.so.11 (0xf7301000)
            librtmp.so.1 => /usr/lib/i386-linux-gnu/librtmp.so.1 (0xf72e1000)
            libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xf7280000)
            libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xf70ad000)
            libgssapi_krb5.so.2 => /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2 (0xf705b000)
            liblber-2.4.so.2 => /usr/lib/i386-linux-gnu/liblber-2.4.so.2 (0xf704b000)
            libldap_r-2.4.so.2 => /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2 (0xf6ff1000)
            libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf6fd6000)
            libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf6fb9000)
            libgnutls-deb0.so.28 => /usr/lib/i386-linux-gnu/libgnutls-deb0.so.28 (0xf6e79000)
            libhogweed.so.2 => /usr/lib/i386-linux-gnu/libhogweed.so.2 (0xf6e4a000)
            libnettle.so.4 => /usr/lib/i386-linux-gnu/libnettle.so.4 (0xf6e14000)
            libgmp.so.10 => /usr/lib/i386-linux-gnu/libgmp.so.10 (0xf6d88000)
            libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6d83000)
            libkrb5.so.3 => /usr/lib/i386-linux-gnu/libkrb5.so.3 (0xf6caf000)
            libk5crypto.so.3 => /usr/lib/i386-linux-gnu/libk5crypto.so.3 (0xf6c7d000)
            libcom_err.so.2 => /lib/i386-linux-gnu/libcom_err.so.2 (0xf6c78000)
            libkrb5support.so.0 => /usr/lib/i386-linux-gnu/libkrb5support.so.0 (0xf6c6b000)
            libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf6c52000)
            libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0xf6c33000)
            libgssapi.so.3 => /usr/lib/i386-linux-gnu/libgssapi.so.3 (0xf6bee000)
            libgcrypt.so.20 => /lib/i386-linux-gnu/libgcrypt.so.20 (0xf6b3d000)
            libp11-kit.so.0 => /usr/lib/i386-linux-gnu/libp11-kit.so.0 (0xf6af9000)
            libtasn1.so.6 => /usr/lib/i386-linux-gnu/libtasn1.so.6 (0xf6ae5000)
            libkeyutils.so.1 => /lib/i386-linux-gnu/libkeyutils.so.1 (0xf6adf000)
            libheimntlm.so.0 => /usr/lib/i386-linux-gnu/libheimntlm.so.0 (0xf6ad5000)
            libkrb5.so.26 => /usr/lib/i386-linux-gnu/libkrb5.so.26 (0xf6a3b000)
            libasn1.so.8 => /usr/lib/i386-linux-gnu/libasn1.so.8 (0xf6986000)
            libhcrypto.so.4 => /usr/lib/i386-linux-gnu/libhcrypto.so.4 (0xf694c000)
            libroken.so.18 => /usr/lib/i386-linux-gnu/libroken.so.18 (0xf6933000)
            libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xf691f000)
            libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf6915000)
            libwind.so.0 => /usr/lib/i386-linux-gnu/libwind.so.0 (0xf68eb000)
            libheimbase.so.1 => /usr/lib/i386-linux-gnu/libheimbase.so.1 (0xf68da000)
            libhx509.so.5 => /usr/lib/i386-linux-gnu/libhx509.so.5 (0xf688b000)
            libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0xf67b2000)
            libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf6780000)

    GDB:

    13:48:55 ALiVE [m_0|30] Module ALiVE_sys_data INIT
    [New Thread 0x97d08b40 (LWP 21523)]
    [New Thread 0xb8bffb40 (LWP 21522)]
    [New Thread 0xbd7feb40 (LWP 21520)]
    [New Thread 0xbd6fdb40 (LWP 21518)]
    [New Thread 0xc4bfeb40 (LWP 21514)]
    [New Thread 0xbb7ffb40 (LWP 21513)]
    [New Thread 0xbc7ffb40 (LWP 21512)]
    [New Thread 0xbdfffb40 (LWP 21511)]
    [New Thread 0xc53ffb40 (LWP 21510)]
    [New Thread 0xf75a6b40 (LWP 21508)]
    [New Thread 0xf76a7b40 (LWP 21507)]
    [New Thread 0xf77a8b40 (LWP 21506)]
    
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x97d08b40 (LWP 21523)]
    0xbd4cd714 in PerfMon::SamplingThread(void*) () from /home/arma3/arma3/mods/@aliveserver/ALiVEPlugIn.so
    (gdb) bt
    #0  0xbd4cd714 in PerfMon::SamplingThread(void*) () from /home/arma3/arma3/mods/@aliveserver/ALiVEPlugIn.so
    #1  0xf7fb31aa in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
    #2  0xf78e0fde in clone () from /lib/i386-linux-gnu/libc.so.6

    strace:

    29852 select(1024, [629], NULL, NULL, {0, 5000} <unfinished ...>
    29837 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={3745211482112047, 3384434229248000}, ru_stime={1477708, 0}, ...}) = 0
    29837 open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 649
    29837 fcntl64(649, F_GETFD)             = 0
    29837 fcntl64(649, F_SETFD, FD_CLOEXEC) = 0
    29837 getrusage(0x1 /* RUSAGE_??? */,  <unfinished ...>
    29854 <... epoll_wait resumed> {}, 1, 49) = 0
    29837 <... getrusage resumed> {ru_utime={3745211482112047, 3384434229248000}, ru_stime={1477708, 0}, ...}) = 0
    29854 read(635,  <unfinished ...>
    29837 read(649,  <unfinished ...>
    29854 <... read resumed> 0xc43fde3c, 128) = -1 EAGAIN (Resource temporarily unavailable)
    29854 poll([{fd=633, events=POLLIN}], 1, 0 <unfinished ...>
    29837 <... read resumed> "Caac\310\247\364\222\342Z\330\232Cn\303W\"[3\16\\47v\333Re\260\253\350\377\233", 32) = 32
    29854 <... poll resumed> )              = 0 (Timeout)
    29851 <... select resumed> )            = 0 (Timeout)
    29854 poll([{fd=638, events=POLLIN|POLLOUT}], 1, 0 <unfinished ...>
    29851 select(1024, [627], NULL, NULL, {0, 5000} <unfinished ...>
    29854 <... poll resumed> )              = 1 ([{fd=638, revents=POLLOUT}])
    29854 poll([{fd=640, events=POLLIN|POLLOUT}], 1, 0) = 1 ([{fd=640, revents=POLLOUT}])
    29854 read(635, 0xc43fde3c, 128)        = -1 EAGAIN (Resource temporarily unavailable)
    29854 poll([{fd=633, events=POLLIN}], 1, 0) = 0 (Timeout)
    29854 poll([{fd=640, events=POLLIN|POLLOUT}], 1, 0) = 1 ([{fd=640, revents=POLLOUT}])
    29854 epoll_wait(632,  <unfinished ...>
    29837 read(649, "\204\4t\243\350\t\265>\253\266m\2-?J\332\231j\177\347x\242\3329]\35L|DB\352v", 32) = 32
    29837 read(649, "\272\302\277N\354\347\2613", 8) = 8
    29837 mmap2(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xffffffff96cce000
    29837 mprotect(0x96cce000, 4096, PROT_NONE) = 0
    29837 clone(child_stack=0x974ce424, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x974ceba8, tls=0x974ceba8, child_tidptr=0xffdbf170) = 29871
    29871 set_robust_list(0x974cebb0, 12 <unfinished ...>
    29837 stat64("/etc/localtime",  <unfinished ...>
    29871 <... set_robust_list resumed> )   = 0
    29837 <... stat64 resumed> {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
    29871 mmap2(NULL, 4194304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
    29837 open("@aliveserver/aliveplugin_2016-02-13_14-45.txt", O_WRONLY|O_CREAT|O_APPEND, 0666 <unfinished ...>
    29871 <... mmap2 resumed> )             = 0xffffffff968ce000
    29837 <... open resumed> )              = -1 ENOENT (No such file or directory)
    29871 munmap(0x968ce000, 4194304 <unfinished ...>
    29837 nanosleep({0, 10000000},  <unfinished ...>
    29871 <... munmap resumed> )            = 0
    29871 mmap2(NULL, 8384512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffffffff964cf000
    29871 munmap(0x964cf000, 3346432)       = 0
    29871 munmap(0x96c00000, 843776)        = 0
    29871 open("/proc/self/stat", O_RDONLY) = 650
    29871 fstat64(650, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
    29871 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff779c000
    29871 read(650, "29837 (arma3server) S 29836 2983"..., 1024) = 329
    29871 close(650)                        = 0
    29871 munmap(0xf779c000, 4096)          = 0
    29871 open("/proc/stat", O_RDONLY)      = 650
    29871 fstat64(650, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
    29871 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff779c000
    29871 read(650,  <unfinished ...>
    29852 <... select resumed> )            = 0 (Timeout)
    29852 select(1024, [629], NULL, NULL, {0, 5000} <unfinished ...>
    29871 <... read resumed> "cpu  131359548 125191 2100998 89"..., 1024) = 1024
    29871 close(650)                        = 0
    29871 munmap(0xf779c000, 4096 <unfinished ...>
    29853 <... select resumed> )            = 0 (Timeout)
    29871 <... munmap resumed> )            = 0
    29853 select(0, NULL, NULL, NULL, {0, 20000} <unfinished ...>
    29871 time(NULL)                        = 1455371152
    29871 open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 650
    29871 read(650, "0-3\n", 8192)          = 4
    29871 close(650)                        = 0
    29871 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x1c} ---
    29854 +++ killed by SIGSEGV (core dumped) +++
    29864 +++ killed by SIGSEGV (core dumped) +++
    29860 +++ killed by SIGSEGV (core dumped) +++
    29858 +++ killed by SIGSEGV (core dumped) +++
    29852 +++ killed by SIGSEGV (core dumped) +++
    29851 +++ killed by SIGSEGV (core dumped) +++
    29848 +++ killed by SIGSEGV (core dumped) +++
    29847 +++ killed by SIGSEGV (core dumped) +++
    29846 +++ killed by SIGSEGV (core dumped) +++
    29845 +++ killed by SIGSEGV (core dumped) +++
    29838 +++ killed by SIGSEGV (core dumped) +++
    29871 +++ killed by SIGSEGV (core dumped) +++
    29853 +++ killed by SIGSEGV (core dumped) +++
    29837 +++ killed by SIGSEGV (core dumped) +++

    That's everything I've got so far. Can't really see what's causing it. I had a go at tracing the memory using valgrind but everything was taking forever and I gave up.

    The only real ENOENT in there is for '@aliveserver/aliveplugin_2016-02-13_14-45.txt' but I can't see that segfaulting the module?

    If anyone can see anything I've missed, I'd appreciate the assist.

    Thanks,

    Andrew

  2. Tupolov

    15 Feb 2016 Administrator

    What version of the plugin?

  3. Hi Tupolov,

    The above report was with ALiVE_1.0.0.1602091. I've just tried ALiVE_0.9.9.150622 and I don't get a segfault when loading aliveserver. The mission I'm testing with doesn't work with it ("ALiVE OPCOM Waiting for Virtual AI System" errors). so I haven't progressed it further.

    Thanks,

    Andrew

  4. 3 years ago

    Tupolov

    15 Apr 2016 Administrator

    Can you confirm the version of the plugin, not the version of the ALiVE. Did you download the latest from our website?

    Also, can you test with a vanilla Alive mission like quick start?

 

or Sign Up to reply!