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
--
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