Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when starting eovim #19

Closed
Dasmark opened this issue Jan 1, 2018 · 4 comments
Closed

Error when starting eovim #19

Dasmark opened this issue Jan 1, 2018 · 4 comments

Comments

@Dasmark
Copy link

Dasmark commented Jan 1, 2018

I compiled cleanly with

rm -rf build
./scripts/get-msgpack.sh
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

After installing and starting, I get the following:

ERR<6612>:eo lib/eo/eo.c:574 _efl_object_call_resolve() in lib/edje/edje_object.eo.c:102: func 'edje_obj_signal_emit' (1057) could not be resolved for class 'Elm.Layout'.
## Copy & Paste the below (until EOF) into a terminal, then hit Enter

eina_btlog << EOF
/lib64/libeina.so.1	 0x7fbda62b66cc 0x7fbda628f000
/lib64/libeina.so.1	 0x7fbda62b73f1 0x7fbda628f000
/lib64/libeina.so.1	 0x7fbda62b87c3 0x7fbda628f000
/lib64/libeo.so.1	 0x7fbda0d3804f 0x7fbda0d2e000
/lib64/libedje.so.1	 0x7fbda5998883 0x7fbda58ea000
fish: “eovim” terminated by signal SIGSEGV (Address boundary error)

Due to the segfault, the btlog seems to be incomplete:

/lib64/libeina.so.1| /usr/src/debug/efl-1.20.5-1.fc27.x86_64/src/lib/eina/eina_log.c      : 2055 @ eina_log_print_cb_journald()
/lib64/libeina.so.1| /usr/src/debug/efl-1.20.5-1.fc27.x86_64/src/lib/eina/eina_log.c      : 1456 @ eina_log_print_cb_stdout()
/lib64/libeina.so.1| /usr/src/debug/efl-1.20.5-1.fc27.x86_64/src/lib/eina/eina_log.c      : 2260 @ eina_log_print()
/lib64/libeo.so.1  |   /usr/src/debug/efl-1.20.5-1.fc27.x86_64/src/lib/eo/eo.c            :  583 @ _efl_object_call_resolve()
/lib64/libedje.so.1| /usr/src/debug/efl-1.20.5-1.fc27.x86_64/src/lib/edje/edje_object.eo.c:  102 @ edje_obj_signal_emit()

Running Fedora 27, so I have quite a recent version of the libs:

edje_cc --version
Version: 1.20.5

It does start if I use env EINA_LOG_BACKTRACE=0 eovim, but then I have what seems to be the commandline opened and floating above my window all the time.

I also peeked at the coredump, hope it helps:

(gdb) bt full
#0  0x00007f607341fcd2 in _eina_debug_dump_fhandle_bt (f=0x7f6071a3f660 <_IO_2_1_stderr_>, bt=bt@entry=0x7fff118c9f00, btlen=<optimized out>)
    at lib/eina/eina_debug_bt.c:70
        i = <optimized out>
        info = {dli_fname = 0x0, dli_fbase = 0x400000, dli_sname = 0x404a89 "gui_cmdline_hide", dli_saddr = 0x40af10 <gui_cmdline_hide>}
        file = 0x0
        offset = 0
        base = 0
#1  0x00007f607342e6d9 in eina_log_print_cb_stderr (args=<optimized out>, data=<optimized out>, fmt=<optimized out>, line=<optimized out>, fnc=<optimized out>, file=<optimized out>, level=<optimized out>, d=<optimized out>) at lib/eina/eina_log.c:2055
        bt = 
          {0x7f607342e6cc <eina_log_print_cb_stderr+76>, 0x7f607342f3f1 <eina_log_print_unlocked+193>, 0x7f60734307c3 <eina_log_print+227>, 0x7f606deb004f <_efl_object_call_resolve+271>, 0x7f6072b10883 <edje_obj_signal_emit+131>, 0x40af27 <gui_cmdline_hide+23>, 0x40b4bc <gui_add+924>, 0x408d0d <nvim_new+749>, 0x407e6f <elm_main+687>, 0x407acc <main+44>, 0x7f607168200a <__libc_start_main+234>, 0x407b0a <_start+42>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f6071f1364f, 0x7fff118ca530, 0x7fff118ca6c0, 0x11, 0x7fff118ca540, 0x7f6071a3b120 <_IO_strn_jumps>, 0x7f60716b4eda <vfprintf+1562>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a7374f31186c200, 0x7f60734682a0, 0x7fff118ca590, 0x7fff118ca5a0, 0x7f606debb093, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0x7f60716b4c56 <vfprintf+918>, 0x7f6072b2ffa5, 0x7f6073442ddb <eina_str_split_full_helper+395>, 0x0, 0x0, 0x1, 0x7f605496207e, 0x7f6071f1365a, 0x0, 0xd68, 0x7f6071f1365b, 0x7f6071f13653, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a7374f31186c200, 0x7f606debb828, 0x7fff118ca6d0, 0x7fff118cafd0, 0x7fff118cafd0, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0x7f60716b4c56 <vfprintf+918>, 0x0 <repeats 21 times>, 0x2, 0x0, 0x2, 0x0 <repeats 52 times>, 0x14, 0x7f6054960a42, 0x2671d00, 0x7f60716f763a <strdup+26>, 0x7f6054960a55, 0x7f6054960a55, 0x7f6072b2ffa5, 0x7f6073442ddb <eina_str_split_full_helper+395>, 0x14, 0x7f6000000000, 0x1, 0x7f6054960a42, 0x7f6071eeaa15, 0x7f6071eeaa15, 0x7f6072b2ffa5, 0x7f6073442ddb <eina_str_split_full_helper+395>, 0x0, 0x0, 0x1, 0x7f6071eeaa02, 0x0 <repeats 31 times>, 0x5a7374f31186c200, 0x0, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0x7f606debb093, 0x23e, 0x7f606debc190 <__FUNCTION__.15276>, 0x1, 0x7f6071789206 <__fprintf_chk+262>, 0x3000000030, 0x7fff118ca6b0, 0x7fff118ca5c0, 0x5a7374f31186c200, 0x0, 0x0, 0x0, 0x7f6073468240, 0x7f6073468b09, 0x1f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f6071767940 <write+96>, 0x0, 0x1, 0x0, 0x1, 0x7f6071a3f6e3 <_IO_2_1_stderr_+131>, 0x7f60716e43fd <_IO_new_file_write+45>, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0xd68, 0x1, 0x7f6071a3f6e3 <_IO_2_1_stderr_+131>, 0x7f6071a3b420 <__GI__IO_file_jumps>, 0x7f60716e6171 <__GI__IO_do_write+177>, 0x2092990, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0xa, 0x7f606debb828, 0x7fff118cafd0, 0x7f606debb828, 0x23e, 0x7f60716e6623 <__GI__IO_file_overflow+259>, 0x7f6071a3f660 <_IO_2_1_stderr_>, 0x1, 0x7f606debb828, 0x7f60716e168b <putc+283>, 0x61e800 <stderr@@GLIBC_2.2.5>, 0x7f607342e772 <eina_log_print_cb_stderr+82>}
        btlen = <optimized out>
#2  0x00007f607342f3f1 in eina_log_print_unlocked (domain=31, level=EINA_LOG_LEVEL_ERR, file=0x7f606debb093 "lib/eo/eo.c", fnc=0x7f606debc190 <__FUNCTION__.15276> "_efl_object_call_resolve", line=<optimized out>, fmt=0x7f606debb828 "in %s:%d: func '%s' (%d) could not be resolved for class '%s'.", args=0x7fff118cafd0) at lib/eina/eina_log.c:1454
        d = <optimized out>
#3  0x00007f60734307c3 in eina_log_print (domain=31, level=level@entry=EINA_LOG_LEVEL_ERR, file=file@entry=0x7f606debb093 "lib/eo/eo.c", fnc=fnc@entry=0x7f606debc190 <__FUNCTION__.15276> "_efl_object_call_resolve", line=574, fmt=0x7f606debb828 "in %s:%d: func '%s' (%d) could not be resolved for class '%s'.")
    at lib/eina/eina_log.c:2259
        args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff118cb108, reg_save_area = 0x7fff118caff0}}
#4  0x00007f606deb004f in _efl_object_call_resolve (eo_id=eo_id@entry=0x80000004c7d2c34c, func_name=func_name@entry=0x7f6072b36ed2 "edje_obj_signal_emit", call=call@entry=0x7fff118cb180, cache=0x7f60738379e0, file=file@entry=0x7f6072b36c3c "lib/edje/edje_object.eo.c", line=line@entry=102) at lib/eo/eo.c:583
        klass = <optimized out>
        inputklass = <optimized out>
        main_klass = <optimized out>
        cur_klass = <optimized out>
        obj = <optimized out>
        vtable = <optimized out>
        func = <optimized out>
        is_obj = 1 '\001'
        is_override = <optimized out>
        super = <optimized out>
        __FUNCTION__ = "_efl_object_call_resolve"
#5  0x00007f6072b10883 in edje_obj_signal_emit (obj=0x80000004c7d2c34c, emission=0x417014 "eovim,cmdline,hide", source=0x415914 "eovim")
    at lib/edje/edje_object.eo.c:102
        ___cache = {index = {{klass = 0x2254f70}}, entry = {{func = 0x22570f0}}, off = {{off = 576}}, op = 1057, generation = 1}
        ___call = 
          {eo_id = 0x80000004c7d2c34c, obj = 0x24dcaa0, func = 0x800000021fd2c2f7, data = 0x7f606e0e42b9 <efl_gfx_visible_set+153>, extn1 = 0x8000000a8fd2c405, extn2 = 0x265fd20, extn3 = 0x7f6071eb1c20 <_elm_widget_efl_gfx_visible_set>, extn4 = 0x265ff50}
        _func_ = <optimized out>
#6  0x000000000040af27 in gui_cmdline_hide ()
#7  0x000000000040b4bc in gui_add ()
#8  0x0000000000408d0d in nvim_new ()
#9  0x0000000000407e6f in elm_main ()
#10 0x0000000000407acc in main ()
@jeanguyomarch
Copy link
Owner

Hi, thanks for reporting the problem.

For the segfault, I'm afraid you have hit the same problem as in #16: there was a bug in the EFL backtrace that is in master and has not been released yet :/ So while waiting for a new release, I'm afraid you need to set EINA_LOG_BACKTRACE to 0 (or -1 to disable backtrace upon, critical errors) as you did, to prevent the segfault.

The source of issue seems to be my fault. I have no error with the master branch of EFL, but it seems I'm using the wrong API, and as such hitting an undefined behavior. I've push a patch that I hope fixes the issue.

@Dasmark
Copy link
Author

Dasmark commented Jan 1, 2018

Now that error is gone, thanks. I still get an error because I'm running neovim 0.2.0, but at least the "floating command line" is gone, yay 👍

@Dasmark Dasmark closed this as completed Jan 1, 2018
jeanguyomarch pushed a commit that referenced this issue Jan 1, 2018
@jeanguyomarch
Copy link
Owner

Nice :)
Since the EFL backtrace bug is going to hit others, I've came up with a workaround that I pushed in the branch devs/jean/bt-fixup. Since I don't have a stable release of EFL (I'm working on the EFL master), could you please try to apply this patch. You should not need to manually unset EINA_LOG_BACKTRACE after applying it.
Thanks.

jeanguyomarch pushed a commit that referenced this issue Jan 1, 2018
@Dasmark Dasmark reopened this Jan 1, 2018
@Dasmark
Copy link
Author

Dasmark commented Jan 1, 2018

Yep, works like a charm. Thanks!

@Dasmark Dasmark closed this as completed Jan 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants