Перейти до

Stargazer Вылетает из процессов


Рекомендованные сообщения

а откуда ты береш время падения?

Из скрипта? Скрипт по крону грузится?

ну да, он же и влог отдельный пишет....

З.Ы. еще одно падение произошло, что скрипт не смог поднять...

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 135
  • Створено
  • Остання відповідь

Top Posters In This Topic

madf, обьясни пожалуйста поподробней что нужно сделать, что бы помочь тебе в выявлении глюка. Какое логирование и как включить, что зачем делать и т.п....

Ссылка на сообщение
Поделиться на других сайтах
З.Ы. еще одно падение произошло, что скрипт не смог поднять...

 

Попробуй это.

У меня недавно было падение, всё как надо сработало. Только читай внимательно что я там написал внизу.

Ссылка на сообщение
Поделиться на других сайтах
А я вижу закономерность :)

Падает когда наступает новая минута.

Отдуплился, что он узнает что стг упал и подымает его на 1й минуте... Это все скрипт... А вот когда он падает.... ?

Ссылка на сообщение
Поделиться на других сайтах

если кому интересно скрипт перезапуска работает пока как часы

 

#!/bin/bash

 

dat=`date`

set `ps ax | grep stargazer`

if [ $3 = "S" ]; then

killall -9 stg-exec stargazer

/sbin/stargazer

f="stargazer was stopped. Now is runnning"

echo $dat $f >> /var/log/stg.restart

else

f="stg status: running"

fi

я поставил проверку по крону раз в минуту

вот количество падений в день от 2-х до 5-ти

лог перезапусков

Fri Oct 10 22:07:01 EEST 2008 stargazer was stopped. Now is runnning

Fri Oct 10 23:07:01 EEST 2008 stargazer was stopped. Now is runnning

Sat Oct 11 01:22:01 EEST 2008 stargazer was stopped. Now is runnning

Sat Oct 11 05:06:01 EEST 2008 stargazer was stopped. Now is runnning

Sat Oct 11 09:07:01 EEST 2008 stargazer was stopped. Now is runnning

Sat Oct 11 12:23:01 EEST 2008 stargazer was stopped. Now is runnning

Sat Oct 11 19:07:01 EEST 2008 stargazer was stopped. Now is runnning

Sun Oct 12 18:28:01 EEST 2008 stargazer was stopped. Now is runnning

Sun Oct 12 18:41:01 EEST 2008 stargazer was stopped. Now is runnning

Sun Oct 12 19:02:01 EEST 2008 stargazer was stopped. Now is runnning

Sun Oct 12 19:06:01 EEST 2008 stargazer was stopped. Now is runnning

Mon Oct 13 14:07:01 EEST 2008 stargazer was stopped. Now is runnning

Mon Oct 13 19:10:01 EEST 2008 stargazer was stopped. Now is runnning

Mon Oct 13 20:07:01 EEST 2008 stargazer was stopped. Now is runnning

Mon Oct 13 23:51:01 EEST 2008 stargazer was stopped. Now is runnning

Tue Oct 14 18:02:01 EEST 2008 stargazer was stopped. Now is runnning

Wed Oct 15 04:07:01 EEST 2008 stargazer was stopped. Now is runnning

Wed Oct 15 07:22:01 EEST 2008 stargazer was stopped. Now is runnning

Wed Oct 15 14:28:01 EEST 2008 stargazer was stopped. Now is runnning

Wed Oct 15 18:07:01 EEST 2008 stargazer was stopped. Now is runnning

Thu Oct 16 07:21:01 EEST 2008 stargazer was stopped. Now is runnning

Thu Oct 16 10:08:01 EEST 2008 stargazer was stopped. Now is runnning

Thu Oct 16 18:07:02 EEST 2008 stargazer was stopped. Now is runnning

Fri Oct 17 03:06:01 EEST 2008 stargazer was stopped. Now is runnning

Fri Oct 17 08:07:01 EEST 2008 stargazer was stopped. Now is runnning

Ссылка на сообщение
Поделиться на других сайтах
madf, обьясни пожалуйста поподробней что нужно сделать, что бы помочь тебе в выявлении глюка. Какое логирование и как включить, что зачем делать и т.п....

Для начала скажи, какие модули используеш и какие патчи накладывал (если накладывал, конечно).

Ссылка на сообщение
Поделиться на других сайтах

Опять падение. Немного длинным сообщение получится:

localhost ~ # cat varling

==29990== Memcheck, a memory error detector.

==29990== Copyright © 2002-2007, and GNU GPL'd, by Julian Seward et al.

==29990== Using LibVEX rev 1854, a library for dynamic binary translation.

==29990== Copyright © 2004-2007, and GNU GPL'd, by OpenWorks LLP.

==29990== Using valgrind-3.3.1, a dynamic binary instrumentation framework.

==29990== Copyright © 2000-2007, and GNU GPL'd, by Julian Seward et al.

==29990== For more details, rerun with: -v

==29990==

==29990== My PID = 29990, parent PID = 29986. Prog and args are:

==29990== stargazer

==29990== /etc/stargazer

==29990==

==29990== Thread 3:

==29990== Source and destination overlap in mempcpy(0x67FBF6E, 0x67FBF6E, 50)

==29990== at 0x40241E1: mempcpy (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)

==29990== by 0x41FE99F: _IO_default_xsputn (in /lib/libc-2.7.so)

==29990== by 0x41D95F8: vfprintf (in /lib/libc-2.7.so)

==29990== by 0x41F4151: vsprintf (in /lib/libc-2.7.so)

==29990== by 0x41DEFF5: sprintf (in /lib/libc-2.7.so)

==29990== by 0x4EE1C64: FILES_STORE::WriteDetailedStat(std::map<IP_DIR_PAIR, STAT_NODE, std::less<IP_DIR_PAIR>, std::allocator<std::pair<IP_DIR_PAIR const, STAT_NODE> > > const*, long, std::string const&) const (file_store.cpp:1751)

==29990== by 0x80AA2D0: USER::WriteDetailStat() (user.cpp:1171)

==29990== by 0x80CC635: USERS::NewMinute(tm const*) (users.cpp:402)

==29990== by 0x80CCDA2: USERS::Run(void*) (users.cpp:334)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Thread 11:

==29990== Conditional jump or move depends on uninitialised value(s)

==29990== at 0x41144D9: std::string::string(char const*, std::allocator<char> const&) (in /usr/lib/gcc/i686-pc-linux-gnu/4.2.3/libstdc++.so.6.0.9)

==29990== by 0x4FA7067: CONFIGPROTO::RecvData(int) (rsconf.cpp:500)

==29990== by 0x4FA7802: CONFIGPROTO::Run(void*) (rsconf.cpp:255)

==29990== by 0x4FA2DFD: STG_CONFIG::Run(void*) (stgconfig.cpp:234)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Conditional jump or move depends on uninitialised value(s)

==29990== at 0x41D6BCA: vfprintf (in /lib/libc-2.7.so)

==29990== by 0x41F9ADE: vsnprintf (in /lib/libc-2.7.so)

==29990== by 0x4030F31: printfd(char const*, char const*, ...) (common.cpp:90)

==29990== by 0x4FACA2F: PARSER_GET_USER::ParseStart(void*, char const*, char const**) (parser.cpp:121)

==29990== by 0x4FAA532: ParseXMLStart(void*, char const*, char const**) (configproto.cpp:59)

==29990== by 0x405227B: (within /usr/lib/libexpat.so.1.5.2)

==29990== by 0x405309C: (within /usr/lib/libexpat.so.1.5.2)

==29990== by 0x404C68A: XML_ParseBuffer (in /usr/lib/libexpat.so.1.5.2)

==29990== by 0x404E79D: XML_Parse (in /usr/lib/libexpat.so.1.5.2)

==29990== by 0x4FA8C8C: CONFIGPROTO::ParseCommand() (configproto.cpp:171)

==29990== by 0x4FA70FE: CONFIGPROTO::RecvData(int) (rsconf.cpp:506)

==29990== by 0x4FA7802: CONFIGPROTO::Run(void*) (rsconf.cpp:255)

==29990==

==29990== Thread 7:

==29990== Use of uninitialised value of size 4

==29990== at 0x42CB3EC: F(BLOWFISH_CTX*, unsigned) (blowfish.cpp:330)

==29990== by 0x42CB468: Blowfish_Encrypt(BLOWFISH_CTX*, unsigned*, unsigned*) (blowfish.cpp:349)

==29990== by 0x4F75184: AUTH_IA::Encrypt(BLOWFISH_CTX*, char*, char const*, int) (inetaccess.cpp:1233)

==29990== by 0x4F76A61: AUTH_IA::RealSendMessage8(STG_MSG const&, unsigned, IA_USER&) (inetaccess.cpp:1313)

==29990== by 0x4F78CA0: AUTH_IA::Timeouter() (inetaccess.cpp:775)

==29990== by 0x4F79823: AUTH_IA::RunTimeouter(void*) (inetaccess.cpp:546)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Use of uninitialised value of size 4

==29990== at 0x42CB3F7: F(BLOWFISH_CTX*, unsigned) (blowfish.cpp:330)

==29990== by 0x42CB468: Blowfish_Encrypt(BLOWFISH_CTX*, unsigned*, unsigned*) (blowfish.cpp:349)

==29990== by 0x4F75184: AUTH_IA::Encrypt(BLOWFISH_CTX*, char*, char const*, int) (inetaccess.cpp:1233)

==29990== by 0x4F76A61: AUTH_IA::RealSendMessage8(STG_MSG const&, unsigned, IA_USER&) (inetaccess.cpp:1313)

==29990== by 0x4F78CA0: AUTH_IA::Timeouter() (inetaccess.cpp:775)

==29990== by 0x4F79823: AUTH_IA::RunTimeouter(void*) (inetaccess.cpp:546)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Use of uninitialised value of size 4

==29990== at 0x42CB40B: F(BLOWFISH_CTX*, unsigned) (blowfish.cpp:331)

==29990== by 0x42CB468: Blowfish_Encrypt(BLOWFISH_CTX*, unsigned*, unsigned*) (blowfish.cpp:349)

==29990== by 0x4F75184: AUTH_IA::Encrypt(BLOWFISH_CTX*, char*, char const*, int) (inetaccess.cpp:1233)

==29990== by 0x4F76A61: AUTH_IA::RealSendMessage8(STG_MSG const&, unsigned, IA_USER&) (inetaccess.cpp:1313)

==29990== by 0x4F78CA0: AUTH_IA::Timeouter() (inetaccess.cpp:775)

==29990== by 0x4F79823: AUTH_IA::RunTimeouter(void*) (inetaccess.cpp:546)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Use of uninitialised value of size 4

==29990== at 0x42CB41C: F(BLOWFISH_CTX*, unsigned) (blowfish.cpp:332)

==29990== by 0x42CB468: Blowfish_Encrypt(BLOWFISH_CTX*, unsigned*, unsigned*) (blowfish.cpp:349)

==29990== by 0x4F75184: AUTH_IA::Encrypt(BLOWFISH_CTX*, char*, char const*, int) (inetaccess.cpp:1233)

==29990== by 0x4F76A61: AUTH_IA::RealSendMessage8(STG_MSG const&, unsigned, IA_USER&) (inetaccess.cpp:1313)

==29990== by 0x4F78CA0: AUTH_IA::Timeouter() (inetaccess.cpp:775)

==29990== by 0x4F79823: AUTH_IA::RunTimeouter(void*) (inetaccess.cpp:546)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990==

==29990== Syscall param socketcall.sendto(msg) points to uninitialised byte(s)

==29990== at 0x4000882: (within /lib/ld-2.7.so)

==29990== by 0x4F76A95: AUTH_IA::RealSendMessage8(STG_MSG const&, unsigned, IA_USER&) (inetaccess.cpp:1314)

==29990== by 0x4F78CA0: AUTH_IA::Timeouter() (inetaccess.cpp:775)

==29990== by 0x4F79823: AUTH_IA::RunTimeouter(void*) (inetaccess.cpp:546)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== by 0x425AD1D: clone (in /lib/libc-2.7.so)

==29990== Address 0x90e589c is on thread 7's stack

==29990==

==29990== Thread 6:

==29990== Invalid read of size 4

==29990== at 0x4070100: pthread_mutex_lock (in /lib/libpthread-2.7.so)

==29990== by 0x80921B6: STG_LOCKER::STG_LOCKER(pthread_mutex_t*, char const*, int) (stg_locker.h:59)

==29990== by 0x80ABCB3: USER::AddTraffStatD(int, unsigned, unsigned short, unsigned) (user.cpp:980)

==29990== by 0x80A4A1B: TRAFFCOUNTER::DelUser(std::_List_iterator<USER>) (traffcounter.cpp:640)

==29990== by 0x8096A9E: TRF_IP_BEFORE::Notify(unsigned const&, unsigned const&) (traffcounter.h:244)

==29990== by 0x80BADB3: USER_PROPERTY<unsigned>::operator=(unsigned const&) (user_property.h:211)

==29990== by 0x80AB984: USER::Unauthorize(BASE_AUTH const*) (user.cpp:574)

==29990== by 0x4F756D3: AUTH_IA::Send_FIN_8(IA_USER*, unsigned, std::_Rb_tree_iterator<std::pair<unsigned const, IA_USER> >) (inetaccess.cpp:1797)

==29990== by 0x4F78909: AUTH_IA::PacketProcessor(char*, int, unsigned, unsigned short, int, std::_List_iterator<USER>*) (inetaccess.cpp:1106)

==29990== by 0x4F79409: AUTH_IA::RecvData(char*, int) (inetaccess.cpp:687)

==29990== by 0x4F79A67: AUTH_IA::Run(void*) (inetaccess.cpp:520)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990== Address 0x1f60 is not stack'd, malloc'd or (recently) free'd

==29990==

==29990== Process terminating with default action of signal 11 (SIGSEGV)

==29990== Access not within mapped region at address 0x1F60

==29990== at 0x4070100: pthread_mutex_lock (in /lib/libpthread-2.7.so)

==29990== by 0x80921B6: STG_LOCKER::STG_LOCKER(pthread_mutex_t*, char const*, int) (stg_locker.h:59)

==29990== by 0x80ABCB3: USER::AddTraffStatD(int, unsigned, unsigned short, unsigned) (user.cpp:980)

==29990== by 0x80A4A1B: TRAFFCOUNTER::DelUser(std::_List_iterator<USER>) (traffcounter.cpp:640)

==29990== by 0x8096A9E: TRF_IP_BEFORE::Notify(unsigned const&, unsigned const&) (traffcounter.h:244)

==29990== by 0x80BADB3: USER_PROPERTY<unsigned>::operator=(unsigned const&) (user_property.h:211)

==29990== by 0x80AB984: USER::Unauthorize(BASE_AUTH const*) (user.cpp:574)

==29990== by 0x4F756D3: AUTH_IA::Send_FIN_8(IA_USER*, unsigned, std::_Rb_tree_iterator<std::pair<unsigned const, IA_USER> >) (inetaccess.cpp:1797)

==29990== by 0x4F78909: AUTH_IA::PacketProcessor(char*, int, unsigned, unsigned short, int, std::_List_iterator<USER>*) (inetaccess.cpp:1106)

==29990== by 0x4F79409: AUTH_IA::RecvData(char*, int) (inetaccess.cpp:687)

==29990== by 0x4F79A67: AUTH_IA::Run(void*) (inetaccess.cpp:520)

==29990== by 0x406E046: start_thread (in /lib/libpthread-2.7.so)

==29990==

==29990== ERROR SUMMARY: 59600 errors from 9 contexts (suppressed: 75 from 2)

==29990== malloc/free: in use at exit: 9,076,604 bytes in 95,189 blocks.

==29990== malloc/free: 627,160,686 allocs, 627,065,497 frees, 140,537,398,226 bytes allocated.

==29990== For counts of detected errors, rerun with: -v

==29990== searching for pointers to 95,189 not-freed blocks.

==29990== checked 91,779,676 bytes.

==29990==

==29990== LEAK SUMMARY:

==29990== definitely lost: 312 bytes in 22 blocks.

==29990== possibly lost: 497,772 bytes in 25,733 blocks.

==29990== still reachable: 8,578,520 bytes in 69,434 blocks.

==29990== suppressed: 0 bytes in 0 blocks.

==29990== Rerun with --leak-check=full to see details of leaked memory.

 

 

 

Сам старгейзер рисовал следующее:

inetaccess.cpp > 19:08:28 > Monitor time 1223983222 1224259768

inetaccess.cpp > 19:08:28 > Min8(sizeof(ALIVE_SYN)) = 384

inetaccess.cpp > 19:08:28 > 1224261680.361205 384 bytes sent to 192.168.3.13:5555 len=384

inetaccess.cpp > 19:08:28 > Send_ALIVE_SYN_8

inetaccess.cpp > 19:08:28 > recv from 192.168.3.13 5555 len=64

inetaccess.cpp > 19:08:28 > User reiser FOUND!

inetaccess.cpp > 19:08:28 > ======================> InitEncrypt dont needed

inetaccess.cpp > 19:08:28 > Monitor time 1223983222 1224259768

inetaccess.cpp > 19:08:29 > recv from 194.169.205.18 5555 len=96

inetaccess.cpp > 19:08:29 > User indigo FOUND!

inetaccess.cpp > 19:08:29 > ======================> InitEncrypt dont needed

inetaccess.cpp > 19:08:29 > 1224261680.452731 32 bytes sent to 194.169.205.18:5555 len=32

inetaccess.cpp > 19:08:29 > Monitor time 1223983222 1224259769

inetaccess.cpp > 19:08:29 > Min8(sizeof(ALIVE_SYN)) = 384

inetaccess.cpp > 19:08:29 > 1224261680.465701 384 bytes sent to 192.168.3.20:5555 len=384

inetaccess.cpp > 19:08:29 > Send_ALIVE_SYN_8

inetaccess.cpp > 19:08:29 > recv from 194.169.205.18 5555 len=64

inetaccess.cpp > 19:08:29 > User indigo FOUND!

inetaccess.cpp > 19:08:29 > ======================> InitEncrypt dont needed

inetaccess.cpp > 19:08:29 > Send_FIN_8

users.cpp > 19:08:29 > Del IP Idx

traffcounter.cpp > 19:08:29 > DelUser: indigo

 

Более ни в логах, ни в консоле ничего нет.

Ссылка на сообщение
Поделиться на других сайтах

таже проблема, анология замечена в месте падения

из постов что повыше:

==29990== Process terminating with default action of signal 11 (SIGSEGV)

==29990== Access not within mapped region at address 0x1F60

==29990== at 0x4070100: pthread_mutex_lock (in /lib/libpthread-2.7.so)

==29990== by 0x80921B6: STG_LOCKER::STG_LOCKER(pthread_mutex_t*, char const*, int) (stg_locker.h:59)

==29990== by 0x80ABCB3: USER::AddTraffStatD(int, unsigned, unsigned short, unsigned) (user.cpp:980)

==29990== by 0x80A4A1B: TRAFFCOUNTER::DelUser(std::_List_iterator<USER>) (traffcounter.cpp:640)

==29990== by 0x8096A9E: TRF_IP_BEFORE::Notify(unsigned const&, unsigned const&) (traffcounter.h:244)

==29990== by 0x80BADB3: USER_PROPERTY<unsigned>::operator=(unsigned const&) (user_property.h:211)

==29990== by 0x80AB984: USER::Unauthorize(BASE_AUTH const*) (user.cpp:574)

==29990== by 0x4F756D3: AUTH_IA::Send_FIN_8(IA_USER*, unsigned, std::_Rb_tree_iterator<std::pair<unsigned const, IA_USER> >) (inetaccess.cpp:1797)

==29990== by 0x4F78909: AUTH_IA::PacketProcessor(char*, int, unsigned, unsigned short, int, std::_List_iterator<USER>*) (inetaccess.cpp:1106)

==29990== by 0x4F79409: AUTH_IA::RecvData(char*, int) (inetaccess.cpp:687)

==29990== by 0x4F79A67: AUTH_IA::Run(void*) (inetaccess.cpp:520)

 

что мы имеем: несколько падений в день на тестовом сервере, онлайн 150-300 всего юзеров 3.5К и машинка селерон 1800, 512 ram ось freeBSD 7.

модули cap_netflow и file_store. загрузка cpu от 30-90%, запись детал.стат отрублена для всех.

 

и первое падение за месяц на рабочем., машина, 2 dual xenon 3.3 и 4 gb ram, online примерно 1К, всего юеров 3.5К. OS freeBSD 7

модули ether_freebsd и mysql собственного написания. загрузка cpu от 15% до 50%. + mysql сьедает 1 из 4 CPU целиком во время записи детальной статы.

 

видно что причина падения одна., возможно из за не верно раставленных блокировок.

(gdb) bt
#0  0x2814bfbe in pthread_mutex_lock () from /lib/libthr.so.3
#1  0x0808bbeb in STG_LOCKER (this=0xbf5fa90c, m=0x17e0, __file__=0x80d336d "user.cpp", __line__=911) at stg_locker.h:59
#2  0x080a802a in USER::AddTraffStatU (this=0x8, dir=0, ip=3832810564, dport=59127, sport=47747, len=131) at user.cpp:911
#3  0x0809f282 in TRAFFCOUNTER::DelUser (this=0x2843b060, user={_M_node = 0x28d22000}) at traffcounter.cpp:605
#4  0x08090ae1 in TRF_IP_BEFORE::Notify (this=0x2c769a48, oldValue=@0xbf5faaf8, newValue=@0xbf5fab40) at traffcounter.h:244
#5  0x080b7e02 in USER_PROPERTY<unsigned int>::operator= (this=0x28d22d20, newValue=@0xbf5fab40) at user_property.h:211
#6  0x080a756f in USER::Unauthorize (this=0x28d22008, auth=0x2844e000) at user.cpp:583
#7  0x2867bb8d in AUTH_IA::Send_FIN_6 (this=0x2844e000, iaUser=0x2cacf014, sip=1750247616, it={_M_node = 0x2cacf000}) at inetaccess.cpp:1774
#8  0x2867bc32 in AUTH_IA::Send_FIN_7 (this=0x2844e000, iaUser=0x2cacf014, sip=1750247616, it={_M_node = 0x2cacf000}) at inetaccess.cpp:1783
#9  0x2867ec4c in AUTH_IA::PacketProcessor (this=0x2844e000, buff=0xbf5fadb4 "@", dataLen=64, sip=1750247616, sport=10002, protoVer=7, user=0xbf5fad28)
at inetaccess.cpp:1106
#10 0x2867f625 in AUTH_IA::RecvData (this=0x2844e000, buffer=0xbf5fad8c "00100", bufferSize=512) at inetaccess.cpp:690
#11 0x2867fbd5 in AUTH_IA::Run (d=0x2844e000) at inetaccess.cpp:523
#12 0x28147b1f in pthread_getprio () from /lib/libthr.so.3
#13 0x00000000 in ?? ()
(gdb) f 0
#0  0x2814bfbe in pthread_mutex_lock () from /lib/libthr.so.3
(gdb) l
523		 ia->RecvData(buffer, sizeof(buffer));
524		 if ((touchTime + MONITOR_TIME_DELAY_SEC <= stgTime) && ia->stgSettings->GetMonitoring())
525			 {
526			 touchTime = stgTime;
527			 TouchFile(monFile.c_str());
528			 }
529		 }
530
531	 ia->isRunningRun = false;
532	 return NULL;
(gdb) f 1
#1  0x0808bbeb in STG_LOCKER (this=0xbf5fa90c, m=0x17e0, __file__=0x80d336d "user.cpp", __line__=911) at stg_locker.h:59
59			  pthread_mutex_lock(mutex);
(gdb) l
54
55			  lockID = ++id;
56			  cout << "Lock: " << lockID << " " << file << ":" << line << " " << mutex << " " << pthread_self() << endl;
57			  pthread_mutex_unlock(&lockerMutex);
58			  #endif
59			  pthread_mutex_lock(mutex);
60			  };
61
62		  ~STG_LOCKER()
63			  {
(gdb) f 2
#2  0x080a802a in USER::AddTraffStatU (this=0x8, dir=0, ip=3832810564, dport=59127, sport=47747, len=131) at user.cpp:911
911
(gdb) l
906	 return authorizedBy.size();
907	 }
908	 //-----------------------------------------------------------------------------
909	 void USER::AddTraffStatU(int dir, uint32_t ip, uint16_t dport, uint16_t sport, uint32_t len)
910	 {
911
912	 if (!connected)
913		 return;
914
915	 double dc = 0;
(gdb) f 3
#3  0x0809f282 in TRAFFCOUNTER::DelUser (this=0x2843b060, user={_M_node = 0x28d22000}) at traffcounter.cpp:605
605															   pi.first->second->second.lenU);
(gdb) l
600				 {
601				 pi.first->second->second.userU->AddTraffStatU(pi.first->second->second.dirU,
602															   pi.first->second->first.GetDstIP(),
603															   pi.first->second->first.GetDstPort(),
604															   pi.first->second->first.GetSrcPort(),
605															   pi.first->second->second.lenU);
606				 }
607			 pi.first->second->second.userUPresent = false;
608			 }
609
(gdb) f 4
#4  0x08090ae1 in TRF_IP_BEFORE::Notify (this=0x2c769a48, oldValue=@0xbf5faaf8, newValue=@0xbf5fab40) at traffcounter.h:244
244	 traffCnt->DelUser(user);
(gdb) l
239		 return;
240
241	 if (!traffCnt)
242		 return;
243
244	 traffCnt->DelUser(user);
245	 }
246	 //-----------------------------------------------------------------------------
247	 inline void TRF_IP_AFTER::Notify(const uint32_t & oldValue, const uint32_t & newValue)
248	 {
(gdb) f 5
#5  0x080b7e02 in USER_PROPERTY<unsigned int>::operator= (this=0x28d22d20, newValue=@0xbf5fab40) at user_property.h:211
211		 (*ni++)->Notify(oldVal, newValue);
(gdb) l
206
207	 varT oldVal = value;
208
209	 ni = beforeNotifiers.begin();
210	 while (ni != beforeNotifiers.end())
211		 (*ni++)->Notify(oldVal, newValue);
212
213	 value = newValue;
214	 modificationTime = stgTime;
215
(gdb) f 6
#6  0x080a756f in USER::Unauthorize (this=0x28d22008, auth=0x2844e000) at user.cpp:583
583		 currIP = 0;
(gdb) l
578		 return;
579
580	 if (authorizedBy.empty())
581		 {
582		 lastIPForDisconnect = currIP;
583		 currIP = 0;
584		 return;
585		 }
586	 }
587	 //-----------------------------------------------------------------------------
(gdb) f 7
#7  0x2867bb8d in AUTH_IA::Send_FIN_6 (this=0x2844e000, iaUser=0x2cacf014, sip=1750247616, it={_M_node = 0x2cacf000}) at inetaccess.cpp:1774
1774	iaUser->user->Unauthorize(this);
(gdb) l
1769	fin6.len = Min8(sizeof(FIN_6));
1770	strcpy((char*)fin6.type, "FIN");
1771	strcpy((char*)fin6.ok, "OK");
1772	Encrypt(&iaUser->ctx, (char*)&fin6, (char*)&fin6, Min8(sizeof(fin6))/8);
1773
1774	iaUser->user->Unauthorize(this);
1775
1776	int ret = Send(sip, iaSettings.GetUserPort(), (char*)&fin6, Min8(sizeof(fin6)));
1777	ip2user.erase(it);
1778	return ret;
(gdb) f 8
#8  0x2867bc32 in AUTH_IA::Send_FIN_7 (this=0x2844e000, iaUser=0x2cacf014, sip=1750247616, it={_M_node = 0x2cacf000}) at inetaccess.cpp:1783
1783	return Send_FIN_6(iaUser, sip, it);
(gdb) l
1778	return ret;
1779	}
1780	//-----------------------------------------------------------------------------
1781	int AUTH_IA::Send_FIN_7(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
1782	{
1783	return Send_FIN_6(iaUser, sip, it);
1784	}
1785	//-----------------------------------------------------------------------------
1786	int AUTH_IA::Send_FIN_8(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
1787	{
(gdb) f 9
#9  0x2867ec4c in AUTH_IA::PacketProcessor (this=0x2844e000, buff=0xbf5fadb4 "@", dataLen=64, sip=1750247616, sport=10002, protoVer=7, user=0xbf5fad28)
at inetaccess.cpp:1106
1106					Send_FIN_7(iaUser, sip, it);
(gdb) l
1101				{
1102				case 6:
1103					Send_FIN_6(iaUser, sip, it);
1104					break;
1105				case 7:
1106					Send_FIN_7(iaUser, sip, it);
1107					break;
1108				case 8:
1109					Send_FIN_8(iaUser, sip, it);
1110					break;
(gdb) f 10
#10 0x2867f625 in AUTH_IA::RecvData (this=0x2844e000, buffer=0xbf5fad8c "00100", bufferSize=512) at inetaccess.cpp:690
690		 PacketProcessor(buffer, dataLen, sip, sport, protoVer, &user);
(gdb) l
685
686	 user_iter user;
687	 if (users->FindByName(login, &user) == 0)
688		 {
689	 //	printfd(__FILE__, "User %s FOUND!\n", user->GetLogin().c_str());
690		 PacketProcessor(buffer, dataLen, sip, sport, protoVer, &user);
691		 }
692	 else
693		 {
694		 WriteServLog("User\'s connect failed:: user \'%s\' not found. IP \'%s\'",
(gdb) f 11
#11 0x2867fbd5 in AUTH_IA::Run (d=0x2844e000) at inetaccess.cpp:523
523		 ia->RecvData(buffer, sizeof(buffer));
(gdb) l
518	 //printfd(__FILE__, "Monitor=%d file AUTH_IA %s\n", ia->stgSettings->GetMonitoring(), monFile.c_str());
519
520	 while (ia->nonstop)
521		 {
522	 //	printfd(__FILE__, "Monitor time %d %d\n", touchTime, stgTime + 60);
523		 ia->RecvData(buffer, sizeof(buffer));
524		 if ((touchTime + MONITOR_TIME_DELAY_SEC <= stgTime) && ia->stgSettings->GetMonitoring())
525			 {
526			 touchTime = stgTime;
527			 TouchFile(monFile.c_str());
(gdb) f 12
#12 0x28147b1f in pthread_getprio () from /lib/libthr.so.3
(gdb) l
528			 }
529		 }
530
531	 ia->isRunningRun = false;
532	 return NULL;
533	 }
534	 //-----------------------------------------------------------------------------
535	 void * AUTH_IA::RunTimeouter(void * d)
536	 {
537	 AUTH_IA * ia;

 

и вот вывод из консоли. лишнее вырезал. выше ничего интересного.

  traffcounter.cpp > 18:09:00 > FlushAndRemove() packets: 22272(rem 5185) ip2packets: 44544(rem 10370)
	  user.cpp > 18:09:00 > USER::WriteStat user=kopity
	 users.cpp > 18:09:00 > Sec = 1224331740
	 users.cpp > 18:09:00 > New Minute. old = 8 current = 9
	 users.cpp > 18:09:00 > RealDelUser() users to del: 0
	 users.cpp > 18:09:00 > Del IP Idx
 traffcounter.cpp > 18:09:00 > DelUser: kamenotes
1/1 addresses deleted.
killed 10 states from 1 sources and 0 destinations
	 users.cpp > 18:09:01 > Del IP Idx
 traffcounter.cpp > 18:09:01 > DelUser: bahtys7
Segmentation fault (core dumped)

Ссылка на сообщение
Поделиться на других сайтах

Я заметил что у меня старгейзер падает именно в момент перехода на новый час. То есть всегда падения были замечены в первую минуту нового часа, например системное время 19:01, 07:01, 22:01. А вот именно час когда он упадет несет случайный характер. Это имеет какой-то смысл?

Ссылка на сообщение
Поделиться на других сайтах
Я заметил что у меня старгейзер падает именно в момент перехода на новый час. То есть всегда падения были замечены в первую минуту нового часа, например системное время 19:01, 07:01, 22:01. А вот именно час когда он упадет несет случайный характер. Это имеет какой-то смысл?

Это имеет смысл.

 

За логи всем спасибо - завтра буду их курить...

Ссылка на сообщение
Поделиться на других сайтах
Я заметил что у меня старгейзер падает именно в момент перехода на новый час. То есть всегда падения были замечены в первую минуту нового часа, например системное время 19:01, 07:01, 22:01. А вот именно час когда он упадет несет случайный характер. Это имеет какой-то смысл?

у меня редко падает в начале часа...

Wed Sep 17 08:30:01 EEST 2008 stargazer was stopped. Now is runnning
Thu Oct 2 16:40:01 EEST 2008 stargazer was stopped. Now is runnning
Fri Oct 3 20:50:01 EEST 2008 stargazer was stopped. Now is runnning
Mon Oct 6 09:20:01 EEST 2008 stargazer was stopped. Now is runnning
Tue Oct 7 16:00:01 EEST 2008 stargazer was stopped. Now is runnning
Wed Oct 15 10:10:01 EEST 2008 stargazer was stopped. Now is runnning
Fri Oct 17 07:00:01 EEST 2008 stargazer was stopped. Now is runnning
Fri Oct 17 12:13:01 EEST 2008 stargazer was stopped. Now is runnning
Fri Oct 17 17:02:01 EEST 2008 stargazer was stopped. Now is runnning
Fri Oct 17 19:15:01 EEST 2008 stargazer was stopped. Now is runnning
Sat Oct 18 04:58:01 EEST 2008 stargazer was stopped. Now is runnning
Sat Oct 18 13:17:01 EEST 2008 stargazer was stopped. Now is runnning
Sun Oct 19 00:42:01 EEST 2008 stargazer was stopped. Now is runnning
Sun Oct 19 13:05:01 EEST 2008 stargazer was stopped. Now is runnning

Ссылка на сообщение
Поделиться на других сайтах

Чёрт, скрипт перезапуска иногда действительно не срабатывает. Бывает, что СТГ остаётся висеть в памяти и 2-мя процессами, оставив корку и при этом потеряв работоспособность. ;)

Насколько я помню - процессов СТГ в памяти должно быть 2. У меня сейчас 4 висит. Похоже, что 2 из них просто трупы (я скрипт подправил чтобы шёл перезапуск если процессов СТГ 2 или менее в памяти - пол-второго, ничерта не соображаю, пусть пока так будет). О_о

Причём когда в этой ситуации - вручную пытаюсь запустить СТГ, то он ругается в лог, что порт занят и завершает работу. Оно и понятно. Те 4 процесса так и остаются, СТГ работает.

 

Заметил, что в период когда СТГ неработоспособен - консольный конфигуратор, естественно, не выполняет никаких команд. Может можно как-то через него привязать проверку "живости" СТГ, например добавляя кому-то денег и проверяя - изменились ли логи? Завести отдельного юзверя и использовать его как маяк? Наваяйте пожалуйста кто-то - этот скриптик в /sh, если не трудно. :)

Ссылка на сообщение
Поделиться на других сайтах
Чёрт, скрипт перезапуска иногда действительно не срабатывает. Бывает, что СТГ остаётся висеть в памяти и 2-мя процессами, оставив корку и при этом потеряв работоспособность. ;)

Насколько я помню - процессов СТГ в памяти должно быть 2. У меня сейчас 4 висит. Похоже, что 2 из них просто трупы (я скрипт подправил чтобы шёл перезапуск если процессов СТГ 2 или менее в памяти - пол-второго, ничерта не соображаю, пусть пока так будет). О_о

Причём когда в этой ситуации - вручную пытаюсь запустить СТГ, то он ругается в лог, что порт занят и завершает работу. Оно и понятно. Те 4 процесса так и остаются, СТГ работает.

 

Заметил, что в период когда СТГ неработоспособен - консольный конфигуратор, естественно, не выполняет никаких команд. Может можно как-то через него привязать проверку "живости" СТГ, например добавляя кому-то денег и проверяя - изменились ли логи? Завести отдельного юзверя и использовать его как маяк? Наваяйте пожалуйста кто-то - этот скриптик в /sh, если не трудно. :)

Я так и проверял. Есть скрипт на пхп. Нада?

Ссылка на сообщение
Поделиться на других сайтах

ушли от основной темы, нужно лечить болезнь а не пытатся раз за разом воскрешать покойника.

madf что скажешь на счет предоставленной инфы?

 

лично мне кажется что проблема описанная тут http://local.com.ua/forum/index.php?s=&amp...st&p=100297

и болезнь обсуждаемая в этом топике взаимосвязанны.

 

решил сравнить код stg-2.4-2007.01.20-13.47.20 и stg-2.405.9.8

 

по сравнению с stg-2.4-2007 в ver405 STG_LOCKER lock(&mutex, __FILE__, __LINE__);

добавленно в функии

USER::Connect

USER::Disconnect

USER::Run

USER::UpdatePingTime

USER::IsInetable

USER::AddTraffStatU

USER::AddTraffStatD

USER::GetEnabledDirs

USER::ResetDetailStat

USER::WriteDetailStat

USER::GetPassiveTimePart

USER::SetPassiveTimeAsNewUser

USER::ProcessDayFeeSpread

USER::ProcessDayFee

USER::SetPrepaidTraff

USER::AddMessage

USER::SendMessage

USER::ScanMessage

 

USERS::AddToIPIdx

USERS::DelFromIPIdx

USERS::FindByIPIdx

USERS::SetUserNotifiers

USERS::UnSetUserNotifiers

USERS::AddUserIntoIndexes

USERS::DelUserFromIndexes

 

исключено из

USERS::Del хотя в USERS::Add осталось

 

и самое главное не блокировки в

TRAFFCOUNTER::AddUser

TRAFFCOUNTER::DelUser

 

именно на TRAFFCOUNTER::DelUser все тормозится, верней на вызове из нее

USER::AddTraffStatU или USER::AddTraffStatD.. думаем дальше

Ссылка на сообщение
Поделиться на других сайтах
ушли от основной темы

Согласен, но надо же, чтобы работало - пока идёт мозговая атака. :)

 

Я так и проверял. Есть скрипт на пхп. Нада?

Переделал скрипт проверки и рестарта СТГ.

Ссылка на сообщение
Поделиться на других сайтах

Есть результаты по логу, представленному Keen. Не буду утверждать что мы нашли причину падений, но уже есть некоторые мысли. Постараюсь держать вас в курсе дела.

Ссылка на сообщение
Поделиться на других сайтах

Кстати может быть поможет такое наблюдение: у 2х сетей эти падения стали чаще после увеличения ширины интернет канала....

Ссылка на сообщение
Поделиться на других сайтах
Кстати может быть поможет такое наблюдение: у 2х сетей эти падения стали чаще после увеличения ширины интернет канала....

 

100%

коли були на 4мб - то рідше падіня були, коли підняли до 6 - то кожен день по купу раз... десь від 10 до 30(40)..

дивно але згадую часи з приємністю коли канал був менший і клієнти менше довбали...

Ссылка на сообщение
Поделиться на других сайтах
Я бы озвучил, но у меня сейчас мысли в другом русле. Проблемой Боря занимается ;)

А нельзя ли что бы Боря зашел в эту тему и чего то отписал ну и заодно почитал наши коменты... возможно это ускорит процесс...

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від ppv
      Проглянув FAQ і Ubilling Wiki. Зацікавило питання чи є в Ubilling якась реалізація reCAPTCHA, чи потрібно додавати руцями, (для прикладу для форми подачі заявок чи для кабінету користувача)?
       
    • Від Keen
      Пару дней назад под юзером админ пропал вход через stargazer configurator.
      Начало писать Invalid password. Хотя пароль не меняли.
      Ессно через ubilling тоже вход слетел. Просто обновляется на страницу входа.
      Решил ребутнуть старгейзер, т.к. в папке admins файлы не менялись с 2011г и по бекапам хеш паролей сходится.  Затупил уже мускул база, а не файловая.
      Теперь выдает recv data answer error
      в логах:
      2023-06-07 13:23:02 -- Admin's connect failed. IP 192.168.0.14
      2023-06-07 13:26:24 -- Shutting down... 15
      2023-06-07 13:26:24 -- +++++++++++++++++++++++++++++++++++++++++++++
      2023-06-07 13:26:30 -- Module: 'Stargazer RPC v. 0.2'. Stop successfull.
      2023-06-07 13:26:30 -- Module: 'Stg configurator v.0.08'. Stop successfull.
      2023-06-07 13:26:31 -- Module: 'Pinger v.1.01'. Stop successfull.
      2023-06-07 13:26:33 -- Module: 'Always Online authorizator v.1.0'. Stop successfull.
      2023-06-07 13:26:34 -- Module: 'InetAccess authorization plugin v.1.4'. Stop successfull.
      2023-06-07 13:26:34 -- Module: 'Ether_cap v.1.2'. Stop successfull.
      2023-06-07 13:26:34 -- Traffcounter: Stop successfull.
      2023-06-07 13:26:35 -- Users: Stop successfull.
      2023-06-07 13:26:36 -- Queue removed successfully.
      2023-06-07 13:26:36 -- StgTimer: Stop successfull.
      2023-06-07 13:26:36 -- Stg stopped successfully.
      2023-06-07 13:26:36 -- ---------------------------------------------
      2023-06-07 13:27:20 -- Stg v. 2.407-p1
      2023-06-07 13:27:20 -- Message queue created successfully. msgKey=5555 msgID=32768
      2023-06-07 13:27:20 -- Timer thread started successfully.
      2023-06-07 13:27:20 -- Storage plugin: mysql_store v.0.67. Loading successfull.
      2023-06-07 13:27:20 -- Error in parameter password
      2023-06-07 13:27:21 -- Users started successfully.
      2023-06-07 13:27:21 -- Traffcounter started successfully.
      2023-06-07 13:27:21 -- Module: 'Ether_cap v.1.2'. Start successfull.
      2023-06-07 13:27:21 -- Module: 'InetAccess authorization plugin v.1.4'. Start successfull.
      2023-06-07 13:27:24 -- Module: 'Always Online authorizator v.1.0'. Start successfull.
      2023-06-07 13:27:24 -- Module: 'Pinger v.1.01'. Start successfull.
      2023-06-07 13:27:24 -- Module: 'Stargazer RPC v. 0.2'. Start successfull.
      2023-06-07 13:27:24 -- Module: 'Stg configurator v.0.08'. Start successfull.
      2023-06-07 13:27:24 -- Stg started successfully.
      2023-06-07 13:27:24 -- +++++++++++++++++++++++++++++++++++++++++++++
      2023-06-07 13:27:43 -- Invalid configuration request
       
      Если через stg configurator (windows) зайти под юзером касира - конфигуратор виснет намертво..
      При этом через юбиллинг доступ есть и линуховый sgconfig под касиром все обрабатывает
      Пните, где копать?
       
    • Від ppv
      Доброго дня, не працює примусовий опит OLT. Якщо оновлювати дані для даного ОЛТ то все норм. Була версія білінгу 1.3.3, вчора оновив до 1.3.6 нічого не змінилось.
      Чи може я щось пропустив в оновленях що треба було доналаштувати? Підкажіть будь ласка, хочу знати на що звернути увагу.
      Через крон теж не згрібає сигнали, хоча бачу регламенти проходять. Олт BDCOM різного типу.
      До білінгу давно не дивився, незнаю точно коли проблема появилась.
    • Від ppv
      Цікаво а чи реально, реалізація кучаген, тип підключення pppoe, nas на різних іп. Але якщо брати з одного пулу іп абонентам. Розумію що збочена реалізація але цікаво все ж).

×
×
  • Створити нове...