Возникает след. Assertion библиотеки liblua verlihub: lapi.c:57: index2adr: Assertion `idx != 0 && -idx <= L->top - L->base' failed. Aborted Возникает при попытке загрузить скрипт на lua, любой скрипт _даже не существующий_, т.е. ошибка возникает при выполнении команды !luaload script_name При общении с разработчиками пока ничего не ясно. Никогда подобной проблемы не встречали. Думают, что проблема в компиляции. т.е. у них почему-то всё работает.
В Сизиф отправлен 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.