[erlang-bugs] Segmentation Fault Using ets:test_ms/2

Sverker Eriksson <>
Mon Aug 20 18:03:13 CEST 2012


Thanks for reporting, Vance.

This bug is specific to ets:test_ms and should not affect other use of 
match specs.
It was introduced in R14B02.

This should do it while waiting for R15B02:

diff --git a/erts/emulator/beam/erl_db_util.c 
b/erts/emulator/beam/erl_db_util.c
index 1aa0cb4..42907e2 100644
--- a/erts/emulator/beam/erl_db_util.c
+++ b/erts/emulator/beam/erl_db_util.c
@@ -1233,7 +1233,7 @@ static Eterm erts_match_set_run_ets(Process *p, 
Binary *mpsp,
     Eterm ret;

     ret = db_prog_match(p, mpsp, args, NULL, NULL, num_args,
-                       ERTS_PAM_CONTIGUOUS_TUPLE | ERTS_PAM_COPY_RESULT,
+                       ERTS_PAM_COPY_RESULT,
                        return_flags);
 #if defined(HARDDEBUG)
     if (is_non_value(ret)) {


/Sverker, Erlang/OTP

Vance Shipley wrote:
>    Erlang R15B01 (erts-5.9.1) [source] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]
>    
>    Eshell V5.9.1  (abort with ^G)
>    1> rd(test, {a, b, c = gb_sets:new()}).
>    test
>    2> ets:test_ms(#test{}, [{#test{_='_'}, [], ['$_']}]).
>    size_object: bad tag for 0x0
>    Abort trap: 6
>
>   



More information about the erlang-bugs mailing list