Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по RusHub'у _ [FreeBsd]LuaPlugin

Автор: ShadoWx 15.8.2011, 13:44

Собрал хаб под фрибсд - Ок

Пытаюсь собирать луа плагин:

Код
/usr/bin/ld: cannot find -llua5.1
gmake: *** [debian] Error 1


но если в makefilе заменить:
Код
debian: $(OBJS)
    $(CXX) -llua5.1 -shared -fpic -lrt -o lua.so $(OBJS) $(CURDIR)/tinyxml/tinyxml.a

на
Код
debian: $(OBJS)
    $(CXX) -I/usr/local/include/lua51 -shared -fpic -lrt -o lua.so $(OBJS) $(CURDIR)/tinyxml/tinyxml.a


все соберется ... но я не могу найти файлик lua.so чтобы поместить его в папку с русхабом .....

подскажите пожалуйста.

P.S. Форум как то странно работает, отображает сиволы интересно=)

Автор: Saymon21 15.8.2011, 14:13

Код
freebsd: $(OBJS)
    $(CXX) -shared -fpic -lrt -o lua.so $(OBJS) $(CURDIR)/tinyxml/tinyxml.a /usr/local/lib/liblua.a

как-то так мб

Автор: ShadoWx 15.8.2011, 14:24

я е наблюдаю после компиляции lua.so, Денис ....

Автор: Saymon21 15.8.2011, 14:32

Эм... Когда-то это у нас проканало.
Вобщем нет у меня щас фряхи под рукой, точнее сказать не могу, сорри.
Мб кто-то из фрибздшников позже аукнется да скажет... Ну или маринер.

Автор: mariner 15.8.2011, 15:22

дык это. Собирать gmake freebsd надо, а не просто gmake
Как то так. Тестил на 8ой фре на виртуалке

Автор: ShadoWx 15.8.2011, 16:13

маринер, вот скажи мне куда после сборки кладется файлик lua.so
я пробовал по разному ..ну нет этого файлика в папке после компиляции..

Автор: mariner 15.8.2011, 16:22

он должен в ней являться
если нет его - то это магия

Автор: ShadoWx 15.8.2011, 17:59

значит магия, ни ошибок, ни файла ...

Автор: mariner 15.8.2011, 19:39

лог сборки сюда

Автор: ShadoWx 15.8.2011, 19:45

Код
[root@godc /usr/rushub/lua_src]gmake freebsd
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/api.o /usr/rushub/lua_src/api.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/Dir.o /usr/rushub/lua_src/Dir.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/HubConfig.o /usr/rushub/lua_src/HubConfig.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/LuaInterpreter.o /usr/rushub/lua_src/LuaInterpreter.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/LuaPlugin.o /usr/rushub/lua_src/LuaPlugin.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/LuaUtils.o /usr/rushub/lua_src/LuaUtils.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/TaskList.o /usr/rushub/lua_src/TaskList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/TimerList.o /usr/rushub/lua_src/TimerList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/rushub/lua_src/Uid.o /usr/rushub/lua_src/Uid.cpp
g++ -shared -fpic -lrt -o lua.so /usr/rushub/lua_src/api.o /usr/rushub/lua_src/Dir.o /usr/rushub/lua_src/HubConfig.o /usr/rushub/lua_src/LuaInterpreter.o /usr/rushub/lua_src/LuaPlugin.o /usr/rushub/lua_src/LuaUtils.o /usr/rushub/lua_src/TaskList.o /usr/rushub/lua_src/TimerList.o /usr/rushub/lua_src/Uid.o /usr/rushub/lua_src/tinyxml/tinyxml.a /usr/local/lib/liblua.a
[root@godc /usr/rushub/lua_src]#

Автор: ShadoWx 16.8.2011, 13:45

напишу в этой теме:
стартую русхаб в ответ подобное:

Код
NMDC Server RusHub 2.3.6 is running on [0.0.0.0]:4111 TCP
Segmentation fault (core dumped)


вот дамп что он создал: http://mydc.ru/r/?http://zalil.ru/31562488

Автор: Setuper 16.8.2011, 17:06

gdb -c core
(gdb)bt

Автор: ShadoWx 16.8.2011, 19:48

Код
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
Core was generated by `RusHub'.
Program terminated with signal 11, Segmentation fault.
#0  0x282c1527 in ?? ()
(gdb) bt
#0  0x282c1527 in ?? ()
#1  0x00000430 in ?? ()
#2  0x28320b58 in ?? ()
#3  0x282c151b in ?? ()
#4  0xbfbfd9d8 in ?? ()
#5  0xbfbfdae4 in ?? ()
#6  0x28470200 in ?? ()
#7  0xbfbfd918 in ?? ()
#8  0x08058bb2 in ?? ()
#9  0x00000000 in ?? ()
#10 0x00000003 in ?? ()
#11 0x00000000 in ?? ()
#12 0xbfbfd9d8 in ?? ()
#13 0xbfbfdae4 in ?? ()
#14 0x28466300 in ?? ()
#15 0xbfbfd928 in ?? ()
#16 0x08058ca4 in ?? ()
#17 0x28470200 in ?? ()
#18 0x00000005 in ?? ()
#19 0xbfbfd9e8 in ?? ()
#20 0x0805aee6 in ?? ()
#21 0x28402fa0 in ?? ()
#22 0xbfbfd9d8 in ?? ()
---Type <return> to continue, or q

Автор: Setuper 16.8.2011, 20:06

В дебаге собери и проделай тоже самое

Код
CXXFLAGS = -g -Wall -Wextra -pipe

Автор: ShadoWx 17.8.2011, 0:33

пожалуйста

Код
Program terminated with signal 11, Segmentation fault.
#0  0x282c3527 in ?? ()
(gdb) bt
#0  0x282c3527 in ?? ()
#1  0x000004a0 in ?? ()
#2  0x28322b58 in ?? ()
#3  0x282c351b in ?? ()
#4  0x00000000 in ?? ()
#5  0x00000000 in ?? ()
#6  0x00000000 in ?? ()
#7  0xbfbfd878 in ?? ()
#8  0x0805c5a7 in ?? ()
#9  0x00000000 in ?? ()
#10 0x00000003 in ?? ()
#11 0x284663f0 in ?? ()
#12 0x014663ec in ?? ()
#13 0x00000000 in ?? ()
#14 0x00000000 in ?? ()
#15 0xbfbfd888 in ?? ()
#16 0x0805c5d3 in ?? ()
#17 0x28470200 in ?? ()
#18 0x00000000 in ?? ()
#19 0xbfbfd8c8 in ?? ()
#20 0x080717e3 in ?? ()
---Type <return> to continue, or q <return> to quit---


интересный факт:
Код
[root@godc /usr/rhub/bin]#./RusHub
NMDC Server RusHub 2.3.6 is running on [localhost]:4111 TCP -- запустилось


Цитата
NMDC Server RusHub 2.3.6 is running on [0.0.0.0]:4111 TCP
Segmentation fault (core dumped) - нет


могу предоставить ссш для помощи ... хаб уже 3 сутки простаивает, помогите пожалуйста
P.S. lua.so успешно собралась =) ..но вот хаб не радует ...

Автор: Setuper 17.8.2011, 10:03

Мда... Символы не подключились. Можешь запустить из-под gdb debug версию?
И лог бы посмотреть.

Автор: ShadoWx 17.8.2011, 10:40

если не ошибаюсь:

Код
Reading symbols from ./RusHub...done.
(gdb) backtrace
#0  0x282bf527 in ?? ()
#1  0x000004a0 in ?? ()
#2  0x2831eb58 in ?? ()
#3  0x282bf51b in ?? ()
#4  0x00000000 in ?? ()
#5  0x00000000 in ?? ()
#6  0x00000000 in ?? ()
#7  0xbfbfd858 in ?? ()
#8  0x0805c5a7 in server::Conn::close (this=0x0) at /usr/rhub/src/Conn.cpp:400
Previous frame identical to this frame (corrupt stack?)

----
Core was generated by `RusHub'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/local/lib/gcc44/libstdc++.so.6...done.
Loaded symbols for /usr/local/lib/gcc44/libstdc++.so.6
Reading symbols from /lib/libm.so.5...done.
Loaded symbols for /lib/libm.so.5
Reading symbols from /usr/local/lib/gcc44/libgcc_s.so.1...done.
Loaded symbols for /usr/local/lib/gcc44/libgcc_s.so.1
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from ./plugins/lua.so...done.
Loaded symbols for ./plugins/lua.so
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x282bf527 in freeaddrinfo () from /lib/libc.so.7
(gdb)

---

#0  0x282bf527 in freeaddrinfo () from /lib/libc.so.7
#1  0x0805c5a7 in server::Conn::close (this=0x28473200) at /usr/rhub/src/Conn.cpp:400
#2  0x0805c5d3 in server::ConnFactory::deleteConn (this=0x2843e190, conn=@0xbfbfd95c)
    at /usr/rhub/src/Conn.cpp:1207
#3  0x080717e3 in dcserver::DcConnFactory::deleteConn (this=0x2843e190, conn=@0xbfbfd95c)
    at /usr/rhub/src/DcConn.cpp:276
#4  0x0805e07d in server::Conn::createNewConn (this=0x28470300) at /usr/rhub/src/Conn.cpp:499
#5  0x080a1b4b in server::Server::newAccept (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:460
#6  0x080a20b2 in server::Server::step (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:341
#7  0x080a29e2 in server::Server::run (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:234
#8  0x0808b7fd in runHub (argc=1, argv=0xbfbfec58, isService=false)
    at /usr/rhub/src/main.cpp:133
#9  0x0808b9a9 in main (argc=1, argv=0xbfbfec58) at /usr/rhub/src/main.cpp:159

Автор: Setuper 17.8.2011, 14:03

Исправил этот баг.
Обновись с svn и попробуй.

Автор: ShadoWx 17.8.2011, 15:13

Цитата(Setuper @ 17.8.2011, 15:03) *
Исправил этот баг.
Обновись с svn и попробуй.


теперь все прекрасно запускается. surrender.gif

Автор: Setuper 17.8.2011, 15:45

Падение происходило не при запуске хаба, а при коннекте очередного клиента.
Этот баг проявлялся только на bsd. Видимо в bsd системах, в отличие от windows и linux, функция freeaddrinfo не проверяет переданный ей указатель на значение NULL.
Хотя это правильно, ибо по спеке undefined behavior big_smile.gif

Автор: mariner 17.8.2011, 17:40

я вот читаю и удивляюсь. Почему ты, Илья, до сих пор не используешь фреймворки типо буста. Там это же уже учтено.

Автор: ShadoWx 17.8.2011, 18:02

на FReeBSD я новичок ..и вот возник такой вопрос:

имеется инит-скрипт, я его выкладывал в форуме:

Код
#!/bin/sh

### BEGIN INIT INFO
# Provides:          rushub
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by rushub.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin:/usr/sbin

NAME="RusHub"
PATH_DAEMON="/usr/rhub/rhub_bin"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"

ARGS="-c $PATH_DAEMON_CFG"

USER="godc"

start() {
    echo -n "Запуск $NAME: "
    start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
    echo "готово."
}
stop() {
    echo -n "Остановка $NAME: "
    start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
    rm "$PIDF"
    echo "готово."
}
restart() {
    stop
    sleep 2
    start
}

if [ ! -x "$DAEMON" ]
then
   echo "отсутствует файл для запуска $DAEMON"
   exit 0
fi

case "$1" in
    start)
        start
   ;;
    stop)
        stop
   ;;
    restart)
        restart
   ;;
    status)
        if [ -f "$PIDF" ];
        then
            PID=$(cat $PIDF)
            if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
            then
                echo "процесс $NAME работает [pid: $PID]."
                exit 0
            fi
            echo "процесс $NAME не запущен."
            exit 3
        fi
        echo "процесс $NAME не запущен."
        exit 3
   ;;
    *)
        echo "Использование {start|status|stop|restart}"
        exit 1
   ;;
esac
exit 0


пытаюсь запускать ложу его в /etc/rc.d/rusub
в ответ это:
Код
start-stop-daemon: not found


так вот как это поправить и есть ли аналог этого ?

Автор: mariner 17.8.2011, 18:42

нету. Да и не нужен этот ваш костыль. Русхаб сам умеет демонизороваться

И да, ты же инит писал для убанты. А чо не через апстарт, а костылем?

Автор: ShadoWx 17.8.2011, 20:19

1 что попалось, с того и написал =) baffle.gif