I think this patch is not the case, because I've got catch(...) in my
(old?) version everywhere.
Actually I had syntax errors in my lua code (used . instead of : when
calling methods). Now no crash when I fixed them, but the sigsegv is very
bad thing regardless the bugs in user code.

My opinion that it looks like there is no catch() in fiber code:
static void
fiber_loop(void *data __attribute__((unused)))
{
    for (;;) {
        assert(fiber != NULL && fiber->f != NULL && fiber->fid != 0);
        @try {
            fiber->f(fiber->f_data);
        } @catch (FiberCancelException *e) {
            say_info("fiber `%s' has been cancelled", fiber_name(fiber));
            say_info("fiber `%s': exiting", fiber_name(fiber));
        } @catch (tnt_Exception *e) {
            [e log];
        } @catch (id e) { ----------------------------- SHOUD BE ...
HERE????????????????????
            say_error("fiber `%s': exception `%s'",
                fiber_name(fiber), object_getClassName(e));
            panic("fiber `%s': exiting", fiber_name(fiber));
        }
        fiber_zombificate();
        fiber_yield();    /* give control back to scheduler */
    }
}

ubuntu@ubuntu:~/temp/tarantool-debug/src/box$ ./tarantool_box --version
Tarantool/Box 1.4.9-12-g5a0af97
Target: Linux-x86_64-Debug
Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr/local
-DENABLE_STATIC=OFF -DENABLE_TRACE=ON -DENABLE_BACKTRACE=ON
-DENABLE_CLIENT=OFF
Compiler: /home/buildslave/gcc46/bin/gcc /home/buildslave/gcc46/bin/c++
C_FLAGS: -fno-omit-frame-pointer -fno-stack-protector -fexceptions
-funwind-tables -msse2 -static-libgcc -std=gnu99 -Wall -Wextra
-Wno-sign-compare -Wno-strict-aliasing -Werror -pthread


2013/5/15 Kostja Osipov <[email protected]>

> Hi!
>
> This is most likely thanks to this patch:
>
>
> https://gist.github.com/Snawoot/5183794/raw/e924db4dfd7aedbdebe452875f9d98d35d48cddf/tarantool.diff
>
> We'll check and get back to you, meanwhile you could try reverting it
> manually (replace id allOthers with ...).
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1180389
>
> Title:
>   sigsegv when using fibers from lua in
>   _Unwind_RaiseException/err_raise_ext on 32bit ubuntu
>
> Status in Tarantool - an efficient in-memory data store:
>   New
>
> Bug description:
>   Segmentation fault
>   Current time: 1368623928
>   Please file a bug at http://bugs.launchpad.net/tarantool
>   Attempting backtrace... Note: since the server has already crashed,
>   this may fail as well
>           - { frame: 0x13a5d0, caller: 0x8078fec }
>           - { frame: 0x13a680, caller: 0x80d400 }
>           - { frame: 0x13adf0, caller: 0x80b6844 }
>           - { frame: 0x13ae20, caller: 0x80b6d79 }
>           - { frame: 0x13ae60, caller: 0x80b708f }
>           - { frame: 0x13ae90, caller: 0x80b733d }
>           - { frame: 0x13aeb0, caller: 0x80a5a14 }
>           - { frame: 0x13aef0, caller: 0x80d6f0f }
>   Aborted
>
>
>   it seems its because of exchange_fiber function content (doesn't crash
> if exchange_fiber() is empty). See attached file for lua code. Problem
> reproduced on ubuntu (salentos) 32 bit under vmware workstation 9.
>
>   function exchange_fiber(fixChan)
>     print("exchange_fiber");
>     while true do
>       local msg = fixChan:get();
>     end
>   end
>
>   function libfin_test()
>     local boxChan = box.ipc.channel();
>     local orderGen = box.fiber.create(ordergen_fiber);
>     local fc1 = LibFin.FixChannel:new(boxChan);
>     box.fiber.resume(orderGen, fc1);
>     local exchange = box.fiber.create(exchange_fiber);
>     local fc2 = LibFin.FixChannel:new(boxChan);
>     box.fiber.resume(exchange, fc2);
>   end
>
>   Version of tarantool is:
>
>   #define TC_VERSION_MAJOR "0"
>   #define TC_VERSION_MINOR "2"
>
>
>   full log
>
>   ubuntu@ubuntu:~/temp/tarantool-debug/src/box$ ./tarantool_box
>   2013-05-15 06:18:26.826 [7492] 1/sched I> space 0 successfully configured
>   2013-05-15 06:18:26.831 [7492] 1/sched I> recovery start
>   2013-05-15 06:18:26.831 [7492] 1/sched I> recover from
> `./00000000000000000001.snap'
>   2013-05-15 06:18:26.831 [7492] 1/sched I> snapshot recovered, confirmed
> lsn: 1
>   2013-05-15 06:18:26.831 [7492] 1/sched I> building secondary indexes
>   2013-05-15 06:18:26.832 [7492] 1/sched I> bound to port 33013
>   2013-05-15 06:18:26.833 [7492] 1/sched I> I am primary
>   2013-05-15 06:18:26.833 [7492] 1/sched I> bound to port 33014
>   2013-05-15 06:18:26.833 [7492] 1/sched I> bound to port 33015
>   2013-05-15 06:18:26.834 [7492] 101/init.lua I> loading ./init.lua
>   2013-05-15 06:18:26.834 [7492] 101/init.lua I> Hello from init.lua ver
> 0.1
>   2013-05-15 06:18:26.834 [7492] 101/init.lua I> Starting LibFin...
>   2013-05-15 06:18:26.834 [7492] 101/init.lua I> LibFin ver %s
> initialized0.112
>   2013-05-15 06:18:26.843 [7492] 1/sched C> log level 4
>   2013-05-15 06:18:26.843 [7492] 1/sched C> entering event loop
>   2013-05-15 06:18:26.845 [7492] 101/init.lua I> Connected to
> 192.168.136.18172
>   2013-05-15 06:18:26.868 [7492] 101/init.lua I> Line:BASEDIR
> S:/ubuntu/temp/tarantool-debug/src/box/
>
>   2013-05-15 06:18:26.871 [7492] 101/init.lua I> Line:DELB libfin.lua 79
>
>   2013-05-15 06:18:26.873 [7492] 101/init.lua I> Line:DELB libfin.lua 70
>
>   2013-05-15 06:18:26.967 [7492] 101/init.lua I> Line:SETB LibFin.lua 70
>
>   2013-05-15 06:18:27.073 [7492] 101/init.lua I> Line:SETB LibFin.lua 79
>
>   2013-05-15 06:18:27.187 [7492] 101/init.lua I> Line:LOAD 2259
>   LibFin.lua
>
>   2013-05-15 06:18:28.646 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:29.146 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:29.593 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:36.912 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:38.993 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:39.847 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:41.688 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:42.457 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:43.553 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:43.553 [7492] 102/lua I> ordergen_fiber
>   2013-05-15 06:18:44.465 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:44.895 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:45.790 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:46.243 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:46.756 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:47.267 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:48.815 [7492] 101/init.lua I> Line:RUN
>
>   2013-05-15 06:18:48.816 [7492] 103/lua I> exchange_fiber
>   Segmentation fault
>   Current time: 1368623928
>   Please file a bug at http://bugs.launchpad.net/tarantool
>   Attempting backtrace... Note: since the server has already crashed,
>   this may fail as well
>           - { frame: 0x13a5d0, caller: 0x8078fec }
>           - { frame: 0x13a680, caller: 0x80d400 }
>           - { frame: 0x13adf0, caller: 0x80b6844 }
>           - { frame: 0x13ae20, caller: 0x80b6d79 }
>           - { frame: 0x13ae60, caller: 0x80b708f }
>           - { frame: 0x13ae90, caller: 0x80b733d }
>           - { frame: 0x13aeb0, caller: 0x80a5a14 }
>           - { frame: 0x13aef0, caller: 0x80d6f0f }
>   Aborted
>   ubuntu@ubuntu:~/temp/tarantool-debug/src/box$
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/tarantool/+bug/1180389/+subscriptions
>

-- 
You received this bug notification because you are a member of Tarantool
Development Team, which is subscribed to tarantool.
https://bugs.launchpad.net/bugs/1180389

Title:
  sigsegv when using fibers from lua in
  _Unwind_RaiseException/err_raise_ext on 32bit ubuntu

Status in Tarantool - an efficient in-memory data store:
  New

Bug description:
  Segmentation fault
  Current time: 1368623928
  Please file a bug at http://bugs.launchpad.net/tarantool
  Attempting backtrace... Note: since the server has already crashed, 
  this may fail as well
          - { frame: 0x13a5d0, caller: 0x8078fec }
          - { frame: 0x13a680, caller: 0x80d400 }
          - { frame: 0x13adf0, caller: 0x80b6844 }
          - { frame: 0x13ae20, caller: 0x80b6d79 }
          - { frame: 0x13ae60, caller: 0x80b708f }
          - { frame: 0x13ae90, caller: 0x80b733d }
          - { frame: 0x13aeb0, caller: 0x80a5a14 }
          - { frame: 0x13aef0, caller: 0x80d6f0f }
  Aborted

  
  it seems its because of exchange_fiber function content (doesn't crash if 
exchange_fiber() is empty). See attached file for lua code. Problem reproduced 
on ubuntu (salentos) 32 bit under vmware workstation 9. 

  function exchange_fiber(fixChan)
    print("exchange_fiber");
    while true do
      local msg = fixChan:get();
    end
  end

  function libfin_test()
    local boxChan = box.ipc.channel();
    local orderGen = box.fiber.create(ordergen_fiber);
    local fc1 = LibFin.FixChannel:new(boxChan);
    box.fiber.resume(orderGen, fc1);
    local exchange = box.fiber.create(exchange_fiber);
    local fc2 = LibFin.FixChannel:new(boxChan);
    box.fiber.resume(exchange, fc2);
  end

  Version of tarantool is:

  #define TC_VERSION_MAJOR "0"
  #define TC_VERSION_MINOR "2"

  
  full log

  ubuntu@ubuntu:~/temp/tarantool-debug/src/box$ ./tarantool_box 
  2013-05-15 06:18:26.826 [7492] 1/sched I> space 0 successfully configured
  2013-05-15 06:18:26.831 [7492] 1/sched I> recovery start
  2013-05-15 06:18:26.831 [7492] 1/sched I> recover from 
`./00000000000000000001.snap'
  2013-05-15 06:18:26.831 [7492] 1/sched I> snapshot recovered, confirmed lsn: 1
  2013-05-15 06:18:26.831 [7492] 1/sched I> building secondary indexes
  2013-05-15 06:18:26.832 [7492] 1/sched I> bound to port 33013
  2013-05-15 06:18:26.833 [7492] 1/sched I> I am primary
  2013-05-15 06:18:26.833 [7492] 1/sched I> bound to port 33014
  2013-05-15 06:18:26.833 [7492] 1/sched I> bound to port 33015
  2013-05-15 06:18:26.834 [7492] 101/init.lua I> loading ./init.lua
  2013-05-15 06:18:26.834 [7492] 101/init.lua I> Hello from init.lua ver 0.1
  2013-05-15 06:18:26.834 [7492] 101/init.lua I> Starting LibFin...
  2013-05-15 06:18:26.834 [7492] 101/init.lua I> LibFin ver %s initialized0.112
  2013-05-15 06:18:26.843 [7492] 1/sched C> log level 4
  2013-05-15 06:18:26.843 [7492] 1/sched C> entering event loop
  2013-05-15 06:18:26.845 [7492] 101/init.lua I> Connected to 192.168.136.18172
  2013-05-15 06:18:26.868 [7492] 101/init.lua I> Line:BASEDIR 
S:/ubuntu/temp/tarantool-debug/src/box/

  2013-05-15 06:18:26.871 [7492] 101/init.lua I> Line:DELB libfin.lua 79

  2013-05-15 06:18:26.873 [7492] 101/init.lua I> Line:DELB libfin.lua 70

  2013-05-15 06:18:26.967 [7492] 101/init.lua I> Line:SETB LibFin.lua 70

  2013-05-15 06:18:27.073 [7492] 101/init.lua I> Line:SETB LibFin.lua 79

  2013-05-15 06:18:27.187 [7492] 101/init.lua I> Line:LOAD 2259
  LibFin.lua

  2013-05-15 06:18:28.646 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:29.146 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:29.593 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:36.912 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:38.993 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:39.847 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:41.688 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:42.457 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:43.553 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:43.553 [7492] 102/lua I> ordergen_fiber 
  2013-05-15 06:18:44.465 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:44.895 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:45.790 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:46.243 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:46.756 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:47.267 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:48.815 [7492] 101/init.lua I> Line:RUN

  2013-05-15 06:18:48.816 [7492] 103/lua I> exchange_fiber
  Segmentation fault
  Current time: 1368623928
  Please file a bug at http://bugs.launchpad.net/tarantool
  Attempting backtrace... Note: since the server has already crashed, 
  this may fail as well
          - { frame: 0x13a5d0, caller: 0x8078fec }
          - { frame: 0x13a680, caller: 0x80d400 }
          - { frame: 0x13adf0, caller: 0x80b6844 }
          - { frame: 0x13ae20, caller: 0x80b6d79 }
          - { frame: 0x13ae60, caller: 0x80b708f }
          - { frame: 0x13ae90, caller: 0x80b733d }
          - { frame: 0x13aeb0, caller: 0x80a5a14 }
          - { frame: 0x13aef0, caller: 0x80d6f0f }
  Aborted
  ubuntu@ubuntu:~/temp/tarantool-debug/src/box$

To manage notifications about this bug go to:
https://bugs.launchpad.net/tarantool/+bug/1180389/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to