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