IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/03/03
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
AreEnn
Leopоld
Most2
Nausicaa
Nikat
Opax
Vort
WayBest
`
acetone
anon2
anontor
b3t4f4c3
banona_
fidoid
grimreaper
itsAMe
karamba_i2p
ncop
nemiga2
onon
onon1
overflow
platipussy__
polistern
poriori
profetikla
qend
r00tobo
soos
teeth
tensor
typhoon
un
user
weko
whothefuckami
колдыр
Orignal_huesos Че посаны, как зафлудились флудфилы?
HidUserZ Orignal_huesos: да вроде нет
HidUserZ Никаких отклонений не наблюдаю
HidUserZ Или ты про что
orignal никак
orignal мои флйдфилы работают штатно
Vort погнался вчера за крошечной утечкой памяти, а вляпался в багу, довольно хитрозакрученную
orignal давай рассказывай
Vort началось с того, что я заметил неправильный подсчёт ссылок в Win32NetState.h
Vort подсчёт ссылок поправил, но выяснилось, что вызов функции UnSubscribeFromEvents отключен из-за каких-то проблем
Vort проблем оказалось две:
orignal а понятно
orignal винда
Vort 1. при выключении программы через вебконсоль, UnSubscribeFromEvents вызывался дважды. это я поправил добавив условие else:
orignal тут я не знаю надо R4SAS -а ждать чего он там накодил
Vort 2. в режиме службы UnSubscribeFromEvents вызывался из треда, отличного от того, в котором вызывался SubscribeToEvents. там чуть сложнее, но, грубо говоря, так
Vort так как в режиме службы Win32NetState не работал и так "из-за особенностей архитектуры", то я его окончательно для режима службы отключил:
R4SAS режим службы есть только "на словах". вообще не проверял как оно там работает
Vort R4SAS: нужна проверка того, ушла ли проблема "unsubscribing crashes app" с моим коммитом
R4SAS насчет NetState вообще - это код из примеров мелкомягких, немного подшаманеный
R4SAS так что вообще не удивлен что оно как то не так работает в режиме сервиса
R4SAS но то что unsubscribe вызывается в другом треде - странно
Vort в каком из случаев странно?
Vort при выходе из вебконсоли?
Vort там на самом деле два таких случая было )
R4SAS вообще, этот unsubscribe проверял я только в обычном режиме. и там он вызывал падение
R4SAS о сервисе тогда и речи не было
Vort при выходе из консоли был двойной вызов: из треда вебконсоли и из главного треда. первый вызов я убрал, чтобы не было двойного вызова и неверный тред рассосался автоматически
Vort а вот при выходе через значок у меня крешей и не было
R4SAS так вебконсоль шлет в основной тред команду
R4SAS разве нет?
Vort нет
Vort там приличными словами не описать )
Vort поэтому подправил по-минимуму
R4SAS вообще - надо это переписывать. полностью.
R4SAS Win32App этот
Vort ага. но там очень много различных настроек и вариантов выхода
R4SAS я всё пытался не сломав серьёзно добавлять
Vort с gui, без gui, через консоль, через значок, через окно, ...
Vort вот и я так сделал. починил, серьёзно не перековыривая
R4SAS а писался этот Win32App еще до моего прихода. я только подпиливал его
R4SAS там тоже всё сложно
R4SAS я вообще замучался сервис прикручивать
Vort я заметил :)
R4SAS по идее сервис надо вызывать без win32app
Vort ну переделки - то потом. пока что желательно утечку + креш добить
R4SAS ибо он как сервис и с консолью сойдет
R4SAS я знаю про то как вызывается остановка в морде
Vort ну так у консоли свой тред
Vort и там почти напрямик идёт вызов UnSubscribeFromEvents
R4SAS с сервисом там сложности были в том чтобы и сервис мог остановку словить из морды, и иконка вызывала остановку сервиса
Vort это я отвечал на вопрос "так вебконсоль шлет в основной тред команду" / "разве нет?"
R4SAS и при этом цикл while внутри SErvice::Run чтобы не меашл работе приложенмя
R4SAS Vort: я понял. но ясное дело что тут тупо не реально это разделить
R4SAS это надо через класс делать, как это сделано для линей
Vort поэтому первый вызов (из консоли) я просто пропускаю
Vort а второй идёт уже откуда надо
Vort что ещё хочу сказать на всякий случай (я это написал и в комментах) - COM ведь зависит от работы цикла сообщений
R4SAS в pboted "пример" (хотя его таковым не назовешь) того, к чему надо придти. но и там тоже не всё гладко
Vort в режиме службы цикла сообщений нету
R4SAS Vort: его надо в Service::Run вынести
R4SAS в тот же цикл
R4SAS повторюсь, вся эта канитель с отслеживанием сети не проверялась с службой от слова совсем
Vort я это говорю к тому, что если переделывать службу, то надо учитывать эту особенность
Vort в будущем если переделывать то есть. сейчас не надо
R4SAS да это можно спокойно ковырять в отдельном бранче
Vort в общем, я пока что хотел бы заткнуть эту утечку и смотреть дальше что там в openssl течет, а не заниматься переделкой ужаса со службой
Vort PR с коммитом a19eb6f8 делать ?
R4SAS потестируй, посмотри. если всё нормально будет - скинешь PR, а лось вольёт.
R4SAS мне просто сейчас немного не до тестов полноценных...
Vort так я уже потестировал, но не уверен, что я починил именно тот креш, который у тебя вылазил
Vort в общем, PR делаю, а там будет видно
R4SAS Vort: добавь еще перед unsubscribe проверку на сервис. не надо пытаться его вызывать если подписка не делалась
R4SAS если получится конечно
Vort R4SAS: для этого пришлось флаг сервиса сохранять между вызовами. но так правильнее, согласен
Vort обновил PR. надеюсь, что ничего не напутал
Vort закинул также недавно обсуждавшиеся изменения в коде ресида:
orignal смержил
R4SAS я завтра по возможности гляну второй PR
R4SAS надо будет подумать насчет orange pi 5
R4SAS потому что rpi 3b+ не дает собирать более одного треда. 1 гига рамы не хватает
R4SAS как только рама под завязку уходит малина встает в ступоа
R4SAS ступор*
R4SAS даже не смотря на своп
R4SAS взять сразу с 16 гигами озу
R4SAS чтобы хотя бы в 6 потоков можно было собирать
R4SAS orignal: на малине так пока что: i2pd 20 0 1052980 47996 7372 S 35.3 4.9 310:53.94 `- /usr/sbin/i2pd
R4SAS 2900 транзита, ~ 800 kB/s
orignal ну вот видишь как все пристойно