<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 10 September 2015 at 10:23, Mikael Pettersson <span dir="ltr"><<a href="mailto:mikpelinux@gmail.com" target="_blank">mikpelinux@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">James Fish writes:<br>
 > When using {message, {process_dump}} in a trace the VM can abort on OTP<br>
 > R16B03 to 18.0.2 (not R16B02 and earlier) on a linux 3.19.0-21-generic<br>
 > x86_64:<br>
 ><br>
 > TYPE ASSERTION FAILED, file beam/erl_term.c, line 115: tag_val_def:<br>
 > 0x7f9c183ee6d2<br>
 > Aborted (core dumped)<br>
 ><br>
 > #0  0x00007f9c1c56f267 in __GI_raise (sig=sig@entry=6) at<br>
 > ../sysdeps/unix/sysv/linux/raise.c:55<br>
 > #1  0x00007f9c1c570eca in __GI_abort () at abort.c:89<br>
 > #2  0x000000000056dfd1 in et_abort (expr=0x9081e0 <msg> "tag_val_def:<br>
 > 0x7f9c183ee6d2", file=0x64fe45 "beam/erl_term.c", line=115) at<br>
 > beam/erl_term.c:48<br>
 > #3  tag_val_def (x=x@entry=140308398401234) at beam/erl_term.c:115<br>
 > #4  0x00000000004cf12e in print_term (obj_base=<optimised out>,<br>
 > dcount=<synthetic pointer>, obj=140308398401234, arg=0x7f9c1d780078,<br>
 > fn=0x630a10 <write_ds>) at beam/erl_printf_term.c:352<br>
 > #5  erts_printf_term (fn=0x630a10 <write_ds>, arg=0x7f9c1d780078,<br>
 > term=<optimised out>, precision=99999, term_base=<optimised out>) at<br>
 > beam/erl_printf_term.c:657<br>
 > #6  0x000000000062ed17 in erts_printf_format (fn=fn@entry=0x630a10<br>
 > <write_ds>, arg=arg@entry=0x7f9c1d780078, fmt=fmt@entry=0x64830b "%T\n",<br>
 > ap=ap@entry=0x7f9c198fc640) at common/erl_printf_format.c:847<br>
 > #7  0x0000000000631750 in erts_vdsprintf (dsbufp=dsbufp@entry=0x7f9c1d780078,<br>
 > format=format@entry=0x64830b "%T\n", arglist=arglist@entry=0x7f9c198fc640)<br>
 > at common/erl_printf.c:459<br>
 > #8  0x00000000004a9696 in erts_print (to=to@entry=-4,<br>
 > arg=arg@entry=0x7f9c1d780078,<br>
 > format=format@entry=0x64830b "%T\n") at beam/utils.c:400<br>
 > #9  0x00000000004ea8cf in stack_element_dump (yreg=2, sp=0x7f9c183ef258,<br>
 > to_arg=0x7f9c1d780078, to=-4) at beam/erl_process.c:12546<br>
 > #10 erts_stack_dump (to=to@entry=-4, to_arg=to_arg@entry=0x7f9c1d780078,<br>
 > p=p@entry=0x7f9c1bb003d8) at beam/erl_process.c:12466<br>
 > #11 0x000000000055b56d in print_process_info (to=to@entry=-4,<br>
 > to_arg=to_arg@entry=0x7f9c1d780078, p=p@entry=0x7f9c1bb003d8) at<br>
 > beam/break.c:339<br>
 > #12 0x000000000052cc20 in db_prog_match (c_p=c_p@entry=0x7f9c1bb003d8,<br>
 > bprog=0x7f9c1bdc0b78, term=term@entry=18446744073709551611,<br>
 > base=base@entry=0x0,<br>
 > termp=termp@entry=0x7f9c198fca70, arity=arity@entry=1,<br>
 >     in_flags=ERTS_PAM_TMP_RESULT, return_flags=0x7f9c198fca14) at<br>
 > beam/erl_db_util.c:2404<br>
 > #13 0x000000000052e5ec in erts_match_set_run (p=p@entry=0x7f9c1bb003d8,<br>
 > mpsp=<optimised out>, args=args@entry=0x7f9c198fca70,<br>
 > num_args=num_args@entry=1, in_flags=in_flags@entry=ERTS_PAM_TMP_RESULT,<br>
 >     return_flags=return_flags@entry=0x7f9c198fca14) at<br>
 > beam/erl_db_util.c:1243<br>
 > #14 0x00000000004a0c55 in erts_call_trace (p=p@entry=0x7f9c1bb003d8,<br>
 > mfa=mfa@entry=0x7f9c1822f058, match_spec=<optimised out>,<br>
 > args=0x7f9c198fca70, args@entry=0x7f9c1bfc4180, local=local@entry=1,<br>
 >     tracer_pid=0x7f9c1bb003e8, tracer_pid@entry=0x7f9c198fdcc8) at<br>
 > beam/erl_trace.c:1873<br>
 > #15 0x0000000000455654 in do_call_trace (c_p=0x7f9c1bb003d8,<br>
 > I=0x7f9c1822f070, reg=0x7f9c1bfc4180, local=local@entry=1, ms=<optimised<br>
 > out>, tracer_pid=tracer_pid@entry=75) at beam/beam_bp.c:900<br>
 > #16 0x0000000000459524 in erts_generic_breakpoint (c_p=0x7f9c1bb003d8,<br>
 > I=0x7f9c1822f070, reg=0x7f9c1bfc4180) at beam/beam_bp.c:626<br>
 > #17 0x0000000000443f23 in process_main () at beam/beam_emu.c:4921<br>
 > #18 0x00000000004d6415 in sched_thread_func (vesdp=0x7f9c1ae4bc40) at<br>
 > beam/erl_process.c:8021<br>
 > #19 0x000000000062d0e3 in thr_wrapper (vtwd=0x7fff8a43d010) at<br>
 > pthread/ethread.c:114<br>
 > #20 0x00007f9c1cb136aa in start_thread (arg=0x7f9c198fe700) at<br>
 > pthread_create.c:333<br>
 > #21 0x00007f9c1c640eed in clone () at<br>
 > ../sysdeps/unix/sysv/linux/x86_64/clone.S:109<br>
 ><br>
 > A minimal example:<br>
 ><br>
 > c("test.erl"),<br>
 > dbg:tracer(),<br>
 > dbg:p(self(), [call]),<br>
 > dbg:tpl(test, identity, [{'_',[],[{message,{process_dump}}]}]),<br>
 > test:sum(<<0>>, 0).<br>
 ><br>
 > test.erl:<br>
 ><br>
 > -module(test).<br>
 ><br>
 > -export([sum/2]).<br>
 ><br>
 > sum(<<Int, Rest/binary>>, Acc) -><br>
 >     sum(Rest, Acc + identity(Int));<br>
 > sum(<<>>, Acc) -> Acc.<br>
 ><br>
 > identity(Int) -><br>
 >     Int.<br>
<br>
</div></div>I can't reproduce the issue in a vanilla OTP R16B03-1.  Are you sure<br>
R16B03-1 is affected?<br>
<br>
I'm asking because I started backporting the fix to R16, but noticed that<br>
the R16 code shouldn't abort() in this case, and indeed your recipe doesn't<br>
fail for me.<br>
</blockquote></div><br></div><div class="gmail_extra">I just tried again and I can't reproduce with R16B03-1 either. The earliest version I can reproduce on is actually 17.0-rc1. Sorry for the mix up.<br></div><div class="gmail_extra"><br></div></div>