den68 0 Опубліковано: 2008-08-21 22:15:42 Share Опубліковано: 2008-08-21 22:15:42 все работает но ip не тот, как и логин впрочем. parser.cpp > 08:51:46 > PARSE_GET_USER::ParseStart login=ww.w3.org/XML/1998/namespace что то не то с lexpat ? Включена детальная статистика - отключи, у меня с ней инемоверные глюки даже описывать нехочу, оно гдето жрет память и мешает круглое с синим вредная весчь ... Например у VPN юзеров за минуту (иногда) траф становиться 3-300 ГГб. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-08-22 05:59:54 Share Опубліковано: 2008-08-22 05:59:54 2Silitra: Вот буфер: map<RAW_PACKET, PACKET_EXTRA_DATA> packets; // Дерево в котором собраны пакеты одного типа а вот - индекс к буферу: typedef map<RAW_PACKET, PACKET_EXTRA_DATA>::iterator pp_iter; multimap<uint32_t, pp_iter> ip2packets; // Индекс адресов, указывающих на соответствующие пакеты Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-08-22 06:03:15 Share Опубліковано: 2008-08-22 06:03:15 Запустил скрипт импорта юзеров в stg на удаленной машине,скрипт берет юзеров из базы mysql и впихивает их средствами sgconf_xml в рабочий сервер медленно но верно(кстате почему медленно?) Ну я скрипта не видел... Но вобщето протокол конфигуратора достаточно медленный Почему конвертор не заюзал? Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-08-22 09:55:21 Share Опубліковано: 2008-08-22 09:55:21 2den68 Детальная стата нужна да и проблема точно не в этом. 2madf Этот буфер работает не правильно, т.к в него не поступают пакеты во время FlushAndRemove. Нужна другая организация буфера. Как ускорить протокол конфигуратора, в чем заключаются его тормоза ? Вот скрипт, конвертор не юзал так как импорт производится не из стг. <? $host="*.*.*.*"; $db="****"; $user="stg"; $pass="******"; function stg_encode12($src) { $ofs = ord('a'); $dst = ""; for ($i=0; $i<strlen($src); $i++) { $c1 = (ord($src[$i]) & 15) + $ofs; $c2 = (ord($src[$i]) >> 4) + $ofs; $dst .= chr($c1).chr($c2); } return $dst; } mysql_connect($host, $user, $pass) or die("Can't connect MySQL $host"); mysql_select_db($db) or die("Can't select DB $db"); $res=mysql_query("select login, password, name, user_type, ip, balance, enabled from user"); while ($row = mysql_fetch_array($res)) { $login = $row['login']; $password = $row['password']; $name = stg_encode12($row['name']); $ip = $row['ip']; $enabled = $row['enabled']; $balance = $row['balance']; if ($enabled == "1") $enabled = "0"; else $enabled = "1"; echo $login."\n"; echo `sgconf_xml -s 195.184.79.238 -p 5555 -a admin -w ****** -r '<AddUser><login value="$login" /></AddUser>'`; echo `sgconf_xml -s 195.184.79.238 -p 5555 -a admin -w ****** -r '<SetUser><login value="$login" /><ip value="$ip" /><password value="$password" /><tariff now="tariff" /><name value="$name" /><down value="$enabled" /><cash set="$balance" msg="OLD BALANCE" /><aonline value="1" /></SetUser>'`; } mysql_free_result($res); ?> Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-08-22 11:04:26 Share Опубліковано: 2008-08-22 11:04:26 Помозговали немного... Вот что пока придумалось (faust - я): [13:36:48] <faust> lastWriteStat = stgTime + random() % settings->GetStatWritePeriod(); - нафига там рандом?[13:37:57] <boris-work> чтоб не происходила запись многих юзеров одновременно. т.е. 30 секунд никто не пишется, а потом все ломанулись одновременно писатся [13:38:20] <boris-work> сделать запись равномерной [13:38:27] <faust> Чувак пишет, что если убрать рандом - нагрузка снижается со 100% до 25% [13:39:08] <boris-work> та не, не думаю что в этом дело. этот вызов делается только один раз на старте. если не ошибаюсь [13:43:45] <faust> Хммммм [13:43:52] <faust> Я кажется понял в чем дело [13:43:57] <boris-work> в чем? [13:44:13] <faust> Щас, надо еще обмозговать [13:49:03] <faust> Смотри, на время записи статы лочится юзер. Это понятно и это правильно - никакой трафик ему в этот момент назначать нельзя. Но если в этот момент начинает выполнятся FlushAndRemove и натыкается на такого залоченного юзера - он лочится сам. И тем самым блокирует прием трафика от капчурера. И все-бы ничего, но такие юзеры у нас равномерно рассеянны (за счет рандомизации). Получается, траффкаунтер регулярно "спотыкается", о чем на форуме и пишет чувак. [13:49:35] <faust> Думаю, для FlushAndRemove нужно "тестировать" состояние юзера и пропускать его, если он залочен. [13:50:14] <boris-work> да, тока это никак не объясняет изменения нагрузки со 100% до 25% [13:54:00] <faust> Скорее всего причина в том, что пока вот так, спотыкаясь, FlushAndRemove заканчивает свою работу - приходит время запускать его еще раз. По поводу протокола: если бы мы знали как его ускорить - думаешь, не ускорили бы? Точнее идеи по этому поводу есть, но в твоем случае это не поможет. У тебя для каждого юзера: - делается форк; - открывается TCP-сокет; - шифруется и отправляется XML; - принимается, дешифруется и разбирается XML; - закрывается сокет; - делается форк; - открывается TCP-сокет; - создается, шифруется и отправляется XML размером побольше; - принимается, дешифруется и разбирается XML; - закрывается сокет. Как думаеш, будет такая схема быстро работать? Конвертор в любом случае быстрее. Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-08-23 03:13:56 Share Опубліковано: 2008-08-23 03:13:56 - делается форк;- открывается TCP-сокет; - шифруется и отправляется XML; - принимается, дешифруется и разбирается XML; - закрывается сокет; - делается форк; - открывается TCP-сокет; - создается, шифруется и отправляется XML размером побольше; - принимается, дешифруется и разбирается XML; - закрывается сокет. Эти пункты лишние: - закрывается сокет; - делается форк; - открывается TCP-сокет; Не плохо бы сделать груповые вставки, т.е формировать XML со списком юзеров, которых необходимо добавить/изменить. будет в разы быстрее. Зачем каждый раз открывать сокет ? не проще ли постоянно ждать данные? Тут где то проскочило, что некоторые из ошибок будут исправленны в след. версии. Когда ждать? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-08-25 05:38:20 Share Опубліковано: 2008-08-25 05:38:20 Эти пункты не лишние, т.к.: - закрытие сокета происходит по завершению работы sgconf_xml; - fork выполняется у тебя для запуска очередного sgconf_xml; - открываем новый сокет потому что у нас его нет. Если сделаеш патч для работы со списком юзеров - будем благодарны. По поводу новой версии не могу сказать ничего утешительного. Я пока занят на другом проекте. PS: я так и не услышал, почему нельзя использовать конвертор... Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-07 11:01:43 Share Опубліковано: 2008-09-07 11:01:43 Импорт производится на работающем билинге Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-09 07:36:47 Share Опубліковано: 2008-09-09 07:36:47 Импорт производится на работающем билинге И? Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-09 11:24:28 Share Опубліковано: 2008-09-09 11:24:28 2madf конвертор может забирать данные из бд самописного билинга и импортировать их в работающий stg учитавая фильтры(например только юзеры с ип 192.168.0.%). ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-09 12:09:36 Share Опубліковано: 2008-09-09 12:09:36 А, ну так бы и писал, что это не импорт из файловой базы стг Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-11 07:12:30 Share Опубліковано: 2008-09-11 07:12:30 есть еще одна проблемка стг падает при изменении юзера, а конкретно при смене тарифа. последняя строка в логе Admin 'admin', 127.0.0.1: User 'homer': 'cash' parameter changed from '0.000000' to '24.035000'. old_balance за ней должна идти Admin 'admin', 127.0.0.1: User 'homer': 'tariff' parameter changed from 'UNLIMITED_64K' to 'UNLIMITED_64K'. но ее нет, тут же сегфаульт. billing# gdb stargazer stargazer.core.100908 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 `stargazer'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/stg/libstg_logger.so...done. Loaded symbols for /usr/lib/stg/libstg_logger.so Reading symbols from /usr/lib/stg/libstg_locker.so...done. Loaded symbols for /usr/lib/stg/libstg_locker.so Reading symbols from /usr/lib/stg/libstg_common.so...done. Loaded symbols for /usr/lib/stg/libstg_common.so Reading symbols from /usr/lib/stg/libscript_executer.so...done. Loaded symbols for /usr/lib/stg/libscript_executer.so Reading symbols from /usr/lib/stg/libdotconfpp.so...done. Loaded symbols for /usr/lib/stg/libdotconfpp.so Reading symbols from /usr/local/lib/libexpat.so.6...done. Loaded symbols for /usr/local/lib/libexpat.so.6 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /usr/lib/stg/libstg_crypto.so...done. Loaded symbols for /usr/lib/stg/libstg_crypto.so Reading symbols from /usr/lib/stg/mod_store_mysql.so...done. Loaded symbols for /usr/lib/stg/mod_store_mysql.so Reading symbols from /usr/local/lib/mysql/libmysqlclient_r.so.16...done. Loaded symbols for /usr/local/lib/mysql/libmysqlclient_r.so.16 Reading symbols from /lib/libcrypt.so.4...done. Loaded symbols for /lib/libcrypt.so.4 Reading symbols from /lib/libz.so.4...done. Loaded symbols for /lib/libz.so.4 Reading symbols from /usr/lib/stg/mod_auth_ao.so...done. Loaded symbols for /usr/lib/stg/mod_auth_ao.so Reading symbols from /usr/lib/stg/mod_auth_ia.so...done. Loaded symbols for /usr/lib/stg/mod_auth_ia.so Reading symbols from /usr/lib/stg/mod_conf_sg.so...done. Loaded symbols for /usr/lib/stg/mod_conf_sg.so Reading symbols from /usr/lib/stg/mod_cap_netflow.so...done. Loaded symbols for /usr/lib/stg/mod_cap_netflow.so Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x282beff0 in std::string::compare () from /usr/lib/libstdc++.so.6 [New Thread 0x28401900 (LWP 100258)] [New Thread 0x28401800 (LWP 100231)] [New Thread 0x28401700 (LWP 100161)] [New Thread 0x28401600 (LWP 100150)] [New Thread 0x28401500 (LWP 100146)] [New Thread 0x28401400 (LWP 100134)] [New Thread 0x28401200 (LWP 100115)] [New Thread 0x28401100 (LWP 100199)] (gdb) bt #0 0x282beff0 in std::string::compare () from /usr/lib/libstdc++.so.6 #1 0x080886f8 in std::operator==<char, std::char_traits<char>, std::allocator<char> > (__lhs=@0x2841e633, __rhs=@0xbf3f77b4) at basic_string.h:2144 #2 0x08099033 in TARIFF::operator== (this=0x2841e617, rhs=@0xbf3f7798) at tariff.cpp:142 #3 0x0809d8b8 in std::__find<std::_List_const_iterator<TARIFF>, TARIFF> (__first={_M_node = 0x2841e60f}, __last={_M_node = 0x2841d018}, __val=@0xbf3f7798) at stl_algo.h:173 #4 0x0809d912 in std::find<std::_List_const_iterator<TARIFF>, TARIFF> (__first={_M_node = 0x2841e60f}, __last={_M_node = 0x2841d018}, __val=@0xbf3f7798) at stl_algo.h:327 #5 0x0809b6f3 in TARIFFS::FindByName (this=0x2841d000, name=@0x2a1180e8) at tariffs.cpp:129 #6 0x286b45fd in PARSER_CHG_USER::AplayChanges (this=0x284480e8) at parser.cpp:1054 #7 0x286b4d6a in PARSER_CHG_USER::ParseEnd (this=0x284480e8, data=0x2844801c, el=0x2a10a0a0 "SetUser") at parser.cpp:888 #8 0x286ad2b1 in ParseXMLEnd (data=0x2844801c, el=0x2a10a0a0 "SetUser") at configproto.cpp:77 #9 0x28129264 in doContent () from /usr/local/lib/libexpat.so.6 #10 0x28129fdd in contentProcessor () from /usr/local/lib/libexpat.so.6 #11 0x2812368c in XML_ParseBuffer () from /usr/local/lib/libexpat.so.6 #12 0x2812572e in XML_Parse () from /usr/local/lib/libexpat.so.6 #13 0x286ad4ed in CONFIGPROTO::ParseCommand (this=0x2844801c) at configproto.cpp:171 #14 0x286ab85f in CONFIGPROTO::RecvData (this=0x2844801c, sock=8) at rsconf.cpp:506 #15 0x286abf81 in CONFIGPROTO::Run (a=0x2844801c) at rsconf.cpp:255 #16 0x286a6ff6 in STG_CONFIG::Run (d=0x28448000) at stgconfig.cpp:234 #17 0x28147b1f in pthread_getprio () from /lib/libthr.so.3 #18 0x00000000 in ?? () (gdb) Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-11 07:19:10 Share Опубліковано: 2008-09-11 07:19:10 billing# gdb stargazer stargazer.core 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 `stargazer'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/stg/libstg_logger.so...done. Loaded symbols for /usr/lib/stg/libstg_logger.so Reading symbols from /usr/lib/stg/libstg_locker.so...done. Loaded symbols for /usr/lib/stg/libstg_locker.so Reading symbols from /usr/lib/stg/libstg_common.so...done. Loaded symbols for /usr/lib/stg/libstg_common.so Reading symbols from /usr/lib/stg/libscript_executer.so...done. Loaded symbols for /usr/lib/stg/libscript_executer.so Reading symbols from /usr/lib/stg/libdotconfpp.so...done. Loaded symbols for /usr/lib/stg/libdotconfpp.so Reading symbols from /usr/local/lib/libexpat.so.6...done. Loaded symbols for /usr/local/lib/libexpat.so.6 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /usr/lib/stg/libstg_crypto.so...done. Loaded symbols for /usr/lib/stg/libstg_crypto.so Reading symbols from /usr/lib/stg/mod_store_mysql.so...done. Loaded symbols for /usr/lib/stg/mod_store_mysql.so Reading symbols from /usr/local/lib/mysql/libmysqlclient_r.so.16...done. Loaded symbols for /usr/local/lib/mysql/libmysqlclient_r.so.16 Reading symbols from /lib/libcrypt.so.4...done. Loaded symbols for /lib/libcrypt.so.4 Reading symbols from /lib/libz.so.4...done. Loaded symbols for /lib/libz.so.4 Reading symbols from /usr/lib/stg/mod_auth_ao.so...done. Loaded symbols for /usr/lib/stg/mod_auth_ao.so Reading symbols from /usr/lib/stg/mod_auth_ia.so...done. Loaded symbols for /usr/lib/stg/mod_auth_ia.so Reading symbols from /usr/lib/stg/mod_conf_sg.so...done. Loaded symbols for /usr/lib/stg/mod_conf_sg.so Reading symbols from /usr/lib/stg/mod_cap_netflow.so...done. Loaded symbols for /usr/lib/stg/mod_cap_netflow.so Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x0809c2e8 in std::_List_const_iterator<TARIFF>::operator++ (this=0xbf3f7430) at stl_list.h:224 224 _M_node = _M_node->_M_next; [New Thread 0x28401900 (LWP 100262)] [New Thread 0x28401800 (LWP 100199)] [New Thread 0x28401700 (LWP 100161)] [New Thread 0x28401600 (LWP 100150)] [New Thread 0x28401500 (LWP 100146)] [New Thread 0x28401400 (LWP 100134)] [New Thread 0x28401200 (LWP 100115)] [New Thread 0x28401100 (LWP 100273)] (gdb) bt #0 0x0809c2e8 in std::_List_const_iterator<TARIFF>::operator++ (this=0xbf3f7430) at stl_list.h:224 #1 0x0809c31a in std::__distance<std::_List_const_iterator<TARIFF> > (__first={_M_node = 0x6c6c6f63}, __last={_M_node = 0x2841d018}) at stl_iterator_base_funcs.h:84 #2 0x0809c36b in std::distance<std::_List_const_iterator<TARIFF> > (__first={_M_node = 0x2843bb56}, __last={_M_node = 0x2841d018}) at stl_iterator_base_funcs.h:119 #3 0x0809c39b in std::list<TARIFF, std::allocator<TARIFF> >::size (this=0x2841d018) at stl_list.h:660 #4 0x0809b82a in TARIFFS::GetTariffsNum (this=0x2841d000) at tariffs.cpp:119 #5 0x286b9f24 in PARSER_GET_SERVER_INFO::CreateAnswer (this=0x2844806c) at parser.cpp:82 #6 0x286b1905 in PARSER_GET_SERVER_INFO::ParseEnd (this=0x2844806c, data=0x2844801c, el=0x2a103008 "GetServerInfo") at parser.cpp:43 #7 0x286ad2b1 in ParseXMLEnd (data=0x2844801c, el=0x2a103008 "GetServerInfo") at configproto.cpp:77 #8 0x2812912c in doContent () from /usr/local/lib/libexpat.so.6 #9 0x28129fdd in contentProcessor () from /usr/local/lib/libexpat.so.6 #10 0x2812368c in XML_ParseBuffer () from /usr/local/lib/libexpat.so.6 #11 0x2812572e in XML_Parse () from /usr/local/lib/libexpat.so.6 #12 0x286ad4ed in CONFIGPROTO::ParseCommand (this=0x2844801c) at configproto.cpp:171 #13 0x286ab85f in CONFIGPROTO::RecvData (this=0x2844801c, sock=3) at rsconf.cpp:506 #14 0x286abf81 in CONFIGPROTO::Run (a=0x2844801c) at rsconf.cpp:255 #15 0x286a6ff6 in STG_CONFIG::Run (d=0x28448000) at stgconfig.cpp:234 #16 0x28147b1f in pthread_getprio () from /lib/libthr.so.3 #17 0x00000000 in ?? () (gdb) f 4 #4 0x0809b82a in TARIFFS::GetTariffsNum (this=0x2841d000) at tariffs.cpp:119 warning: Source file is more recent than executable. 119 printfd(__FILE__, "Get tariffNum %d \n",tariffs.size()); (gdb) p tariffs $1 = {<std::_List_base<TARIFF,std::allocator<TARIFF> >> = { _M_impl = {<std::allocator<std::_List_node<TARIFF> >> = {<__gnu_cxx::new_allocator<std::_List_node<TARIFF> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x2843bb56, _M_prev = 0x2841f020}}}, <No data fields>} (gdb) tariffs.cpp 116 int TARIFFS::GetTariffsNum() const 117 { 118 STG_LOCKER lock(&mutex, __FILE__, __LINE__); 119 printfd(__FILE__, "Get tariffNum %d \n",tariffs.size()); 120 return tariffs.size(); 121 } Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-12 06:03:20 Share Опубліковано: 2008-09-12 06:03:20 Версия? Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-12 07:21:52 Share Опубліковано: 2008-09-12 07:21:52 2.405.25.08.08 + store mysql Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-12 07:42:17 Share Опубліковано: 2008-09-12 07:42:17 Что значит ".25.08.08"? У меня parser.cpp:82 и parser.cpp:1054 попадают на пустую строку и скобку. Какие были модификации? Тем более в свете ... warning: Source file is more recent than executable. ... Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-13 08:26:16 Share Опубліковано: 2008-09-13 08:26:16 parser.cpp модификация sgconfig, был добавлен вывод для отладки, чтобы понять в каком месте падает 1054 if (tariffs->FindByName(ucr->tariffName.const_data())) 82 строка sprintf(s, "<tariff_num value=\"%d\"/>", tariffs->GetTariffsNum()); проблема решилась коменитированием этой строки. GetTariffsNum() используется только тут. падать в этом месте перестал. printfd(__FILE__, "PARSER_GET_SERVER_INFO 2CreateAnswer\n"); sprintf(s, "<version value=\"%s\"/>", si.serverVersion.c_str()); answerList->push_back(s); //printfd(__FILE__, "PARSER_GET_SERVER_INFO 3CreateAnswer\n"); //sprintf(s, "<tariff_num value=\"%d\"/>", tariffs->GetTariffsNum()); //answerList->push_back(s); printfd(__FILE__, "PARSER_GET_SERVER_INFO 4CreateAnswer\n"); sprintf(s, "<tariff value=\"%d\"/>", 2); answerList->push_back(s); printfd(__FILE__, "PARSER_GET_SERVER_INFO 5CreateAnswer\n"); sprintf(s, "<users_num value=\"%d\"/>", users->GetUserNum()); answerList->push_back(s); printfd(__FILE__, "PARSER_GET_SERVER_INFO 6CreateAnswer\n"); sprintf(s, "<uname value=\"%s\"/>", un); answerList->push_back(s); printfd(__FILE__, "PARSER_GET_SERVER_INFO 7CreateAnswer\n"); sprintf(s, "<dir_num value=\"%d\"/>", DIR_NUM); answerList->push_back(s); printfd(__FILE__, "PARSER_GET_SERVER_INFO 8CreateAnswer\n"); sprintf(s, "<day_fee value=\"%d\"/>", settings->GetDayFee()) Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-13 09:42:21 Share Опубліковано: 2008-09-13 09:42:21 warning: Source file is more recent than executable. это может быть. инменений в сырцах нет, просто заново скомпилированный. Что значит ".25.08.08"? скорей всего просто для себя, от какого числа сборка. за 2 дня 2 раза упал в одном и том же месте. (gdb) bt #0 0x2814bfbe in pthread_mutex_lock () from /lib/libthr.so.3 #1 0x0808bc4b in STG_LOCKER (this=0xbf5fa90c, m=0x17e0, __file__=0x80d33ed "user.cpp", __line__=1003) at stg_locker.h:59 #2 0x080a788a in USER::AddTraffStatD (this=0x8, dir=0, ip=1378231610, dport=3476, sport=6357, len=80) at user.cpp:1003 #3 0x0809f4e4 in TRAFFCOUNTER::DelUser (this=0x2843c060, user={_M_node = 0x28c96000}) at traffcounter.cpp:625 #4 0x08090b51 in TRF_IP_BEFORE::Notify (this=0x29bc6da8, oldValue=@0xbf5faaf8, newValue=@0xbf5fab40) at traffcounter.h:244 #5 0x080b7ee2 in USER_PROPERTY<unsigned int>::operator= (this=0x28c96d20, newValue=@0xbf5fab40) at user_property.h:211 #6 0x080a752f in USER::Unauthorize (this=0x28c96008, auth=0x28446000) at user.cpp:581 #7 0x2867bd3d in AUTH_IA::Send_FIN_6 (this=0x28446000, iaUser=0x29ec3014, sip=1447995584, it={_M_node = 0x29ec3000}) at inetaccess.cpp:1772 #8 0x2867bde2 in AUTH_IA::Send_FIN_7 (this=0x28446000, iaUser=0x29ec3014, sip=1447995584, it={_M_node = 0x29ec3000}) at inetaccess.cpp:1781 #9 0x2867eeb6 in AUTH_IA::PacketProcessor (this=0x28446000, buff=0xbf5fadb4 "@", dataLen=64, sip=1447995584, sport=10002, protoVer=7, user=0xbf5fad28) at inetaccess.cpp:1104 #10 0x2867f97e in AUTH_IA::RecvData (this=0x28446000, buffer=0xbf5fad8c "00100", bufferSize=512) at inetaccess.cpp:688 #11 0x2867ffee in AUTH_IA::Run (d=0x28446000) at inetaccess.cpp:521 #12 0x28147b1f in pthread_getprio () from /lib/libthr.so.3 #13 0x00000000 in ?? () изменения сделанные мной в этом патче http://195.184.79.238/stg_2.diff Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-14 10:11:46 Share Опубліковано: 2008-09-14 10:11:46 Могу только посоветовать запустить под valgrind. Как-то копаться в 119К патчей не охота Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-09-17 18:01:17 Share Опубліковано: 2008-09-17 18:01:17 бага или фича судить не нам. ( если в процессе получения данных конфигуратором, попытаться завершить процесс stargazer, то завершатся все потоки кроме traffcounter, на внешние раздражители процесс перестает реагировать, только kill -9 поможет. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-18 10:10:56 Share Опубліковано: 2008-09-18 10:10:56 Посмотрим Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-10-15 19:01:35 Share Опубліковано: 2008-10-15 19:01:35 переодически в поле IP проскакивает значение "1inet_ntoa er" или "192.t_ntoa er" еще бывает "[inet_ntoa er". бывает у нескольких пользователей сразу, чем больше онлайн, тем сильней заметно это явление. проявляется у рандомных ползователей, совершенно случайно, впрочем так же как и исчезает с уменшением нагрузки на сервер. ось FreeBSD 7 оналйн 1К всего >3,5К. stg-2.405.9.8 модуль mysql. если остановить стг, то после попытки старта в stargazer.log 2008-10-15 19:51:00 -- Cannot read conf for user igorek. 2008-10-15 19:51:00 -- User 'igorek' data not read. Parameter IP address. Incorrect IP address: 1inet_ntoa err 2008-10-15 19:51:00 -- USERS: Error: Cannot read users! приходтится править в базе поле IP. не могу понять в чем дело, где копать. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-10-16 07:03:14 Share Опубліковано: 2008-10-16 07:03:14 переодически в поле IP проскакивает значение "1inet_ntoa er" или "192.t_ntoa er" еще бывает "[inet_ntoa er". бывает у нескольких пользователей сразу, чем больше онлайн, тем сильней заметно это явление. проявляется у рандомных ползователей, совершенно случайно, впрочем так же как и исчезает с уменшением нагрузки на сервер. ось FreeBSD 7 оналйн 1К всего >3,5К. stg-2.405.9.8 модуль mysql. если остановить стг, то после попытки старта в stargazer.log 2008-10-15 19:51:00 -- Cannot read conf for user igorek. 2008-10-15 19:51:00 -- User 'igorek' data not read. Parameter IP address. Incorrect IP address: 1inet_ntoa err 2008-10-15 19:51:00 -- USERS: Error: Cannot read users! приходтится править в базе поле IP. не могу понять в чем дело, где копать. Копать там где это значение пишется Ссылка на сообщение Поделиться на других сайтах
Silitra 0 Опубліковано: 2008-10-26 13:48:13 Share Опубліковано: 2008-10-26 13:48:13 2madf все исковырял, что только уже не делал. такое чувство что происходит сдвиг элементов в масиве. ps. чем больше поток тем больше проявляется. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-10-26 15:37:16 Share Опубліковано: 2008-10-26 15:37:16 Тогда скорее всего нарушение памяти. Прогони под valgrind. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас