Segfault in B_plus_minus beam/big.c:517 in R14B04

Andrew Thompson <>
Tue Mar 23 19:04:32 CET 2010


I'm not sure what I need to provide to help figure this out, but I had
my erlang VM coredump yesterday. Luckily I had enabled corefile
generation, so I obtained a core file. Attached is the output of running
a bt full on the thread I think caused the seg.

If any more information would be helpful, let me know. This is a
ubuntu-server install running amd64 and I built erlang from source
myself.

Andrew
-------------- next part --------------
Script started on Tue Mar 23 13:58:00 2010
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libutil.so.1...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libncurses.so.5...done.
Loaded symbols for /lib/libncurses.so.5
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/librt.so.1...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/local/lib/erlang/lib/crypto-1.6.4/priv/lib/crypto_drv.so...done.
Loaded symbols for /usr/local/lib/erlang/lib/crypto-1.6.4/priv/lib/crypto_drv.so
Reading symbols from /usr/lib/libcrypto.so.0.9.8...done.
Loaded symbols for /usr/lib64/libcrypto.so.0.9.8
Reading symbols from /lib/libz.so.1...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /usr/local/lib/erlang/lib/iconv-1.0/priv/iconv_drv.so...done.
Loaded symbols for /usr/local/lib/erlang/lib/iconv-1.0/priv/iconv_drv.so
Reading symbols from /usr/lib/gconv/ISO8859-1.so...done.
Loaded symbols for /usr/lib/gconv/ISO8859-1.so
Core was generated by `/usr/local/lib/erlang/erts-5.7.5/bin/beam.smp -K true -- -root /usr/local/lib/e'.
Program terminated with signal 11, Segmentation fault.
[New process 2914]
[New process 2910]
[New process 2892]
[New process 2912]
[New process 2913]
[New process 2911]
#0  B_plus_minus (x=0x7fe7227dddc8, xl=1, xsgn=0, y=0x7fe715137448, yl=0, ysgn=<value optimized out>, r=0x7fe715137448) at beam/big.c:517
517		xr = *x++;
(gdb) bt full
#0  B_plus_minus (x=0x7fe7227dddc8, xl=1, xsgn=0, y=0x7fe715137448, yl=0, ysgn=<value optimized out>, r=0x7fe715137448) at beam/big.c:517
No locals.
#1  0x00000000004ece7f in big_plus (x=<value optimized out>, y=1873727406551102227, r=<value optimized out>) at beam/big.c:1922
No locals.
#2  0x00000000004b14b4 in erts_gc_mixed_plus (p=0x7fe71760b378, reg=0x7fe7241e1978, live=1) at beam/erl_arith.c:1249
	arg1 = 140630692847042
	arg2 = 140630467769410
	tmp_big1 = {72, 287}
	tmp_big2 = {140630692846864, 140630692847008}
	res = <value optimized out>
	hdr = <value optimized out>
	f1 = {fd = 6.948070196272688e-310, fb = "x?`\027?\177\000", fs = {45944, 5984, 32743, 0}, fw = {392213368, 32743}, fdw = 140630506386296}
	f2 = {fd = 6.9480794086511548e-310, fb = "@?}\"?\177\000", fs = {56640, 8829, 32743, 0}, fw = {578673984, 32743}, fdw = 140630692846912}
	need_heap = -583
	ires = <value optimized out>
#3  0x000000000051cfe4 in process_main () at beam/beam_emu.c:2260
	live = 1
	c_p = (Process *) 0x7fe71760b378
	reds_used = 605952376
	x0 = 140630467769410
	reg = (Eterm *) 0x7fe7241e1978
	HTOP = (Eterm *) 0x7fe715137448
	E = (Eterm *) 0x7fe71513f228
	I = (Eterm *) 0x7fe71833d148
	FCALLS = 1585
	tmp_arg1 = 4607
	tmp_arg2 = 140630467769410
	tmp_big = {8, 8535072}
	freg = (FloatDef *) 0x7fe7241e3988
	neg_o_reds = 0
	arith_func = (Eterm (*)(Process *, Eterm *, Uint)) 0x1a00d12619647313
	temp_bits = 140630720125304
	EBS = (struct erl_bits_state *) 0x7fe7241e5990
	init_done = 1
	opcodes = {0x51f48f, 0x51f6ac, 0x51f5e4, 0x51f52e, 0x51f3d1, 0x51cc7e, 0x51da55, 0x51cc13, 0x522860, 0x51dbec, 0x51fdb1, 0x51fd36, 0x51b65f, 0x51b5fb, 
  0x51b64d, 0x51d468, 0x51d56b, 0x51bc2b, 0x51bbfc, 0x51bbd0, 0x51bb9c, 0x51bb7a, 0x51bb4d, 0x51bc77, 0x51bc4f, 0x51ff19, 0x51d393, 0x51d2a0, 0x51d0b1, 0x51e4d9, 
  0x51dae6, 0x51bfb3, 0x51eb7e, 0x51edf1, 0x51ed38, 0x51e464, 0x51bfef, 0x51f3c1, 0x51aaf3, 0x51f2a3, 0x51f27a, 0x51f388, 0x51f351, 0x51f310, 0x51f2d1, 0x51c590, 
  0x51c5b2, 0x51c6ba, 0x51c674, 0x51c625, 0x51f245, 0x51f215, 0x51f1e9, 0x51f1b1, 0x51ac7d, 0x521d9e, 0x521d66, 0x521d33, 0x521cfc, 0x521cc5, 0x521c8d, 0x521c3f, 
  0x521bf1, 0x521bb9, 0x521b6b, 0x521b22, 0x521aeb, 0x521ab9, 0x521a81, 0x521a38, 0x5219ef, 0x5219bc, 0x521973, 0x52192f, 0x51de79, 0x51dfd8, 0x51dfb8, 0x51e60b, 
  0x51dfae, 0x51dee0, 0x51cdb4, 0x51cbac, 0x51e2f0, 0x51e294, 0x51cd43, 0x51cce8, 0x51d056, 0x51feb6, 0x51fe65, 0x51d1bd, 0x51d590, 0x51d4e2, 0x51d71e, 0x51d660, 
  0x51d705, 0x51b2ff, 0x51b215, 0x51b088, 0x51b14d, 0x51b5e6, 0x51b53a, 0x51afd4, 0x51af18, 0x51ae28, 0x51ad46, 0x51b754, 0x51ba9d, 0x51b9e6, 0x51b945, 0x51ba7c, 
  0x51bb3b, 0x51bab2, 0x51b936, 0x51b8c9, 0x51b8a7, 0x51b838, 0x51b6d3, 0x51b672, 0x51b742, 0x51b6e5, 0x51d81f, 0x51ece2, 0x51ecc1, 0x51e698, 0x51e7ce, 0x51eccd, 
  0x51eced, 0x51e65a, 0x51d984, 0x51da20, 0x51e67b, 0x51d9f3, 0x51d730, 0x51d7f4, 0x51b528, 0x51b47d, 0x51d494, 0x51be5a, 0x51befc, 0x51b40c, 0x51b3e1, 0x51b45a, 
  0x51b42f, 0x51acb5, 0x522059, 0x521fc6, 0x521f32, 0x521e9e, 0x521e67, 0x521e28, 0x521df9, 0x521dc5, 0x51bda2, 0x51bd84, 0x51bc9a, 0x51bea1, 0x51bf3f, 0x51bdf6, 
  0x51bdb4, 0x5221a6, 0x51ce94, 0x51cf88, 0x51a950, 0x51a8e1, 0x51a915, 0x51a8b4, 0x51e228, 0x51e1be, 0x51a980, 0x51aa66, 0x51cb37, 0x51dcd5, 0x51ee90, 0x51c532, 
  0x51ee0f, 0x51c562, 0x51dc75, 0x52184a, 0x521823, 0x5217cc, 0x521794, 0x52175c, 0x52170f, 0x5216d7, 0x5216a4, 0x521876, 0x5217f8, 0x521736, 0x5218ea, 0x5218bf, 
  0x521899, 0x52190d, 0x52210f, 0x51dca5, 0x51dc42, 0x51c502, 0x51eb4e, 0x51fc89, 0x51ec23, 0x5220e5...}
#4  0x0000000000499aab in sched_thread_func (vesdp=<value optimized out>) at beam/erl_process.c:3060
No locals.
#5  0x0000000000594a6b in thr_wrapper (vtwd=<value optimized out>) at common/ethread.c:475
	res = <value optimized out>
	twd = (thr_wrap_data_ *) 0x7fff7205eec0
	thr_func = (void *(*)(void *)) 0x499a20 <sched_thread_func>
---Type <return> to continue, or q <return> to quit---
	arg = (void *) 0x7fe7241e1978
#6  0x00007fe7248653ba in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0x00007fe7243c9fcd in clone () from /lib/libc.so.6
No symbol table info available.
#8  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) info threads
  6 process 2911  0x00007fe7248692e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  5 process 2913  0x00007fe7248692e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  4 process 2912  0x00007fe7248692e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  3 process 2892  0x00007fe7243c2742 in select () from /lib/libc.so.6
  2 process 2910  0x00007fe72486bedb in read () from /lib/libpthread.so.0
* 1 process 2914  B_plus_minus (x=0x7fe7227dddc8, xl=1, xsgn=0, y=0x7fe715137448, yl=0, ysgn=<value optimized out>, r=0x7fe715137448) at beam/big.c:517
(gdb) q

Script done on Tue Mar 23 13:58:19 2010


More information about the erlang-bugs mailing list