gentoo.ru
Официальная конференция Direct Connect клиента EiskaltDC++
eiskaltdc@conference.gentoo.ru
Среда, 25 марта 2015< ^ >
dhamp установил(а) тему: Конференция разработчиков EiskaltDC++ | Conference of EiskaltDC++ developers
Site: https://code.google.com/p/eiskaltdc/
Logs: http://gentoo.ru/jabber/logs/eiskaltdc@conference.gentoo.ru/2015/
Bug tracker: https://code.google.com/p/eiskaltdc/issues/list
Notes for developers: https://code.google.com/p/eiskaltdc/wiki/notes_for_developers
How To Ask Questions The Smart Way: http://catb.org/%7Eesr/faqs/smart-questions.html
Как правильно задавать вопросы: http://parallel.ru/cluster/smart-questions-ru.html
Last stable release: 2.2.9 (2013-08-29)
Release schedule:
* 2015-xx-xx Release EiskaltDC++ 2.3.0
Конфигурация комнаты
Участники комнаты

GMT+3
[00:13:09] <loooser> dhamp: почему? В какой-то из этих функций ведь будет косяк, не?...
[00:19:22] <dhamp> loooser, не
[00:20:31] <loooser> ну и как тогда найти его?
[00:31:21] <dhamp> loooser, прогнать через callgrind - получится некий отчёт который можно будет проанализировать и может даже что-то найти
[00:31:45] <loooser> ну тогда погоняй %)
[00:34:50] <loooser> может у gdb есть фича - остановить выполнение программы через N секунд? Тогда бы можно было несколько раз её вызвать и посмотреть в какой функции чаще всего её останавливает...
[00:36:12] <dhamp> loooser, это ровно ни о чём не скажет
[00:37:32] <loooser> ну тогда по шагам выполнять программу пока не поймёшь в чём проблема %)
[00:49:32] <flylinkdc> а у тебя всегда жрал CPU?
[00:54:40] <loooser> нет, он сначала норм работает, но потом в какой-то момент начинает его жрать пока не перезапустишь.
[00:55:58] <flylinkdc> открой в этот момент CDM отладчик - там нет никакой аномалии?
[00:58:04] <loooser> что за cdm? Он есть под линукс?
[00:58:13] <flylinkdc> также в линуксе ведь есть инструменты чтобы узнать чем занять процесс  - думаю тебе нужно словить это и залогировать.
[00:58:30] <dhamp> loooser, cmd debug
[00:59:03] <dhamp> но для qt гуя он вроде только в dcppsync4 бранче
[00:59:25] <flylinkdc> dhamp - думаю вам нужно смержить https://bugs.launchpad.net/dcplusplus/+bug/1419478 и https://bugs.launchpad.net/dcplusplus/+bug/1419454
[01:00:03] nixtrian|home вышел(а) из комнаты
[01:00:23] <flylinkdc> у меня был юзер у которого при c-c атаке его нетбук загружался так что мыша даже не двигалась
[01:00:42] <loooser> dhamp: что за cmd debug? Расшифруй.
[01:01:12] nixtrian|home вошёл(а) в комнату
[01:01:39] <dhamp> flylinkdc, https://bugs.launchpad.net/dcplusplus/+bug/1419454  - https://github.com/eiskaltdcpp/eiskaltdcpp/commit/c7d81be891d6457249fc9de1223e375f53948b3d
https://bugs.launchpad.net/dcplusplus/+bug/1419478 - https://github.com/eiskaltdcpp/eiskaltdcpp/commit/79298ba041cf5f748da2c0f3823e6ce45ec46af3
[01:02:52] <dhamp> loooser, http://www.enlightenment.org/ss/e-5511dc901efac4.52384410.png
[01:03:29] <dhamp> flylinkdc, CTM2HUB пока в master залит.
[01:04:30] <flylinkdc> а понял. тогда ок )
[01:04:37] <pewpew> dhamp: кириллица в CDM-отладчике так и не отображается
[01:04:46] <dhamp> CTM2HUB пока в master не залит. *
[01:04:55] <dhamp> вот так корректней )
[01:05:15] <loooser> dhamp: думаешь это о чём-то скажет? Это не атака, а косяк в самом эйскальте, т.к. я сижу на двух локальных хабах.
[01:05:17] <dhamp> flylinkdc, всё равно у нас никой защиты от ддоса не встроено фактически )
[01:05:43] <pewpew> loooser: может непреднамеренная атака
[01:06:04] <pewpew> некоторые старые флайлинки могли срать командами без памяти
[01:06:29] <dhamp> pewpew, "срать командами без памяти" - прикольное выражение )
[01:07:09] <loooser> да вряд ли, сетевая нагрузка вроде без аномалий
[01:07:42] <flylinkdc> looser а дисковую активность померяй - там тоже ничего?
[01:08:30] <loooser> тоже
[01:09:00] <flylinkdc> т.е. тупо CPU и все 100% ?
[01:09:12] <loooser> вот сейчас только запустил эйскальт и уже словил. Давайте говорите как/чем отловить :)
[01:09:12] <flylinkdc> покажи скрин
[01:09:34] <pewpew> гтк-версию запускай значит
[01:09:44] <pewpew> или собирай из ветки дампа
[01:09:56] <pewpew> где отладчик есть
[01:10:07] <loooser> а, не. Уже прошло.
[01:10:43] GitHub_bot вошёл(а) в комнату
[01:10:43] <GitHub_bot> [eiskaltdcpp] @dhamp pushed 1 new commit to dcppsyncv4: https://github.com/eiskaltdcpp/eiskaltdcpp/commit/68f8783d90a9af80478f9365fb6ab8f655510807
[01:10:43] <GitHub_bot> [eiskaltdcpp/dcppsyncv4] CTM2HUB - Eugene Petrov
[01:10:46] <flylinkdc> я сам в линуксе не разработчик ниразу - но вроде strace умеет что-то мониторить
[01:10:53] GitHub_bot вышел(а) из комнаты
[01:11:01] <loooser> ветка дхампа у меня сейчас не фурычит, он там что-то сломал с qt4
[01:11:21] <flylinkdc> но если ошибка в коде самого eiskltDc то нужно профайлером смотреть
[01:11:53] <loooser> опять началось ))
[01:12:00] <flylinkdc> вот так смогешь - http://baptiste-wicht.com/posts/2011/09/profile-c-application-with-callgrind-kcachegrind.html ?
[01:12:39] <dhamp> flylinkdc, callgrind не серебряная пуля =)
[01:12:42] <loooser>     1 18252 loooser        21   1 83232 37156 S 65.0  2.0  9:12.30 eiskaltdcpp-qt
    1 18401 loooser        21   1 83232 37156 R 63.1  2.0  2:47.25 eiskaltdcpp-qt
^^ это вывод htop, т.е. 65 и 63 процента цпу жрёт
[01:12:50] <flylinkdc> просто под виндой в VC++ есть свой профайлер двух разных типов но там есть сложность под ним может программка так тупить что не выйдет в рабочий режим никогда и баг с зависоном может не повториться
[01:13:13] <pewpew> и что ты сделал для поиска причины, кроме написания в чатик и вывода топа?
[01:13:25] <flylinkdc> dhamp ну вам лучше знать какой пулей помочь
[01:13:53] <pewpew> предложенные варианты действий ты отметаешь не раздумывая с ремаркой "это вряд ли"
[01:14:11] <flylinkdc> расскажите чем искать 100% загрузку в линуксе - мне тоже интересно
[01:14:40] <flylinkdc> в винде можно студией к процессу прицепится и сказать ему паузу всех ниток
[01:14:58] <flylinkdc> и увидеть в каких местах крутится код
[01:15:43] <dhamp> flylinkdc, понимаешь в чём прикол, если ты не знаешь даже какой тред нагружает на 100%, искать можно очень долго, 100% это именно 1 ядро проца.
[01:16:33] <loooser> у меня всего два ядра ))
[01:16:43] <loooser> и оба нагружают проц ))
[01:16:50] <flylinkdc> ну заморозить все треды и показать колстеки всех ниток нельзя разве?
[01:17:33] <loooser> это к программистам вопрос %)
[01:18:12] <flylinkdc> loooser раз у тебя это повторяется стабильно это хорошо помоги программистам найти место )
[01:18:21] <dhamp> >[01:04:27] <flylinkdc> и увидеть в каких местах крутится код
если кушает qt гуй, и там идёт signal-slot в queueconection ( межпоток или явное указание типа коннекта), то даже стектрейс по всем потокам более чем бесполезен.
[01:18:34] <dhamp> если же кушает dcpp core
[01:18:52] <dhamp> это может помочь, а может и нет
[01:18:53] <loooser> я их уже несколько месяцев пытаю этим вопросом - только сегодня хоть что-то ответили :)
[01:19:34] <flylinkdc> ну научите его делать такой слепок всех стеков
[01:19:40] <flylinkdc> я просто сам не умею )
[01:20:54] nixtrian|home вышел(а) из комнаты
[01:22:29] <dhamp> gdb -p `pidof eiskaltdcpp-qt`
set logging file ~/bt.log
set logging on
thr a all bt full
[01:22:48] <dhamp> будет типа слепок всех тредова
[01:23:40] <flylinkdc> loooser смогешь такое сделать когда начнется нагрузка по cpu
[01:24:43] <loooser> смогу %)
[01:25:18] nixtrian|home вошёл(а) в комнату
[01:27:43] <loooser> валгринд похоже не умеет подключаться к уже запущенному процессу :(
[01:28:31] <dhamp> loooser, valgrind подменяет сисколы, потому к уже запущенному и не может подкл.
[01:35:28] <pewpew> > (00:45:47) flylinkdc: открой в этот момент CDM отладчик - там нет никакой аномалии?
[01:43:38] flylinkdc вошёл(а) в комнату
[01:56:31] flylinkdc вышел(а) из комнаты
[02:21:12] nixtrian|home вышел(а) из комнаты
[02:24:50] nixtrian|home вошёл(а) в комнату
[02:42:19] dhamp вышел(а) из комнаты: Вышел из Vacuum-IM
[03:06:10] <loooser> dhamp: продолжается каждый раз пару минут, но происходит часто - более 10 раз за два часа...
http://paste.debian.net/hidden/cb46e52e/
http://paste.debian.net/hidden/6ee846d7/
http://paste.debian.net/hidden/ec97bb27/
http://paste.debian.net/hidden/ec97bb27/
http://paste.debian.net/hidden/13844dc0/
[03:07:41] <loooser> и каждый раз проц жрут два треда - основной и второй.
[03:21:47] nixtrian|home вышел(а) из комнаты
[03:25:19] nixtrian|home вошёл(а) в комнату
[03:36:42] <pewpew> выделение ссылок mailto: ведь не добавлял никто после 2.2.9?
[08:10:28] pewpew вышел(а) из комнаты
[09:01:25] FiliN вошёл(а) в комнату
[09:56:44] <flylinkdc> loooser по дампам вроде все сидит в коде ядре на ожиданиях. если происходит раз в пару минут - то можешь включить системный лог чтобы в файл писался и потом показать что у тебя раз в 2 мину ты происходит ?
[11:28:57] dhamp_ вошёл(а) в комнату
[11:35:00] <dhamp_ > loooser, grep AutoRefreshTime ~/.config/eiskaltdc++/DCPlusPlus.xml
[13:23:05] <loooser> dhamp_ : <AutoRefreshTime type="int">60</AutoRefreshTime>
[13:23:59] <loooser> flylinkdc: что за системный лог?
[13:39:36] flylinkdc вошёл(а) в комнату
[13:55:05] flylinkdc вышел(а) из комнаты
[16:33:34] flylinkdc вышел(а) из комнаты
[17:55:30] FiliN вышел(а) из комнаты
[19:10:40] <dhamp_ > loooser, тогда я хз чего у тебя кушает проц.
[21:40:04] <loooser> dhamp_ : может можно как-то сделать трейс жрущего треда?
[21:53:02] <loooser> dhamp_ : вот как выглядит strace -tt второго жрущего цпу треда. Этой фигни на 2,1 гига за 2 с половиной минуты...
04:34:15.618188 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249998})
04:34:15.619017 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.619094 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.619151 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.619226 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.619295 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.619347 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.620086 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.620145 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.621061 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.621118 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.621181 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.621231 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.621280 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.622098 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.622153 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.622219 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.622272 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.622321 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623161 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623217 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623279 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623332 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623386 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
04:34:15.623608 select(24, [23], [23], NULL, {0, 250000}) = 2 (in [23], out [23], left {0, 249999})
[22:13:42] dhamp вошёл(а) в комнату
[22:22:21] <dhamp> loooser, у тебя в много исходящих/входящих соед. отображаемых в трансферах ?
[22:23:04] <loooser> нет, у нас сейчас вообще ночь и там всё пусто
[22:24:40] <loooser> и раньше я тоже этот момент специально смотрел - никак не зависят эти моменты жора цпу от закачек/отдач
[22:52:33] pewpew вошёл(а) в комнату
[23:18:34] flylinkdc вошёл(а) в комнату
[23:26:08] <loooser> dhamp: хотя вот сейчас с меня качал один со скоростью 1,5 - 10 Кб/сек и было всё то же самое:
06:08:56.735128 select(9, [8], [8], NULL, {0, 250000}) = 2 (in [8], out [8], left {0, 249999})
06:08:56.735168 select(9, [8], [8], NULL, {0, 250000}) = 2 (in [8], out [8], left {0, 249999})
06:08:56.735205 select(9, [8], [8], NULL, {0, 250000}) = 2 (in [8], out [8], left {0, 249999})
06:08:56.735239 select(9, [8], [8], NULL, {0, 250000}) = 2 (in [8], out [8], left {0, 249999})
...и жор цпу под 70% у двух тредов. При завершении отдачи всё прекратилось.
[23:29:50] <loooser> стрейс основного потока вроде ничего странного не показывает, хотя он тоже жрёт цпу в этот моммент....
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!