[erlang-bugs] beam segfault

Lukas Larsson lukas@REDACTED
Wed Oct 9 12:17:53 CEST 2013


Most often when you see something go wrong in the allocator code, it is 
because somewhere there is a driver/nif that has been writing just 
outside a buffer allocated by driver_alloc. So check any non-otp 
drivers/nifs that you use for memory corruption bugs.

Also if you can reproduce the error, then running it with a debug 
compiled erlang emulator should help to point at the error.

Lukas

On 09/10/13 12:04, Jesper Louis Andersen wrote:
> Have you tried running a git blame on the allocator code to see if 
> there is a change recently to it? R14B04 is pretty old, so the code 
> base might have changed quite a lot since then.
>
>
> On Wed, Oct 9, 2013 at 6:14 AM, Ruan Jonker <ruan.jonker@REDACTED 
> <mailto:ruan.jonker@REDACTED>> wrote:
>
>     Hi All,
>
>     Just some more info :
>
>
>     addr2line -e /home/mtrouter/mira_mt_router/erts-5.8.5/bin/beam
>     0808f818
>     /home/erlang/src/otp_src_R14B04/erts/emulator/beam/erl_bestfit_alloc.c:228
>
>     BR
>
>     Ruan
>
>
>
>
>     On Tue, Oct 8, 2013 at 10:14 AM, Ruan Jonker
>     <ruan.jonker@REDACTED <mailto:ruan.jonker@REDACTED>> wrote:
>
>         Hi All,
>
>         I've recently encountered the following in dmesg output after
>         one of my VM's crashed:
>
>         >>> dmesg output start
>         [2827116.693283] beam[28297]: segfault at 0000000c eip
>         0808f818 esp bff7a294 error 4
>         >>> dmesg output end
>
>         Here is a disassembly of beam with some context around 808f818 :
>
>         >>> disassembly start
>          808f7fa:5f pop    %edi
>          808f7fb:c3 ret
>          808f7fc:8b 51 0c mov    0xc(%ecx),%edx
>          808f7ff:39 da cmp    %ebx,%edx
>          808f801:0f 84 96 00 00 00 <tel:84%2096%2000%2000%2000> je  
>         808f89d <tree_insert_fixup+0x11d>
>          808f807:8b 43 08 mov    0x8(%ebx),%eax
>          808f80a:8b 50 08 mov    0x8(%eax),%edx
>          808f80d:83 60 04 fd andl   $0xfffffffd,0x4(%eax)
>          808f811:8b 4a 10 mov    0x10(%edx),%ecx
>          808f814:83 4a 04 02 orl    $0x2,0x4(%edx)
>          808f818:8b 41 0c mov    0xc(%ecx),%eax
>          808f81b:85 c0 test   %eax,%eax
>          808f81d:89 42 10 mov    %eax,0x10(%edx)
>          808f820:74 03 je   808f825 <tree_insert_fixup+0xa5>
>          808f822:89 50 08 mov    %edx,0x8(%eax)
>          808f825:8b 42 08 mov    0x8(%edx),%eax
>          808f828:85 c0 test   %eax,%eax
>          808f82a:89 41 08 mov    %eax,0x8(%ecx)
>          808f82d:74 6a je   808f899 <tree_insert_fixup+0x119>
>          808f82f:8b 42 08 mov    0x8(%edx),%eax
>          808f832:3b 50 0c cmp    0xc(%eax),%edx
>         >>> disassembly start
>
>         ldd erts-5.8.5/bin/beam
>         linux-gate.so.1 =>  (0xb76fe000)
>         libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0xb76f2000)
>         libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb76ee000)
>         libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb76c8000)
>         libncurses.so.5 => /lib/libncurses.so.5 (0xb7698000)
>         libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7680000)
>         librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7677000)
>         libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7528000)
>         /lib/ld-linux.so.2 (0xb76ff000)
>
>         I'm running R14B04 on ubuntu 8.04 32bit built using gcc:
>
>         gcc -v
>         Using built-in specs.
>         Target: i486-linux-gnu
>         Configured with: ../src/configure -v
>         --enable-languages=c,c++,fortran,objc,obj-c++,treelang
>         --prefix=/usr --enable-shared --with-system-zlib
>         --libexecdir=/usr/lib --without-included-gettext
>         --enable-threads=posix --enable-nls
>         --with-gxx-include-dir=/usr/include/c++/4.2
>         --program-suffix=-4.2 --enable-clocale=gnu
>         --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr
>         --enable-targets=all --enable-checking=release
>         --build=i486-linux-gnu --host=i486-linux-gnu
>         --target=i486-linux-gnu
>         Thread model: posix
>         gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
>
>
>         Has anybody seen something similar ?
>
>         BR
>
>         -- 
>         Ruan Jonker
>
>
>
>
>     -- 
>     Ruan Jonker
>     South Africa
>     +27824619036 <tel:%2B27824619036>
>
>     _______________________________________________
>     erlang-bugs mailing list
>     erlang-bugs@REDACTED <mailto:erlang-bugs@REDACTED>
>     http://erlang.org/mailman/listinfo/erlang-bugs
>
>
>
>
> -- 
> J.
>
>
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20131009/b6ed6929/attachment.htm>


More information about the erlang-bugs mailing list