Keen Posted October 3, 2008 Posted October 3, 2008 Перекомпил все с помощью devbuild localhost sbin # gdb ./stargazer GNU gdb 6.8 Copyright © 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) core-file /root/core.9132 Cannot access memory at address 0xb7f8a648 (gdb) bt #0 0xb7f1c100 in ?? () Cannot access memory at address 0xb5b94c7c (gdb)
madf Posted October 3, 2008 Posted October 3, 2008 Хм, чудеса... Тогда нужно запускать прямо из-под gdb и смотреть что происходит при падении. Можно еще прогнать под valgrind. 1. Запуск под gdb. - собрать в отладочном режиме (уже); - экспортнуть LD_LIBRARY_PATH=../../lib; - указать путь к модулям ./modules; - # gdb ./stargazer; - (gdb) r <путь_к_каталогу_с_конфигом>; - как грохнется - сделать bt и показать мне. 2. Запуск под valgrind. - собрать в отладочном режиме (уже); - экспортнуть LD_LIBRARY_PATH=../../lib; - указать путь к модулям ./modules; - # valgrind ./stargazer <путь_к_каталогу_с_конфигом>; - как грохнется - показать консольный вывод.
Dimension Posted October 5, 2008 Author Posted October 5, 2008 Скрипт по рестарту работает... а Вылеты случаются с разной периодичностью... вот за последние 3 дня 2 вылета...
madf Posted October 6, 2008 Posted October 6, 2008 Скрипт по рестарту работает... а Вылеты случаются с разной периодичностью... вот за последние 3 дня 2 вылета... Ну вот надо-бы разобраться, почему вылетает. У себя я воспроизвести это не могу...
Keen Posted October 6, 2008 Posted October 6, 2008 Все ли правильно сделал? localhost ~ # gdb stargazer; GNU gdb 6.8 Copyright © 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) r /etc/stargazer/ Starting program: /usr/sbin/stargazer /etc/stargazer/ [Thread debugging using libthread_db enabled] [New Thread 0xb7cbc6d0 (LWP 22577)] [New Thread 0xb7cbbb90 (LWP 22581)] stg_timer.cpp > 02:07:12 > STG_TIMER started. Time: 1223334432 file_store.cpp > 02:07:12 > FILES_STORE_SETTINGS::ParseSettings file_store.cpp > 02:07:12 > workDir = /var/stargazer main.cpp > 02:07:12 > Module: /usr/lib/stg/mod_auth_ao.so main.cpp > 02:07:12 > Module: /usr/lib/stg/mod_auth_ia.so main.cpp > 02:07:12 > Module: /usr/lib/stg/mod_conf_sg.so main.cpp > 02:07:12 > Module: /usr/lib/stg/mod_cap_ether.so main.cpp > 02:07:12 > Module: /usr/lib/stg/mod_ping.so ao.cpp > 02:07:12 > constructor AO_CREATOR plugin_runner.cpp > 02:07:12 > Plugin Always Online authorizator v.1.0 parsesettings inetaccess.cpp > 02:07:12 > new AUTH_IA inetaccess.cpp > 02:07:12 > sizeof(CONN_SYN_6) = 96 96 inetaccess.cpp > 02:07:12 > sizeof(CONN_SYN_8) = 96 96 inetaccess.cpp > 02:07:12 > sizeof(CONN_SYN_ACK_6) = 192 192 inetaccess.cpp > 02:07:12 > sizeof(CONN_SYN_ACK_8) = 200 200 inetaccess.cpp > 02:07:12 > sizeof(CONN_ACK_6) = 64 64 inetaccess.cpp > 02:07:12 > sizeof(ALIVE_SYN_6) = 368 368 inetaccess.cpp > 02:07:12 > sizeof(ALIVE_SYN_8) = 384 384 inetaccess.cpp > 02:07:12 > sizeof(ALIVE_ACK_6) = 64 64 inetaccess.cpp > 02:07:12 > sizeof(DISCONN_SYN_6) = 96 96 inetaccess.cpp > 02:07:12 > sizeof(DISCONN_SYN_ACK_6) = 24 24 inetaccess.cpp > 02:07:12 > sizeof(DISCONN_SYN_ACK_8) = 32 32 inetaccess.cpp > 02:07:12 > sizeof(DISCONN_ACK_6) = 64 64 inetaccess.cpp > 02:07:12 > sizeof(FIN_6) = 24 24 inetaccess.cpp > 02:07:12 > sizeof(FIN_8) = 32 32 inetaccess.cpp > 02:07:12 > sizeof(ERR) = 256 256 inetaccess.cpp > 02:07:12 > sizeof(INFO_6) = 256 256 inetaccess.cpp > 02:07:12 > sizeof(INFO_7) = 272 272 inetaccess.cpp > 02:07:12 > sizeof(INFO_8) = 1068 1072 plugin_runner.cpp > 02:07:12 > Plugin InetAccess authorizator v.1.2 parsesettings inetaccess.cpp > 02:07:12 > AUTH_IA_SETTINGS::ParseSettings s.moduleParams.size=4 stgconfig.cpp > 02:07:12 > new AUTH_IA parser.cpp > 02:07:12 > PARSER_CHG_USER::Reset() plugin_runner.cpp > 02:07:12 > Plugin Stg configurator v.0.07 parsesettings ether_cap.cpp > 02:07:12 > constructor ETHER_CAP_CREATOR plugin_runner.cpp > 02:07:12 > Plugin Ether_cap v.1.0 parsesettings ping.cpp > 02:07:12 > constructor PING_CREATOR plugin_runner.cpp > 02:07:12 > Plugin Pinger v.1.01 parsesettings [New Thread 0xb7396b90 (LWP 22582)] users.cpp > 02:07:12 > =====================| pid: 22577 |===================== users.cpp > 02:07:12 > Day = 7 Min = 7 users.cpp > 02:07:12 > Monitor=0 file USERS /users_r traffcounter.cpp > 02:07:12 > TRAFFCOUNTER::Start() [New Thread 0xb69ffb90 (LWP 22583)] ether_cap.cpp > 02:07:12 > ETHER_CAP::Start() [New Thread 0xb61feb90 (LWP 22584)] inetaccess.cpp > 02:07:12 > AUTH_IA::Start() traffcounter.cpp > 02:07:13 > FlushAndRemove() packets: 0(rem 0) ip2packets: 0(rem 0) [Thread 0xb69ffb90 (LWP 22583) exited] traffcounter.cpp > 02:07:13 > TRAFFCOUNTER::Stop() users.cpp > 02:07:13 > USERS::Stop() users.cpp > 02:07:13 > RealDelUser() users to del: 0 [Thread 0xb7396b90 (LWP 22582) exited] users.cpp > 02:07:13 > Brfore USERS::Run() ether_cap.cpp > 02:07:14 > =====================| pid: 22577 |===================== users.cpp > 02:07:18 > USERS::Stop() main.cpp > 02:07:19 > KillExecuters pid=22580 [Thread 0xb7cbbb90 (LWP 22581) exited] stgconfig.cpp > 02:07:20 > destructor STGCONFIG_CREATOR ping.cpp > 02:07:20 > destructor PING_CREATOR inetaccess.cpp > 02:07:20 > destructor IA_CREATOR ether_cap.cpp > 02:07:20 > destructor ETHER_CAP_CREATOR ao.cpp > 02:07:20 > destructor AO_CREATOR Program received signal SIGSEGV, Segmentation fault. [switching to Thread 0xb61feb90 (LWP 22584)] 0xb73becd8 in ?? () (gdb) bt #0 0xb73becd8 in ?? () #1 0x00000006 in ?? () #2 0xb61fe33a in ?? () #3 0x00000052 in ?? () #4 0x00000000 in ?? () Походу это был глюк, с тем что одновременно стартануло два stargazer'а. Щаз в скринах еще раз через gdb запустил, пока вроде работает..... Ждем падения
Keen Posted October 7, 2008 Posted October 7, 2008 вот и падение. localhost ~ # screen -r inetaccess.cpp > 20:08:27 > User serhio FOUND! inetaccess.cpp > 20:08:27 > ======================> InitEncrypt dont needed inetaccess.cpp > 20:08:27 > Monitor time 1223397732 1223399367 inetaccess.cpp > 20:08:27 > Min8(sizeof(ALIVE_SYN)) = 368 inetaccess.cpp > 20:08:27 > 1223399316.366137 368 bytes sent to 194.169.205.12:5555 len=368 inetaccess.cpp > 20:08:27 > recv from 192.168.1.225 5555 len=64 inetaccess.cpp > 20:08:27 > User Fearless FOUND! inetaccess.cpp > 20:08:27 > ======================> InitEncrypt dont needed inetaccess.cpp > 20:08:27 > Monitor time 1223397732 1223399367 inetaccess.cpp > 20:08:27 > recv from 192.168.1.225 5555 len=64 inetaccess.cpp > 20:08:27 > User Fearless FOUND! inetaccess.cpp > 20:08:27 > ======================> InitEncrypt dont needed inetaccess.cpp > 20:08:27 > Send_FIN_8 users.cpp > 20:08:27 > Del IP Idx traffcounter.cpp > 20:08:27 > DelUser: Fearless Program received signal SIGSEGV, Segmentation fault. [switching to Thread 0xb59feb90 (LWP 1038)] 0xb7ef4100 in pthread_mutex_lock () from ../../lib/libpthread.so.0 (gdb) bt #0 0xb7ef4100 in pthread_mutex_lock () from ../../lib/libpthread.so.0 #1 0x080921b7 in STG_LOCKER (this=0xb59fdd3c, m=0x1f54, __file__=0x80d589a "user.cpp", __line__=884) at /root/stg-2.405.9.8/projects/stargazer/../../include/stg_locker.h:59 #2 0x080ac432 in USER::AddTraffStatU (this=0x8, dir=1, ip=3843359321, port=443, len=48) at user.cpp:884 #3 0x080a4873 in TRAFFCOUNTER::DelUser (this=0x80f01a0, user= {_M_node = 0x83aade0}) at traffcounter.cpp:616 #4 0x08096a9f in TRF_IP_BEFORE::Notify (this=0x856ff40, oldValue=@0xb59fdf28, newValue=@0xb59fdf70) at traffcounter.h:244 #5 0x080badb4 in USER_PROPERTY<unsigned int>::operator= (this=0x83abfac, newValue=@0xb59fdf70) at user_property.h:211 #6 0x080ab985 in USER::Unauthorize (this=0x83aade8, auth=0x80f0d80) at user.cpp:574 #7 0xb73f96d4 in AUTH_IA::Send_FIN_8 (this=0x80f0d80, iaUser=0xb187b5b4, sip=3774982336, it={_M_node = 0xb187b5a0}) at inetaccess.cpp:1797 #8 0xb73fc90a in AUTH_IA::PacketProcessor (this=0x80f0d80, buff=0xb59fe1c4 "@", dataLen=64, sip=3774982336, sport=5555, protoVer=8, user=0xb59fe138) at inetaccess.cpp:1106 #9 0xb73fd40a in AUTH_IA::RecvData (this=0x80f0d80, buffer=0xb59fe19c "00100", bufferSize=512) at inetaccess.cpp:687 #10 0xb73fda68 in AUTH_IA::Run (d=0x80f0d80) at inetaccess.cpp:520 #11 0xb7ef2047 in start_thread () from ../../lib/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- #12 0xb7d64d1e in clone () from ../../lib/libc.so.6
madf Posted October 9, 2008 Posted October 9, 2008 Даже не знаю что тебе сказать... Советую прогнать под valgraind. К стати, это оригинальная версия stg или накладывались какие-нибуть патчи? Какие модули используются? Сколько пользователей online?
Keen Posted October 9, 2008 Posted October 9, 2008 оригинальная 2.405, скомпиленная 3го числа. модули 2008-10-09 00:10:01 -- Stg v. Stg 2.404 2008-10-09 00:10:01 -- Message queue created successfully. msgKey=5555 msgID=196608 2008-10-09 00:10:01 -- Timer thread started successfully. 2008-10-09 00:10:01 -- Storage plugin: file_store v.1.02. Loading successfull. 2008-10-09 00:10:01 -- Users started successfully. 2008-10-09 00:10:01 -- Traffcounter started successfully. 2008-10-09 00:10:01 -- Module: 'Ether_cap v.1.0'. Start successfull. 10 2008-10-09 00:10:01 -- Module: 'InetAccess authorizator v.1.2'. Start successfull. 50 2008-10-09 00:10:01 -- Module: 'Always Online authorizator v.1.0'. Start successfull. 70 2008-10-09 00:10:01 -- Module: 'Pinger v.1.01'. Start successfull. 100 2008-10-09 00:10:01 -- Module: 'Stg configurator v.0.07'. Start successfull. 220 2008-10-09 00:10:01 -- Stg started successfully. 2008-10-09 00:10:01 -- +++++++++++++++++++++++++++++++++++++++++++++ Падает раз в 2-48 часов. Пользователей 250-500, значения не имеет. Временами падает и при 30........... Под valgraind дебаг будет в течении суток-двое......
Dimension Posted October 11, 2008 Author Posted October 11, 2008 Закономерности в падении не вижу никакой. Колличество юзеров разное и время тоже. Вот мои вылеты начиная с 15 сентября: Wed Sep 17 08:30:01 EEST 2008 Thu Oct 2 16:40:01 EEST 2008 Fri Oct 3 20:50:01 EEST 2008 Mon Oct 6 09:20:01 EEST 2008 Tue Oct 7 16:00:01 EEST 2008
Kucher2 Posted October 11, 2008 Posted October 11, 2008 У меня СТГ начал вылетать из процессов совсем недавно. До этого небыло ни одного случая. Периодичность 1-3 дня. При этом на сервере ничего не менялось, за исключением увеличения кол-ва пользователей на 10 - с 50 до 60 (добавил юзверей через виндовый конфигуратор со своей машины), из которых активных сейчас - человек 8. Спасаюсь скриптами.
gall Posted October 11, 2008 Posted October 11, 2008 У меня СТГ начал вылетать из процессов совсем недавно. До этого небыло ни одного случая.Периодичность 1-3 дня. При этом на сервере ничего не менялось, за исключением увеличения кол-ва пользователей на 10 - с 50 до 60 (добавил юзверей через виндовый конфигуратор со своей машины), из которых активных сейчас - человек 8. Спасаюсь скриптами. В чем база? Отключена ли детальная статистика?
Kucher2 Posted October 13, 2008 Posted October 13, 2008 База ни к чему не прикручена. Если речь идёт о директориях "detail_stat" юзверей и о тамошних записях, то детальная статистика функционирует. Могу вырубить. За несколько лет работы она ни разу не пригодилась. В конце концов - есть Squid.
madf Posted October 13, 2008 Posted October 13, 2008 Я думаю, человек спрашивал о том, на чем база организована: на файлах, firebird или mysql?
madf Posted October 13, 2008 Posted October 13, 2008 Закономерности в падении не вижу никакой. Колличество юзеров разное и время тоже. Вот мои вылеты начиная с 15 сентября: Wed Sep 17 08:30:01 EEST 2008 Thu Oct 2 16:40:01 EEST 2008 Fri Oct 3 20:50:01 EEST 2008 Mon Oct 6 09:20:01 EEST 2008 Tue Oct 7 16:00:01 EEST 2008 А я вижу закономерность Падает когда наступает новая минута.
Kucher2 Posted October 13, 2008 Posted October 13, 2008 Я думаю, человек спрашивал о том, на чем база организована: на файлах, firebird или mysql? Я ж говорю, ни к чему не прикручена, т.е. в файлах. FreeBSD 6.2, СТГ 2.4.01.
Keen Posted October 13, 2008 Posted October 13, 2008 inetaccess.cpp > 23:42:49 > User c06r1t0 FOUND! inetaccess.cpp > 23:42:49 > ======================> InitEncrypt dont needed inetaccess.cpp > 23:42:49 > Send_FIN_8 users.cpp > 23:42:49 > Del IP Idx traffcounter.cpp > 23:42:49 > DelUser: c06r1t0 ==2966== ==2966== Thread 6: ==2966== Invalid read of size 4 ==2966== at 0x4070100: pthread_mutex_lock (in /lib/libpthread-2.7.so) ==2966== by 0x80921B6: STG_LOCKER::STG_LOCKER(pthread_mutex_t*, char const*, int) (stg_locker.h:59) ==2966== by 0x80AC431: USER::AddTraffStatU(int, unsigned, unsigned short, unsigned) (user.cpp:884) ==2966== by 0x80A4872: TRAFFCOUNTER::DelUser(std::_List_iterator<USER>) (traffcounter.cpp:616) ==2966== by 0x8096A9E: TRF_IP_BEFORE::Notify(unsigned const&, unsigned const&) (traffcounter.h:244) ==2966== by 0x80BADB3: USER_PROPERTY<unsigned>::operator=(unsigned const&) (user_property.h:211) ==2966== by 0x80AB984: USER::Unauthorize(BASE_AUTH const*) (user.cpp:574) ==2966== by 0x4F756D3: AUTH_IA::Send_FIN_8(IA_USER*, unsigned, std::_Rb_tree_iterator<std::pair<unsigned const, IA_USER> >) (inetaccess.cpp:1797) ==2966== by 0x4F78909: AUTH_IA::PacketProcessor(char*, int, unsigned, unsigned short, int, std::_List_iterator<USER>*) (inetaccess.cpp:1106) ==2966== by 0x4F79409: AUTH_IA::RecvData(char*, int) (inetaccess.cpp:687) ==2966== by 0x4F79A67: AUTH_IA::Run(void*) (inetaccess.cpp:520) ==2966== by 0x406E046: start_thread (in /lib/libpthread-2.7.so) ==2966== Address 0x1f60 is not stack'd, malloc'd or (recently) free'd ==2966== ==2966== Process terminating with default action of signal 11 (SIGSEGV) ==2966== Access not within mapped region at address 0x1F60 ==2966== at 0x4070100: pthread_mutex_lock (in /lib/libpthread-2.7.so) ==2966== by 0x80921B6: STG_LOCKER::STG_LOCKER(pthread_mutex_t*, char const*, int) (stg_locker.h:59) ==2966== by 0x80AC431: USER::AddTraffStatU(int, unsigned, unsigned short, unsigned) (user.cpp:884) ==2966== by 0x80A4872: TRAFFCOUNTER::DelUser(std::_List_iterator<USER>) (traffcounter.cpp:616) ==2966== by 0x8096A9E: TRF_IP_BEFORE::Notify(unsigned const&, unsigned const&) (traffcounter.h:244) ==2966== by 0x80BADB3: USER_PROPERTY<unsigned>::operator=(unsigned const&) (user_property.h:211) ==2966== by 0x80AB984: USER::Unauthorize(BASE_AUTH const*) (user.cpp:574) ==2966== by 0x4F756D3: AUTH_IA::Send_FIN_8(IA_USER*, unsigned, std::_Rb_tree_iterator<std::pair<unsigned const, IA_USER> >) (inetaccess.cpp:1797) ==2966== by 0x4F78909: AUTH_IA::PacketProcessor(char*, int, unsigned, unsigned short, int, std::_List_iterator<USER>*) (inetaccess.cpp:1106) ==2966== by 0x4F79409: AUTH_IA::RecvData(char*, int) (inetaccess.cpp:687) ==2966== by 0x4F79A67: AUTH_IA::Run(void*) (inetaccess.cpp:520) ==2966== by 0x406E046: start_thread (in /lib/libpthread-2.7.so) ==2966== ==2966== ERROR SUMMARY: 14928 errors from 4 contexts (suppressed: 75 from 2) ==2966== malloc/free: in use at exit: 8,323,063 bytes in 86,740 blocks. ==2966== malloc/free: 176,856,718 allocs, 176,769,978 frees, 38,155,713,032 bytes allocated. ==2966== For counts of detected errors, rerun with: -v ==2966== searching for pointers to 86,740 not-freed blocks. ==2966== checked 91,247,912 bytes. ==2966== ==2966== LEAK SUMMARY: ==2966== definitely lost: 312 bytes in 22 blocks. ==2966== possibly lost: 496,155 bytes in 25,644 blocks. ==2966== still reachable: 7,826,596 bytes in 61,074 blocks. ==2966== suppressed: 0 bytes in 0 blocks. ==2966== Rerun with --leak-check=full to see details of leaked memory. Killed
Keen Posted October 14, 2008 Posted October 14, 2008 valgrind был запущен в скринах, это все что было на консоле во время падения. Мож с какими-то ключами запуститьь?
madf Posted October 14, 2008 Posted October 14, 2008 Нет, может он раньше еще ругался. Можно было лог в файл перенаправить и потом отгрепать
Dimension Posted October 15, 2008 Author Posted October 15, 2008 А я вижу закономерность Падает когда наступает новая минута. Точно! Вот еще одно падение: Wed Oct 15 10:10:01 EEST 2008 Кстати вчера был вылет и скрипт почемуто не смог перезапустить стг... хотя как правило он его нормально перезапускает...
Kucher2 Posted October 15, 2008 Posted October 15, 2008 Точно! Вот еще одно падение: Wed Oct 15 10:10:01 EEST 2008 Кстати вчера был вылет и скрипт почемуто не смог перезапустить стг... хотя как правило он его нормально перезапускает... У меня такое было. Немного изменил скрипт, предлагаемый в FAQ. Чтобы перезапускал, если видит 1 или менее процессов stargazer в памяти. И каждые сутки - скриптом принудительно перезапускаю СТГ. После того как сделал это - СТГ почему-то вообще не падает, уже дней 6. Зараза. Тьфу-тьфу-тьфу. Может сказывается принудительный перезапуск раз в сутки, а может карма у него такая - не знаю.
gall Posted October 15, 2008 Posted October 15, 2008 У меня такое было. Немного изменил скрипт, предлагаемый в FAQ. Чтобы перезапускал, если видит 1 или менее процессов stargazer в памяти. И каждые сутки - скриптом принудительно перезапускаю СТГ. После того как сделал это - СТГ почему-то вообще не падает, уже дней 6. Зараза. Тьфу-тьфу-тьфу. Может сказывается принудительный перезапуск раз в сутки, а может карма у него такая - не знаю. Действительно, принудительный рестарт раз в сутки намного облегчает жизнь и работу. Но к сожалению в таком варианте он все равно падает, реже намного, но все же падает 1-2 раза в сутки.
Keen Posted October 15, 2008 Posted October 15, 2008 Точно! Вот еще одно падение:Код Wed Oct 15 10:10:01 EEST 2008 Кстати вчера был вылет и скрипт почемуто не смог перезапустить стг... хотя как правило он его нормально перезапускает... а откуда ты береш время падения? Из скрипта? Скрипт по крону грузится?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now