[erlang-questions] Segfault with Erlang R22

Bekes, Andras G Andras.Bekes@REDACTED
Thu Oct 24 16:57:42 CEST 2019


Hi Mikael,

I filed a bug report in the bug tracker: https://bugs.erlang.org/browse/ERL-1074

Unfortunately printing *c_p did not reveal anything:

(gdb) print c_p
$1 = <value optimized out>
(gdb) print *c_p
value has been optimized out

What should be the next step?
I can reliably produce 5-10 core dumps per week in my test system.

-----Original Message-----
From: Mikael Pettersson [mailto:mikpelinux@REDACTED] 
Sent: Friday, October 18, 2019 8:03 PM
To: Bekes, Andras G (IST)
Cc: Erlang Questions
Subject: Re: [erlang-questions] Segfault with Erlang R22

On Fri, Oct 18, 2019 at 4:34 PM Bekes, Andras G
<Andras.Bekes@REDACTED> wrote:
>
> Hi All,
>
>
>
> After upgrading to Erlang R22, my software crashes the Erlang VM with Segmentation fault.
>
> It happens rarely, only after several days of test workload, so I can’t really reproduce.
>
>
>
> I made more than 10 core dumps so far, loaded them into gdb, and all of them died at these 2 crash points:
>
>
>
> Program terminated with signal 11, Segmentation fault.
>
> #0  process_main (x_reg_array=0x20002, f_reg_array=0x2ade29280590) at x86_64-unknown-linux-gnu/opt/smp/beam_hot.h:4064
>
> 4064      if (is_not_tuple(r(0))) {
>
>
>
> or
>
>
>
> #0  process_main (x_reg_array=0x20002, f_reg_array=0x2) at x86_64-unknown-linux-gnu/opt/smp/beam_hot.h:5252
>
> 5252          c_p->seq_trace_lastcnt = unsigned_val(SEQ_TRACE_TOKEN_SERIAL(c_p));
>
>
>
> The software is not doing any tracing when the crash happens, nor does it have any NIFs.

I think you should open a bug report in the erlang bug tracker.

The second crash site above is in the remove_message() function, in a
block where ERL_MESSAGE_TOKEN(msgp)
is neither NIL nor am_undefined, but SEQ_TRACE_TOKEN(c_p) is invalid
(not the expected 5-tuple).

Maybe printing *c_p in gdb when that happens could shed some light.

/Mikael



More information about the erlang-questions mailing list