The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от bohdan200 (ok) on 28-Сен-07, 17:20 
Столкнулся со следующей проблемой:
FreeBSD 6.2
в /etc/rc.local стоит команда:
su mlnet -c 'cd /mnt/mlDonkey; ./mlnet &'
т.е. просто запуск mlnet из-под пользователя mlnet. Прога запускается, все работает, но не больше сутки. В случайный момент времени фря наглухо виснет, да так, что в локальной консоли не даже символы не набираются. Не знаю что с этим поделать...

Буду осень признателен за совет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от universite email(ok) on 28-Сен-07, 17:39 
>Столкнулся со следующей проблемой:
>FreeBSD 6.2
>в /etc/rc.local стоит команда:
>su mlnet -c 'cd /mnt/mlDonkey; ./mlnet &'
>т.е. просто запуск mlnet из-под пользователя mlnet. Прога запускается, все работает, но
>не больше сутки. В случайный момент времени фря наглухо виснет, да
>так, что в локальной консоли не даже символы не набираются. Не
>знаю что с этим поделать...
>
>Буду осень признателен за совет.

Выкинуть mlnet - очень тормознутая и криво написанная штука.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от newser (ok) on 28-Сен-07, 18:16 
>[оверквотинг удален]
>>в /etc/rc.local стоит команда:
>>su mlnet -c 'cd /mnt/mlDonkey; ./mlnet &'
>>т.е. просто запуск mlnet из-под пользователя mlnet. Прога запускается, все работает, но
>>не больше сутки. В случайный момент времени фря наглухо виснет, да
>>так, что в локальной консоли не даже символы не набираются. Не
>>знаю что с этим поделать...
>>
>>Буду осень признателен за совет.
>
>Выкинуть mlnet - очень тормознутая и криво написанная штука.

К тому же человек даже не знает, что установленный из портов mlnet кладёт старт-стоповый скрипт в /usr/local/etc/rc.d.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от bohdan200 email(ok) on 28-Сен-07, 19:02 
>[оверквотинг удален]
>>>не больше сутки. В случайный момент времени фря наглухо виснет, да
>>>так, что в локальной консоли не даже символы не набираются. Не
>>>знаю что с этим поделать...
>>>
>>>Буду осень признателен за совет.
>>
>>Выкинуть mlnet - очень тормознутая и криво написанная штука.
>
>К тому же человек даже не знает, что установленный из портов mlnet
>кладёт старт-стоповый скрипт в /usr/local/etc/rc.d.

Кроме mlnet не встречал более-менее удобной проги с хорошим гуи под винду... Может плохо искал, подскажите плс.

Как выяснилось проблема не в su.
Проблема с ipfw.
Зачем все это нужно. Чтобы засунуть трафик mlnet в общий с юзерами шейпер и дать ему минимальный приоритет. mlnet установлен не из портов и вне шейпера работает нормально неделями без перезагрузок и т.п. (дольше не пробовал)

О запуске из rc.d я прекрасно знаю, но
1) нет прозрачной возможности определения порядка загрузки
2) все что докручено не из портов я просто идеологически собрал в rc.local

Если нет правил с шейпенгом - все ОК.
Стоит net.inet.ip.fw.one_pass=0
Список правил фаера:

-f pipe flush
-f queue flush
-f flush

# ipfw rules
add deny all from 10.0.20.0/24 to any via tun0
add deny all from any to 10.0.20.0/24 via tun0

# nat
#add divert natd all from 10.0.20.0/24 to not 10.0.20.0/24 out xmit tun0
#add divert natd all from not 10.0.20.0/24 to any in recv tun0
add divert natd all from any to any via tun0

# pipes
pipe 1 config bw 256Kbit/s queue 5
pipe 2 config bw 256Kbit/s queue 5

# mlnet
queue 1 config pipe 1 weight 10 queue 100 gred 0.002000/3/50/0.1000
queue 2 config pipe 2 weight 10 queue 100 gred 0.002000/3/50/0.1000
add queue 1 all from any to any via tun0 uid mlnet in
add queue 2 all from any to any via tun0 uid mlnet out

queue 3 config pipe 1 weight 90 queue 100 gred 0.002000/3/50/0.1000
queue 4 config pipe 2 weight 90 queue 100 gred 0.002000/3/50/0.1000
add queue 3 all from any to any via ng0 in
add queue 4 all from any to any via ng0 out

.... и так далее для всех юзеров ....

Возможно трабл в том, что правила для ng0, ng1 и остальных прописаны статически а эти интекфейсы не всегда существуют... Но шейпер работает...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от bohdan200 email(ok) on 29-Сен-07, 02:28 
Ну спасибо и на єтом.
Проблема біла с debug.mpsafenet
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "FreeBSD 6.2: 'su mlnet -c '.....' ' фря наглухо виснет"  
Сообщение от Infrasty email on 17-Окт-07, 22:58 
>Столкнулся со следующей проблемой:
>FreeBSD 6.2
>в /etc/rc.local стоит команда:
>su mlnet -c 'cd /mnt/mlDonkey; ./mlnet &'
>т.е. просто запуск mlnet из-под пользователя mlnet. Прога запускается, все работает, но
>не больше сутки. В случайный момент времени фря наглухо виснет, да
>так, что в локальной консоли не даже символы не набираются. Не
>знаю что с этим поделать...
>
>Буду осень признателен за совет.

Проблема не в mlnet'e и даже не совсем в ipfw.
Проблема в использовании в правилах firewall'a uid/gid пользователей. Из-за особенностей реализации кода, выполняющего проверку uid/gid возможна замыкание (deadlock) процессов в ядре что и приводит к глухому зависанию компьютера - при чем нет ни kernel panic ни иных сообщений.
Эта проблема присуща не только ipfw но и pf и ipf.

В большинстве случаев проблема решается установкой переменной debug.mpsafenet=0, которая по сути отключает многопоточность для сетевого стека.
Другим решением проблемы является патч для firewall'a, который принудительно включает проверку uid/gid для каждого пакета - для каждого firewall'a патч индивидуален.
Третий вариант это отказаться от правил, использующих uid/gid lookup - хотя иной раз они делают конфигурации firewall'ов очень элегантными.

больше можно узнать в google например по ipfw uid deadlock

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру