Skip to content

Assertion '(!ecma_is_completion_value_empty (try_completion) && int_data->pos <= try_end_oc) || (ecma_is_completion_value_empty (try_completion) && int_data->pos == try_end_oc)' failed in opfunc_try_block #276

Closed
@renatahodovan

Description

@renatahodovan
Jerry version:
Checked revision: 2aa0485
Build: debug.linux
OS:
Ubuntu 14.10, x86_64
Test case:
/* 256 "a" in the array */

try {
  ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
} catch(e) { }
Backtrace:
ICE: Assertion '(!ecma_is_completion_value_empty (try_completion) && int_data->pos <= try_end_oc) || (ecma_is_completion_value_empty (try_completion) && int_data->pos == try_end_oc)' failed at jerryscript/jerry-core/vm/opcodes-ecma-try-catch-finally.cpp(opfunc_try_block):43.
Error: ERR_FAILED_INTERNAL_ASSERTION

Program received signal SIGABRT, Aborted.
0x0000000000485c23 in syscall_2_asm () at jerryscript/jerry-libc/target/linux/jerry-asm.S:32
32    SYSCALL_2
(gdb) bt
#0  0x0000000000485c23 in syscall_2_asm () at jerryscript/jerry-libc/target/linux/jerry-asm.S:32
#1  0x00000000004003c2 in syscall_2 (syscall_no=62, arg1=10133, arg2=6)
    at jerryscript/jerry-libc/target/linux/jerry-libc-target.c:96
#2  0x0000000000400563 in abort () at jerryscript/jerry-libc/target/linux/jerry-libc-target.c:175
#3  0x000000000043a7c7 in jerry_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-core/jrt/jrt-fatals.cpp:65
#4  0x000000000043a816 in jerry_assert_fail (
    assertion=0x4a4a38 "(!ecma_is_completion_value_empty (try_completion) && int_data->pos <= try_end_oc) || (ecma_is_completion_value_empty (try_completion) && int_data->pos == try_end_oc)", file=0x4a49e0 "jerryscript/jerry-core/vm/opcodes-ecma-try-catch-finally.cpp", 
    function=0x4868f0 <_ZZ16opfunc_try_block8opcode_tP10int_data_tE8__func__.lto_priv.985> "opfunc_try_block", line=43)
    at jerryscript/jerry-core/jrt/jrt-fatals.cpp:92
#5  0x0000000000480aca in opfunc_try_block (opdata=..., int_data=0x7fffffffd4c0)
    at jerryscript/jerry-core/vm/opcodes-ecma-try-catch-finally.cpp:42
#6  0x000000000047e78f in vm_loop (int_data_p=0x7fffffffd4c0, run_scope_p=0x0) at jerryscript/jerry-core/vm/vm.cpp:466
#7  0x000000000047ea1c in vm_run_from_pos (opcodes_p=0x7b6dd8 <_ZL13mem_heap_area.lto_priv.1016+4696>, start_pos=1, this_binding_value=15, 
    lex_env_p=0x7b5ba8 <_ZL13mem_heap_area.lto_priv.1016+40>, is_strict=false, is_eval_code=false)
    at jerryscript/jerry-core/vm/vm.cpp:556
#8  0x000000000047e5f9 in vm_run_global () at jerryscript/jerry-core/vm/vm.cpp:395
#9  0x000000000048572d in jerry_run () at jerryscript/jerry-core/jerry.cpp:1373
#10 0x000000000048430c in main (argc=3, argv=0x7fffffffd888) at jerryscript/main-linux.cpp:291
Notes

Removing the surrounding try block we get another assertion failure:

ICE: Assertion 'ecma_is_completion_value_throw (completion) || ecma_is_completion_value_return (completion)' failed at jerryscript/jerry-core/vm/vm.cpp(vm_run_from_pos):559.
Error: ERR_FAILED_INTERNAL_ASSERTION

Program received signal SIGABRT, Aborted.
0x0000000000485c23 in syscall_2_asm () at jerryscript/jerry-libc/target/linux/jerry-asm.S:32
32    SYSCALL_2
(gdb) bt
#0  0x0000000000485c23 in syscall_2_asm () at jerryscript/jerry-libc/target/linux/jerry-asm.S:32
#1  0x00000000004003c2 in syscall_2 (syscall_no=62, arg1=13111, arg2=6)
    at jerryscript/jerry-libc/target/linux/jerry-libc-target.c:96
#2  0x0000000000400563 in abort () at jerryscript/jerry-libc/target/linux/jerry-libc-target.c:175
#3  0x000000000043a7c7 in jerry_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-core/jrt/jrt-fatals.cpp:65
#4  0x000000000043a816 in jerry_assert_fail (
    assertion=0x4a44c0 "ecma_is_completion_value_throw (completion) || ecma_is_completion_value_return (completion)", 
    file=0x4a42a8 "jerryscript/jerry-core/vm/vm.cpp", 
    function=0x4866c0 <_ZZ15vm_run_from_posPK8opcode_ttjP13ecma_object_tbbE8__func__.lto_priv.1007> "vm_run_from_pos", line=559)
    at jerryscript/jerry-core/jrt/jrt-fatals.cpp:92
#5  0x000000000047ea73 in vm_run_from_pos (opcodes_p=0x7b5d18 <_ZL13mem_heap_area.lto_priv.1016+408>, start_pos=1, this_binding_value=15, 
    lex_env_p=0x7b5ba8 <_ZL13mem_heap_area.lto_priv.1016+40>, is_strict=false, is_eval_code=false)
    at jerryscript/jerry-core/vm/vm.cpp:558
#6  0x000000000047e5f9 in vm_run_global () at jerryscript/jerry-core/vm/vm.cpp:395
#7  0x000000000048572d in jerry_run () at jerryscript/jerry-core/jerry.cpp:1373
#8  0x000000000048430c in main (argc=3, argv=0x7fffffffd888) at jerryscript/main-linux.cpp:291

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugUndesired behaviourecma coreRelated to core ECMA functionality

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions