About Forum Blogs NOC Docs Downloads KB Issues Code CI Registration

nocproject.org

#nocproject.org at irc.freenode.net log.
Back to nocproject.org Back to IRC log index
Date: 21.08.2012
dvolodin #
05:08
сделал STOMP-сервер, и тест для замера латентности прохождения сообщений
05:09
и нашел в итоге проблему, которой уже года четыре
mikevlz #
05:09
клева
05:10
исправил?
dvolodin #
05:10
в общем - пойдут коммиты в lib/nbsocket, очень аккуратно с ними
mikevlz #
05:10
опять snmp поломается? :)
dvolodin #
05:10
там всю логику работы SocketFactory придется менять
05:10
проблема очень простая
05:11
фабрика висит в select/poll/epoll/kqueue и ждет, пока можно что-то прочитать
05:12
если в параллельном потоке пойдет запись в сокет, то в сеть она уйдет только после того, как фабрика выскочит из select
05:12
то есть если процесс только пишет и ничего не читает, то запись буферизуется и буферы сбрасываются раз в секунду
05:14
и-за этого возможны ощутимые задержки при перещелкивание пейджера и при отправке команд
05:14
и при отправке SNMP GET тоже
05:15
основная проблема пока
05:16
если один thread висит в select(), а второму приспичило записать в сокет -- он должен выбить select
05:17
как это сделать - пока не знаю
05:17
похоже, придется фейковый сокет делать
freeseacher #
05:19
который будет менеджером ?
dvolodin #
05:20
ну суть в том, что в нем должен возникнуть read или write-ready event
05:20
чтобы select вылетел
05:20
не дожидаясь таймаута
05:21
тогда он уйдет в следующий цикл уже опрашивая возможность записи
freeseacher #
05:22
а нельзя сделать через сокетменеджер какой нить ? типа надо записать к нему надо прочитать тоже к нему. и у него очередь ? или я гоню совсем ?
dvolodin #
05:22
так и есть
freeseacher #
05:22
ага
dvolodin #
05:22
но все сводится к тому, что вызывается select/poll/epoll/kqueue
freeseacher #
05:22
и получается что чтение ждет запись ?
dvolodin #
05:22
и ждет
05:22
наоборот
freeseacher #
05:23
запись ждет чтение ?
dvolodin #
05:23
если на момент вызова select не было необходимости записи, то этого сокета нет в маске
05:23
если она возникла в процессе select, и нет чтений -- то select дождется таймаута
freeseacher #
05:24
:) ты сложно говоришь.
dvolodin #
05:25
select получает маски на чтение и на запись
05:25
если они изменились - он про это не узнает
05:25
:)
acid232 #
07:46
а гляньте что за фигня http://pastebin.com/TsM7GXVr
07:46
при попытке ./noc test noc.sa.profiles.Huawei.VRP
zi_rus #
07:47
You should rebuild using libgmp >= 5 to avoid timing a. - не в этом ли дело?
08:11
я смотрю торрент нормально уходит, вчера раздал еще на 600МБ, качает кто-то
veng #
08:32
А кто делал QTECH профиль? там 3 синтаксические ошибки в json-файлах... ./script/post-update не проходит
Dmitry1 #
08:45
переделаем...
08:46
Пиши, какие ошибки
veng #
08:56
В файле Config.json: строка 18 ("value_re": "MDLINE-6-COMMAND: \(1\)( (?P<user>\S+):|) configure terminal$")
08:56
нужно "value_re": "MDLINE-6-COMMAND: \\(1\\)( (?P<user>\\S+):|) configure terminal$"
08:57
В файле Audit.json Строка 22 пропущена запятая
08:58
это все
Dmitry1 #
09:29
пофиксил
zi_rus #
09:50
dvolodin, смотрю эксперименты коммитишь, а можешь сказать, ты новым шедулером хвастался, он уже в работе или еще в разработке?
dvolodin #
09:51
в работе
09:52
смотри классификатор
09:54
кто силен в epoll и poll?
freeseacher #
09:54
dvolodin, не тот канал :)
09:55
нужен #python
dvolodin #
09:55
могу просто закоммитить :)
freeseacher #
09:55
на руснете есть Zart он мне много раз помогал.
09:55
правда у меня и вопросы попроще
dvolodin #
09:55
да мне просто потестить и поправить код
09:56
http://dpaste.org/NhiyO/
freeseacher #
09:56
ну он не площо шарит.
09:56
сначала слегка обсирает а потом говорит чего не так
dvolodin #
09:56
есть подозрение, что remove_* у меня неправильный
10:01
lib/nbsocket после переделки вообще конфетка получилась
10:01
по сравнению с twisted
10:01
:)
zi_rus #
10:07
быстродействие? нагрузка на cpu?
mikevlz #
10:39
ээээээх....
10:39
как нехватает нормального Inventory с максимально автоматическим заполнение и автообнаружением оборудования, которое можно обнаружить
10:39
в НОКе нет, вбивать в KB как-то не сильно тянет, в заббиксе 100500 тыщ полей придется вручную заполнять :(
zi_rus #
10:42
даа
10:42
:(
10:44
даже не знаю что сложнее, определить как хванить данные или их собрать автоматом
mikevlz #
10:48
эээээ... бОльшая часть устройств группируется по тем же коммунитям. Пинг + snmpget sysDescr.0 достаточно для определения профиля.
10:49
дальше по профилю действовать.
zi_rus #
10:49
это автодискавери, это из другой оперы
10:50
я про железо, серийники всего от шасси до трансиверов
mikevlz #
10:51
у каталистов можно увидеть серийники
zi_rus #
10:51
у всего можно увидеть сейриники
freeseacher #
10:51
есть хорошая книжка для начинающих изучать питон
Dmitry1 #
10:56
"Как и изучить питон за один день и остаться в своем уме" ?
freeseacher #
10:56
нее
10:56
птон в системном администрировании
10:57
хотя твою я бы тоже почитал :)
dvolodin #
10:57
python for the rest of us :)
10:57
реабилитационные курсы для тех, кто без ума от питона
10:57
:)
freeseacher #
10:57
на академии не так давно видел курсы.
10:57
красивые на вебе прям
Dmitry1 #
11:01
Лучший курс - это полное погружение. Вот когда начнут сны сниться на питоне, тогда точно, можно смело сказать, что выучил его.
11:01
Мне в последнее время сны на C++, C и ассемблере снятся
mikevlz #
11:04
Dmitry1: в любом случае надо сначала прочитать книгу "Как нихуя не понять и не подать виду"
Dmitry1 #
11:04
Судя по всему,у большей части начальства это настольная книга
acid232 #
11:27
Dmitry1: а расскажи что не так
11:27
чего у меня тест не проходит
Dmitry1 #
11:28
там же указало, на каком файле валится
acid232 #
11:28
у меня попытка воспроизвести не получается
11:29
NOC-631?focusedCommentId=12015&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12015
Dmitry1 #
11:29
Возможно у тебя версия файлов отличается от тех, которые выложены в NOC-631
acid232 #
11:30
так даже тесты не запускаются
11:30
TypeError: __init__() takes exactly 1 argument (4 given)
11:30
я там трейс выложил
Dmitry1 #
11:30
А. Так обнови всю систему. python до 2.7 и т.п.
acid232 #
11:31
а причем тут 2.7
Dmitry1 #
11:31
Плюс libgmp обнови. Там же ясно пишет
11:31
You should rebuild using libgmp >= 5
11:32
Вместе с питоном обновятся и все его библиотеки
evyscr #
11:32
мде
Dmitry1 #
11:34
В частности: py-json, py-coverage, py-gmpy и т.п.
acid232 #
11:35
ну это конечно хороший путь
11:35
все пересобирать
11:35
но как бы непонятно в чем дело-то
11:35
из-за чего ошибка
11:35
я щас начну обновлять и все сломается нахрен
Dmitry1 #
11:36
Документация в помошь:
11:36
http://kb.nocproject.org/display/DOC/Upgrade
11:36
http://kb.nocproject.org/display/~dmitryluhtionov/FAQ#FAQ-Q%D0%9A%D0%B0%D0%BA%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B5%D1%81%D1%82%D0%B8NOC%D0%BD%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80
acid232 #
11:36
оно все время работало и на питоне 2.6 и на libgmp
11:37
и сейчас работает
freeseacher #
11:37
2.6.6 - работает
acid232 #
11:38
там нет ничего нигде про питон 2.7
11:38
и про libgmp
evyscr #
11:38
ну, было когда-то, но это быстро поправили :)
Dmitry1 #
11:38
Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
evyscr #
11:38
и что?
11:39
это выглядит как warning
Dmitry1 #
11:39
Ну, я сужу по libgmp, скорее всего кроме нее еще какая-то старая библиотечка завалялась.
evyscr #
11:39
acid232: где трейс?
Dmitry1 #
11:39
NOC-631
11:40
там трейс в конце
evyscr #
11:57
ну libgmp как бы к этому отношения иметь не должна
11:59
но что должен тестировать './noc test noc.sa.profiles.Huawei.VRP' ?
12:00
(rather than './noc test noc.sa.profiles.Huawei.VRP.get_interface_status')
acid232 #
12:04
ну очевидно все тесты
evyscr #
12:04
не совсем очевидно
acid232 #
12:04
но такой тоже не проходит - трейс такой же
12:05
2012-08-21 15:06:02,326 Test suite build: 1 test cases are found
12:05
2012-08-21 15:06:39,001 Test suite build: 86 test cases are found
evyscr #
12:05
а кто у нас есть из заведомо рабочих тестов?
acid232 #
12:05
evyscr: а у тебя запускатеся?
12:05
ну хуавей
12:05
например
12:06
или циско не знаю там хоть что нибудь
evyscr #
12:06
и это
12:06
от noc запускать не надо?
acid232 #
12:07
та все равно ошибка то другая
12:07
TypeError: __init__() takes exactly 1 argument (4 given)
evyscr #
12:08
цисковский get_version у меня работает
12:08
(строкой из документации)
12:08
от рута, да
12:09
но питон у меня уже 2.7
acid232 #
12:09
-rw-r--r-- 1 root root 18652 Апр 19 13:03 /opt/noc/lib/test_runner.py
evyscr #
12:10
(а dvolodin, например, может случайно добавить что-то 2.7-specific)
acid232 #
12:10
такой?
evyscr #
12:10
-rw-r--r-- 1 root root 18652 Feb 28 17:05 /opt/noc/lib/test_runner.py
12:11
./noc test noc.sa.profiles.Cisco.IOS.get_version
12:11
так же валится?
acid232 #
12:11
та да
evyscr #
12:11
md5sum от test_runner: 58591360e99de8ebb28c523dd23bedce
acid232 #
12:12
Python 2.6.6
Dmitry1 #
12:12
%./noc test noc.sa.profiles.DLink.DxS
evyscr #
12:14
acid232: а hg status ничего не говорит?
Dmitry1 #
12:15
2012-08-21 15:06:16,267 Found: 46 unittest modules, 19 python modules
12:15
2012-08-21 15:06:16,450 SSH: Using gmpy
12:15
2012-08-21 15:06:16,587 Using JSON library: cjson
12:15
бла-бла
12:15
Ran 65 tests in 0.188s
12:15
OK
12:15
2012-08-21 15:06:18,264 Test suite completed
acid232 #
12:18
evyscr: говорит, показывает мои локальные модификации http://pastebin.com/Nv2wLRzt
evyscr #
12:18
ну и на всякий - parent: 6509
Dmitry1 #
12:18
что-то дофига у тебя модификаций
evyscr #
12:19
вроде ничего интересного
acid232 #
12:19
ну все то что я в issues бросал
evyscr #
12:19
но вообще defaults править - дурной тон
Dmitry1 #
12:20
Что-то я не помню, чтобы менял классы для
12:20
M fm/collections/alarmclasses/NOC/Managed_Object/Ping.json
12:20
M fm/collections/alarmclasses/Network/Link.json
12:20
M fm/collections/eventclasses/Environment/Temperature.json
12:20
M fm/collections/eventclasses/Network/Link.json
12:20
M fm/collections/eventclasses/Network/STP.json
12:21
Что там такое поменяно по сравнению с апстримом?
acid232 #
12:21
а как глянуть
evyscr #
12:21
hg diff
12:22
но должно ли оно влиять на тесты?
acid232 #
12:23
та там мелочи
12:23
типа info вместо warning
Dmitry1 #
12:24
Сделай себе отдельный каталог, который будет тосной копией апстрима. А все изменения делай у себя в рабочей копии
acid232 #
12:24
шаманство )
evyscr #
12:25
freeseacher: 2.6.6?
Dmitry1 #
12:25
Кстати, как вариант - оно не может сделать тесты из-за того, что прав не хватает. Т.е. у каталога пользователь не "noc"
12:25
Но там другую ошибку выдает
evyscr #
12:25
при запуске от рута?
Dmitry1 #
12:26
./noc test делается от пользователя "noc", и этот пользователь должен суметь создать в каталоге "tests" файлики
evyscr #
12:30
У меня в tests запись только для рута. И тест успешно выполняется от рута. Что я делаю не так?
acid232 #
12:31
до 2.7 не хочется обновляться вручную - будет зоопарт
12:31
зоопарк
12:31
сильно уж на перл с CPAN похож процесс апгрейда
evyscr #
12:32
пока ещё не выяснено, надо ли обновляться
Dmitry1 #
12:32
evyscr: не кошерно
evyscr #
12:32
Dmitry1: ась?
12:33
эта виртуалка выделена чисто под noc
Dmitry1 #
12:33
evyscr: Не верно "./noc" от рута запускать
evyscr #
12:33
ну...
acid232 #
12:34
а tuple как перевести
mikevlz #
12:34
Dmitry1: не в синагоге, можна ;)
evyscr #
12:34
use dict, Luke
12:34
в словнике - кортеж
12:36
well
12:36
ТЕ, У КОГО PYTHON 2.6, - ОТЗОВИТЕСЬ!
acid232 #
12:37
кроме меня
evyscr #
12:37
и скажите, выполняется ли у вас ./noc test noc.sa.profiles.Cisco.IOS.get_version
acid232 #
12:37
def __init__(self, *args, **kwargs):
12:37
super(NOCTestResult, self).__init__(*args, **kwargs)
evyscr #
12:37
acid232: а ты можешь сделать чистую инсталляцию нока?
acid232 #
12:37
что бы это значило
12:38
боюсь замочить все что есть в рабочей
12:38
на другой тазик разве что, нужно подумать
evyscr #
12:38
ну да
acid232 #
12:38
или виртуалку
12:41
в образе виртуалки все работает и 2.7.2 )
evyscr #
12:42
2.7 неспортивно
Dmitry1 #
12:43
%./noc test noc.sa.profiles.Cisco.IOS.get_version
12:43
2012-08-21 15:36:39,803 Found: 0 unittest modules, 1 python modules
12:43
2012-08-21 15:36:39,952 SSH: Using gmpy
12:43
2012-08-21 15:36:40,017 Test suite build: 1 test cases are found
12:43
2012-08-21 15:36:40,018 Running test suite
12:43
Ran 1 test in 0.000s
12:43
OK
12:43
2012-08-21 15:36:40,018 Test suite completed
evyscr #
12:43
питон 2.6?
acid232 #
12:44
питон написан на С
12:44
epic fail
evyscr #
12:46
linux kernel написан на C
12:47
история успеха?
12:47
Dmitry1: так таки питон 2.6 или нет?
Dmitry1 #
12:48
Х.З. У меня 2.7.3
acid232 #
12:48
а какие модули к 2.7.3 нужно ставить - я уже забыл )
Dmitry1 #
12:56
py27-Jinja2-2.6
12:56
py27-MarkupSafe-0.15
12:56
py27-WebTest-1.3.3
12:56
py27-asn1-0.1.2,1
12:56
py27-cjson-1.0.5
12:56
py27-coverage-3.5.1
12:56
py27-creole-1.0.1
12:56
py27-django-1.4
12:56
py27-django-tagging-0.3.1
12:56
py27-docutils-0.9
12:56
py27-flup-1.0.2_1
12:56
py27-gmpy-1.15
12:56
py27-netifaces-0.6
12:56
py27-protobuf-2.4.1
12:56
py27-psycopg2-2.4.5
12:56
py27-pycrypto-2.5
12:56
py27-pygments-1.5
12:57
py27-setuptools-0.6c11_3
12:57
py27-snmp4-4.2.1
12:57
py27-south-0.7.3
12:57
py27-sphinx-1.1.2
12:57
py27-webob-1.2.b3
12:57
pymongo-2.2
12:57
python27-2.7.3
12:57
версии могуо отличаться в большую сторону
Tweet
Share this page
Share this page: Tweet