Summary: | Ошибка при работе luaplugin 5.1 и liblua 5.1 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | ahtoh <ahtoh> |
Component: | verlihub-plugins | Assignee: | Ivan Zakharyaschev <imz> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | barabashka, evg, imz, vvk |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 18557 | ||
Bug Blocks: |
Description
ahtoh
2008-06-23 18:47:59 MSD
В Сизиф отправлен verlihub-plugins-lua51-1.6-alt1.src.rpm Тут более новая версия плагина с сайта. Ничего не изменилось. Тоже самое. Можно увидеть $ rpm -qa | grep verlihub и $ rpm -q liblua ? [ahtoh@hub ~]$ rpm -qa | grep verlihub verlihub-0.9.8d-alt1 libverlihub-devel-0.9.8d-alt1 verlihub-plugin-python-1.1-alt1 verlihub-plugins-lua51-1.6-alt1 libverlihub-0.9.8d-alt1 verlihub-plugins-0.1-alt1 [ahtoh@hub lib]$ rpm -q liblua5.1 liblua5.1-5.1.3-alt1 Попробуй с verlihub-plugins-0.1-alt2 К сожалению тоже самое... #15 0x0077f2f1 in lua_insert () from /usr/lib/liblua-5.1.so.0 Я так понимаю, всё начинается с вызова CallFunction: bool cLuaInterpreter::CallFunction(char * func, char * args[]) { lua_settop(mL, 0); int base = lua_gettop(mL); lua_pushliteral(mL, "_TRACEBACK"); lua_rawget(mL, LUA_GLOBALSINDEX); lua_insert(mL, base); Из реализации docall в самом liblua кажется, что base в нашем случае содержит неверное значение. static int docall (lua_State *L, int narg, int clear) { int status; int base = lua_gettop(L) - narg; /* function index */ lua_pushcfunction(L, traceback); /* push traceback function */ lua_insert(L, base); /* put it under chunk and args */ signal(SIGINT, laction); status = lua_pcall(L, narg, (clear ? 0 : LUA_MULTRET), base); В итоге где проблема? Я думаю что проблема в verlihub-plugins-lua51 или его совместимости с liblua. Похоже, та же проблема и с awesome: падает с аналогичной диагностикой при невыясненных условиях. Ругань сейчас не приведу - .xsession-errors* стираются при startx, но, полагаю, через минуток 10-20 оно снова благополучно упадёт. awesome: lapi.c:573: lua_rawgeti: Assertion `L->top < L->ci->top' failed. - мозможно, не единственный вариант. Вроде и с index2adr было... В общем, это скорее проблема в liblua. Откат конфига awesome на версию по умолчанию останавливает падения. Т.е., возможно некорректный lua-код приводит к проблемам с выделением памяти в луа (почитал код, так понимаю он как раз ответственен на подсчет ссылок на объекты в памяти). (В ответ на комментарий №12) > В общем, это скорее проблема в liblua. Откат конфига awesome на версию по > умолчанию останавливает падения. Т.е., возможно некорректный lua-код приводит к > проблемам с выделением памяти в луа (почитал код, так понимаю он как раз > ответственен на подсчет ссылок на объекты в памяти). Обновил версию до 5.1.4. git.altlinux.org/people/barabashka/packages/lua5.git (В ответ на комментарий №13) > (В ответ на комментарий №12) > > В общем, это скорее проблема в liblua. Откат конфига awesome на версию по > > умолчанию останавливает падения. Т.е., возможно некорректный lua-код приводит к > > проблемам с выделением памяти в луа (почитал код, так понимаю он как раз > > ответственен на подсчет ссылок на объекты в памяти). > > Обновил версию до 5.1.4. > > git.altlinux.org/people/barabashka/packages/lua5.git Падает awesome с таким криком awesome: lapi.c:432: lua_pushnumber: Assertion `L->top < L->ci->top' failed. |