ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] FreeRADIUS: sql_get_socket
@ 2003-02-16  8:47 Peter V. Saveliev
  2003-02-16 13:42 ` Dmitry Lebkov
  2003-02-18  6:21 ` vic ismakaev
  0 siblings, 2 replies; 8+ messages in thread
From: Peter V. Saveliev @ 2003-02-16  8:47 UTC (permalink / raw)
  To: sisyphus

...

Error: rlm_sql (sql): All sockets are being used! Please increase the maximum number of sockets!

Вот такая строчка вылезает после некоторого времени работы радиуса.

Поискал в гугле:

http://lists.cistron.nl/pipermail/freeradius-devel/2002-December/004149.html

В связи с этим вопрос: не будет ли с моей стороны большой наглостью :)
попросить у Виктора взглянуть на код sql.c и присоветовать что-нибудь
дельное? Пока что я намереваюсь поступить соответственно письму по
ссылке.

И еще: дело в том, что при использовании радиуса для учета VoIP, время
сессии, равное нулю, встречается не то чтобы часто, но примерно в 50%:
то занято, то не туда попал, то номера нет, то еще что... К сожалению,
это не учтено в SQL-схеме (по крайней мере, для Oracle), где
ACCTSESSIONTIME не может быть равным нулю. А логгировать эти записи все
равно надо: они нужны для учета как раз таких сбойных звонков, это очень
важно.

Также rlm_sql ругается: Stop packet with zero session length. Правда,
INSERT все равно делает.

Я это к чему... к тому, что пофиксить бы... А еще спустя k таких ошибок
обращения к базе:
1) в логи сыпется ошибка, приведенная в начале;
2) работа с БД прекращается;
3) хуже того, радиус перестает работать с другими модулями.

То есть, он не только перестает класть аккаунтинг в Oracle, но даже
пускать на кошачий EXEC (Login-User'ы у меня авторизуются в LDAP), что
обидно.

Заранее спасибо за совет и внимание.

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@eltel.net
Jabber: peet@jabber.ru



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-16  8:47 [sisyphus] FreeRADIUS: sql_get_socket Peter V. Saveliev
@ 2003-02-16 13:42 ` Dmitry Lebkov
  2003-02-16 15:48   ` Peter V. Saveliev
  2003-02-18  6:21 ` vic ismakaev
  1 sibling, 1 reply; 8+ messages in thread
From: Dmitry Lebkov @ 2003-02-16 13:42 UTC (permalink / raw)
  To: sisyphus

On Sun, 16 Feb 2003 11:47:43 +0300
"Peter V. Saveliev" <peet@eltel.net> wrote:

> ...
> 
> Error: rlm_sql (sql): All sockets are being used! Please increase the
> maximum number of sockets!
> 
> Вот такая строчка вылезает после некоторого времени работы радиуса.

Вот, из Changelog'а для 0.9-pre:
...
* Do SQL 'close' on bad sockets, to prevent descriptor leaks
...

Возможно, это оно самое и есть?

> Поискал в гугле:
> 
> http://lists.cistron.nl/pipermail/freeradius-devel/2002-December/004149.html
> 
> В связи с этим вопрос: не будет ли с моей стороны большой наглостью :)
> попросить у Виктора взглянуть на код sql.c и присоветовать что-нибудь
> дельное? Пока что я намереваюсь поступить соответственно письму по
> ссылке.
> 
> И еще: дело в том, что при использовании радиуса для учета VoIP, время
> сессии, равное нулю, встречается не то чтобы часто, но примерно в 50%:
> то занято, то не туда попал, то номера нет, то еще что... К сожалению,
> это не учтено в SQL-схеме (по крайней мере, для Oracle), где
> ACCTSESSIONTIME не может быть равным нулю. А логгировать эти записи
> все равно надо: они нужны для учета как раз таких сбойных звонков, это
> очень важно.

В cvs появилось что-то новое на предмет VoIP. Посмотри на 
http://www.freeradius.org/cgi-bin/cvsweb.cgi/radiusd/src/billing/

может быть это чем-нить поможет ...

> 
> Также rlm_sql ругается: Stop packet with zero session length. Правда,
> INSERT все равно делает.
> 
> Я это к чему... к тому, что пофиксить бы... А еще спустя k таких
> ошибок обращения к базе:
> 1) в логи сыпется ошибка, приведенная в начале;
> 2) работа с БД прекращается;
> 3) хуже того, радиус перестает работать с другими модулями.
> 
> То есть, он не только перестает класть аккаунтинг в Oracle, но даже
> пускать на кошачий EXEC (Login-User'ы у меня авторизуются в LDAP), что
> обидно.
> 

--
WBR, Dmitry Lebkov


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-16 13:42 ` Dmitry Lebkov
@ 2003-02-16 15:48   ` Peter V. Saveliev
  2003-02-18  6:43     ` vic ismakaev
  0 siblings, 1 reply; 8+ messages in thread
From: Peter V. Saveliev @ 2003-02-16 15:48 UTC (permalink / raw)
  To: sisyphus

On Sun, 16 Feb 2003 23:42:44 +1000
Dmitry Lebkov <dima@sakhalin.ru> wrote:

<skip /> 
> Вот, из Changelog'а для 0.9-pre:
> ...
> * Do SQL 'close' on bad sockets, to prevent descriptor leaks
> ...
> 
> Возможно, это оно самое и есть?

Похоже.

<skip /> 
> В cvs появилось что-то новое на предмет VoIP. Посмотри на 
> http://www.freeradius.org/cgi-bin/cvsweb.cgi/radiusd/src/billing/
> 
> может быть это чем-нить поможет ...
<skip /> 

Вот это просто супер. Спасибо огромное. Вопрос к мэйнтейнерам: а в
Сизифе когда эта вкусность появится, по приблизительным прогнозам?

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@eltel.net
Jabber: peet@jabber.ru



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-16  8:47 [sisyphus] FreeRADIUS: sql_get_socket Peter V. Saveliev
  2003-02-16 13:42 ` Dmitry Lebkov
@ 2003-02-18  6:21 ` vic ismakaev
  2003-02-18  6:37   ` Peter V. Saveliev
  1 sibling, 1 reply; 8+ messages in thread
From: vic ismakaev @ 2003-02-18  6:21 UTC (permalink / raw)
  To: sisyphus

16 Февраль 2003 13:47, Peter V. Saveliev написал:
> ...
>
> Error: rlm_sql (sql): All sockets are being used! Please increase the
> maximum number of sockets!
>
> Вот такая строчка вылезает после некоторого времени работы радиуса.
>
> Поискал в гугле:
>
> http://lists.cistron.nl/pipermail/freeradius-devel/2002-December/004149.htm
>l
>
> В связи с этим вопрос: не будет ли с моей стороны большой наглостью :)
> попросить у Виктора взглянуть на код sql.c и присоветовать что-нибудь
> дельное?
К сожалению, ничего дельного присоветовать не могу.Вчера поковырялся в 
исходниках, но ничего путного в голову не пришло.Такая проблема проявилась 
почти год назад и была пофикшена в версии 0.6, но похоже не до конца.
Или это oracle-specific bug.
> Пока что я намереваюсь поступить соответственно письму по
> ссылке.
Попробуйте.Хотя не уверен, что это правильный путь.

> И еще: дело в том, что при использовании радиуса для учета VoIP, время
> сессии, равное нулю, встречается не то чтобы часто, но примерно в 50%:
> то занято, то не туда попал, то номера нет, то еще что... К сожалению,
> это не учтено в SQL-схеме (по крайней мере, для Oracle), где
> ACCTSESSIONTIME не может быть равным нулю. 
Почему не учтено?
rlm_sql/drivers/rlm_sql_oracle/db_oracle.sql
CREATE TABLE radacct (
        radacctid               INT PRIMARY KEY,
	.........
	acctsessiontime         NUMERIC(12),
	..........
	)
По идее ACCTSESSIONTIME может иметь значение '0' в БД.

>А логгировать эти записи все
> равно надо: они нужны для учета как раз таких сбойных звонков, это очень
> важно.
>
> Также rlm_sql ругается: Stop packet with zero session length. Правда,
> INSERT все равно делает.
>
> Я это к чему... к тому, что пофиксить бы... А еще спустя k таких ошибок
> обращения к базе:
> 1) в логи сыпется ошибка, приведенная в начале;
> 2) работа с БД прекращается;
> 3) хуже того, радиус перестает работать с другими модулями.
> То есть, он не только перестает класть аккаунтинг в Oracle, но даже
> пускать на кошачий EXEC (Login-User'ы у меня авторизуются в LDAP), что
> обидно.

У Вас эта проблема возникает при работе с Ораклом? Или с MySQL/PgSQL тоже 
пробовали?
> Заранее спасибо за совет и внимание.
Было бы за что :(

-- 
С уважением
Виктор В Исмакаев


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-18  6:21 ` vic ismakaev
@ 2003-02-18  6:37   ` Peter V. Saveliev
  2003-02-18  7:20     ` vic ismakaev
  0 siblings, 1 reply; 8+ messages in thread
From: Peter V. Saveliev @ 2003-02-18  6:37 UTC (permalink / raw)
  To: sisyphus

On Tue, 18 Feb 2003 11:21:33 +0500
vic ismakaev <viclists@mail.esoo.ru> wrote:

<skip />
> К сожалению, ничего дельного присоветовать не могу.Вчера поковырялся в 
> исходниках, но ничего путного в голову не пришло.Такая проблема проявилась 
> почти год назад и была пофикшена в версии 0.6, но похоже не до конца.
> Или это oracle-specific bug.
<skip />

Бага модуля rlm_sql, судя по changelog пофикшено в 0.9.блабла.пре (см.
выше по треду), будем ждать stable. Пока же соломоново решение - фиксить
все ошибки обращения к базе и периодически рестартовать radiusd.
Все-таки, выключив проверку можно нарваться на бесконечный цикл,
вероятность мала, но когда случится - будет поздно...

<skip />
> Почему не учтено?
> rlm_sql/drivers/rlm_sql_oracle/db_oracle.sql
> CREATE TABLE radacct (
>         radacctid               INT PRIMARY KEY,
> 	.........
> 	acctsessiontime         NUMERIC(12),
> 	..........
> 	)
> По идее ACCTSESSIONTIME может иметь значение '0' в БД.

Хм. Отдал схему умельцам от Оракула, они ее и заправили. Видимо,
переборщили... Прошу прощения за панику, надо было посомневаться.

<skip> 
> У Вас эта проблема возникает при работе с Ораклом? Или с MySQL/PgSQL тоже 
> пробовали?

Не пробовал, нет времени. Но, судя по архивам, это возникает на любом
драйвере модуля rlm_sql. 

Увы, с английским у меня плоховато; подписался на рассылку freeradius -
понимать-то понимаю, но самому писать сложно. Пока что пассивно
приобщаюсь к мудрости :)

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@eltel.net
Jabber: peet@jabber.ru



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-16 15:48   ` Peter V. Saveliev
@ 2003-02-18  6:43     ` vic ismakaev
  2003-02-18  7:42       ` Peter V. Saveliev
  0 siblings, 1 reply; 8+ messages in thread
From: vic ismakaev @ 2003-02-18  6:43 UTC (permalink / raw)
  To: sisyphus

16 Февраль 2003 20:48, Peter V. Saveliev написал:
> On Sun, 16 Feb 2003 23:42:44 +1000
> Dmitry Lebkov <dima@sakhalin.ru> wrote:
>
> <skip />
>
> > Вот, из Changelog'а для 0.9-pre:
> > ...
> > * Do SQL 'close' on bad sockets, to prevent descriptor leaks
> > ...
> >
> > Возможно, это оно самое и есть?
>
> Похоже.
Если этот код фиксит возврат особождаемых сокетов в пул свободных - то должно 
быть оно.Код oracle имеет довольно много измений.

> <skip />
>
> > В cvs появилось что-то новое на предмет VoIP. Посмотри на
> > http://www.freeradius.org/cgi-bin/cvsweb.cgi/radiusd/src/billing/
> >
> > может быть это чем-нить поможет ...
>
> <skip />
>
> Вот это просто супер. Спасибо огромное. 
Только заточено под postgresql.
>Вопрос к мэйнтейнерам: а в
> Сизифе когда эта вкусность появится, по приблизительным прогнозам?
В Сизифе - как только выйдет 0.9.

Если есть желание - могу запаковать CVS-snapshot и залить в Дедал или 
приватом.

-- 
С уважением
Виктор В Исмакаев


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-18  6:37   ` Peter V. Saveliev
@ 2003-02-18  7:20     ` vic ismakaev
  0 siblings, 0 replies; 8+ messages in thread
From: vic ismakaev @ 2003-02-18  7:20 UTC (permalink / raw)
  To: sisyphus

18 Февраль 2003 11:37, Peter V. Saveliev написал:
> On Tue, 18 Feb 2003 11:21:33 +0500
> vic ismakaev <viclists@mail.esoo.ru> wrote:
>
> <skip />
>
> > К сожалению, ничего дельного присоветовать не могу.Вчера поковырялся в
> > исходниках, но ничего путного в голову не пришло.Такая проблема
> > проявилась почти год назад и была пофикшена в версии 0.6, но похоже не до
> > конца. Или это oracle-specific bug.
>
> <skip />
>
> Бага модуля rlm_sql, судя по changelog пофикшено в 0.9.блабла.пре (см.
> выше по треду), будем ждать stable.
Разница в коде rlm_sql.c в 0.8.1 и 0.9pre - тлько в увеличенном значении 
масива sqlusername
-       char    sqlusername[MAX_STRING_LEN];
+       char    sqlusername[2 * MAX_STRING_LEN + 10];
 sql.c вообще без изменений.

Так что основной код rlm_sql не изменялся
Много изменений именно в коде оракла. 

> Пока же соломоново решение - фиксить
> все ошибки обращения к базе и периодически рестартовать radiusd.
> Все-таки, выключив проверку можно нарваться на бесконечный цикл,
> вероятность мала, но когда случится - будет поздно...

Может попробуете из CVS?

> <skip />

> <skip>
>
> > У Вас эта проблема возникает при работе с Ораклом? Или с MySQL/PgSQL тоже
> > пробовали?
>
> Не пробовал, нет времени. Но, судя по архивам, это возникает на любом
> драйвере модуля rlm_sql.
>
> Увы, с английским у меня плоховато; подписался на рассылку freeradius -
> понимать-то понимаю, но самому писать сложно. Пока что пассивно
> приобщаюсь к мудрости :)

-- 
С уважением
Виктор В Исмакаев


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [sisyphus] FreeRADIUS: sql_get_socket
  2003-02-18  6:43     ` vic ismakaev
@ 2003-02-18  7:42       ` Peter V. Saveliev
  0 siblings, 0 replies; 8+ messages in thread
From: Peter V. Saveliev @ 2003-02-18  7:42 UTC (permalink / raw)
  To: sisyphus

On Tue, 18 Feb 2003 11:43:54 +0500
vic ismakaev <viclists@mail.esoo.ru> wrote:

<skip />
> > Вот это просто супер. Спасибо огромное. 
> Только заточено под postgresql.

Во-первых, интересно, во-вторых - есть задумки по поводу нашей БД и
postgres, собираю пока что камни...

> >Вопрос к мэйнтейнерам: а в
> > Сизифе когда эта вкусность появится, по приблизительным прогнозам?
> В Сизифе - как только выйдет 0.9.
> 
> Если есть желание - могу запаковать CVS-snapshot и залить в Дедал или 
> приватом.

Я лучше подожду релиза. Так-то запаковать и я попробую - надо, в конце
концов, тренироваться :)

-- 
Sincerely, Peter V. Saveliev

E-mail: peet@eltel.net
Jabber: peet@jabber.ru



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2003-02-18  7:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-16  8:47 [sisyphus] FreeRADIUS: sql_get_socket Peter V. Saveliev
2003-02-16 13:42 ` Dmitry Lebkov
2003-02-16 15:48   ` Peter V. Saveliev
2003-02-18  6:43     ` vic ismakaev
2003-02-18  7:42       ` Peter V. Saveliev
2003-02-18  6:21 ` vic ismakaev
2003-02-18  6:37   ` Peter V. Saveliev
2003-02-18  7:20     ` vic ismakaev

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git