Биллинговая система Nodeny
01 Ноября 2024, 08:32:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Проблема с синхоринизацией с Mikrotik! Помогите срочно плз.  (Прочитано 8982 раз)
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« : 11 Октября 2009, 10:53:43 »

Вобщем после обновления с 49.06 до 49.31 биллинг перестал логиниться на микротик и выставлять правила. Причем вроде бы не сразу а через пару часов.
В логах noserver вот такое нашел:

11.10.2009 00:18:09 Starting noserver
Out of memory during "large" request for 536875008 bytes, total sbrk() is 272621568 bytes at hw_mikrotik.pl line 84.

помогите плиз! Пока всем абонентам открыл доступ в ручную.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #1 : 11 Октября 2009, 17:31:59 »

а сколько по top скрипт памяти откушивает?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #2 : 11 Октября 2009, 17:55:49 »

Хотя я предварительно догадываюсь в чем бок. По API микротик в ответе передает длину данных. Если вдруг какой-то сбой (у него) и он передаст длину очень большую, то скрипту не хватит памяти. Врядли микротик пытался передать мегабайты, думаю это его глюк, хотя странно, что повторяющийся. Вот сейчас думаю как обрабатывать неверную длину. Давай предварительно сделаем так. В hw_mikrotik.pl срока 113
Цитировать
return $len;

перед ней вставь код:

Код:
  if( $len>10**6 )
  {
     &hw_recv_data($sock,\$c,1000);
     $len=-1;
  }
Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #3 : 11 Октября 2009, 19:43:22 »

Код вставил.

nodeny.pl хавает ~11Метров.

Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #4 : 11 Октября 2009, 19:47:28 »

Да и при обновлении он заменил файлик nofire.pl я потом обратно залил файл nofire.pl из архива mikrotik.queue
Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #5 : 11 Октября 2009, 20:06:53 »

Еще один бок, но это не так срочно. Пока биллинг работал, он насоздавал 70 дублирующих записей IP для каждого пользователя в Address-List и их количиство увеличивается.. это за неделю работы. Вроде в коде описана синхронизация, интересно почему она не работает...

И возможно ли сделать вывод работы скриптов hw_mikrotik в какой-нибуть лог. Типо debug режим :-)
Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #6 : 11 Октября 2009, 20:17:31 »

Вот еще кусок лога:

Код:
11.10.2009 21:16:33 Процесс с pid=80072 не отвечает на сигналы. Вероятно, не запущен. Удаляю pid-file
11.10.2009 21:16:33 Starting noserver
Undefined subroutine &main::time_now called at /usr/local/nodeny/nofire.pl line 124.
11.10.2009 21:16:36 Процесс с pid=80076 не отвечает на сигналы. Вероятно, не запущен. Удаляю pid-file
11.10.2009 21:16:36 Starting noserver
Undefined subroutine &main::time_now called at /usr/local/nodeny/nofire.pl line 124. 

ИМХО не стартует nofire.pl, только вот почему? На 49.08 работало нормально все. В принципе ошибку он выдает, только я не силен в Перле, поэтому не знаю что тут фиксить:
Код:
if (&time_now()>$NF_t_sync)
 {
    &NF_Debug('Synchronization');
    my $old_t_sync=$NF_t_sync;
    my %ip_list=();
    my ($ip,$list,$p_list);
    $NF_t_sync=&time_now()+$NF_t_check;
    if ( !&HW_get_ip_list({'list_ptr'=>\%ip_list}) )
    {
       &NF_Debug("Error getting ip lists");
    }
......
« Последнее редактирование: 11 Октября 2009, 20:26:34 от Vespertilio » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #7 : 11 Октября 2009, 22:01:21 »

Насчет ошибки "Undefined subroutine &main::time_now" - это косяк я уже описывал, в 50.32й версии уже не будет, пока что вручную надо поменять все &time_now() на &TimeNow().

Насчет debug-режима:

Код:
$NF_verbose=1;	# 1 - действия выводить `на экран`, 2 - очень подробно
Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #8 : 12 Октября 2009, 00:01:15 »

Ок спасибо, попробую
Записан
Vespertilio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля
« Ответ #9 : 12 Октября 2009, 00:08:21 »

Огромное спасибо! Помогло.
Записан
wise
Новичок
*

Карма: 0
Offline Offline

Сообщений: 1


Просмотр профиля Email
« Ответ #10 : 10 Ноября 2009, 01:24:09 »

Привет ! Решили проблему с многократным дублированием в access-list ?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #11 : 10 Ноября 2009, 01:56:38 »

дубляжу в микротику нету
Записан
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #12 : 10 Ноября 2009, 09:40:34 »

Подскажите люди дорбые с Микротиком

Работают ли альтернативные направления если роутером выступает микротик.
И использовать стандартные функции управления (API)

При чтении мануала я понял что понятие как альтернативное направление отсутствует, скорость будет только одна. Max-limit:

Правельно ли я понял или ошибся?
Записан

Nodeny общение
https://t.me/nodeny_chat
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #13 : 10 Ноября 2009, 09:54:33 »

пошел оффтоп! Проблема решена, поэтому тему закрываю
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!