From: |
Pavel Gulchouck 2:463/68 |
27 May 2022 17:08 +0300 |
To: |
Nil A 2:5015/46 |
|
Subject: |
.bsy файлы - кто будет вычищать?
|
Hi Nil!
24 May 22, Nil A ==> Evgeny Chevtaev:
EC>> # Remove old .bsy/.csy files (If some are left after a system crash).
EC>> It would # be wise to set this to 12h on almost any system. (Note that
EC>> binkd always # touches .bsy's/.csy's for active sessions) # #
EC>> kill-old-bsy is OFF by default. # kill-old-bsy 12h
EC>> Это разве не оно? В binkd.conf параметр имеется, значит всё давно
EC>> придумано.
NA> Точно, почти оно. Только 12 часов залипания - это по сегодняшним меркам
уже народ занервничает, хоть и фидо, хоть и "любительская сеть"
NA> ;-)
NA> А можно было бы и без времени сделать, если смотреть на PID внутри.
NA> Только вопрос, все ли туда PID пишут, но хаски и бинк пишут.
Софт должен ориентироваться на стандарт (в данном случае BSO), а не на
фактическое поведение другого софта. Потому что поведение софта может меняться в
пределах стандарта, софта может быть много разного, и это путь к граблям.
По стандарту BSO внутри bsy пида может не быть. И это естестенно, ведь трудно
атомарно создать бзишку с пидом.
Кроме того, отсутствие процесса с прочитанным пидом не означает, что бзишку
можно удалять. Ведь процесс, создавший бзишку, может быть на другом сервере (или
на другой виртуалке - например, в докере) с другим пространством пидов. BSO на
сетевом диске, мейлер и тоссер на разных компах - не такая уж редкая
конфигурация.
И кроме того, между событиями "прочитали пид из бзишки" и "удалили бзишку"
могут быть другие события - например:
- мы прочитали пид из бзишки;
- процесс, установивший бзишку, успешно завершился, удалив за собой эту бзишку;
- мы проверили существование процесса с указанным pid - его нет, считаем бзишку
залипшей;
- новый процесс запустился и установил свою бзищку на этот же адрес;
- мы удалили эту новую бзишку и начали что-то делать с почтой параллельно с
новым процессом.
В результате могут получиться коллизии и потеря почты.
В некоторых системах вообще нельзя открывать чужую бзишку на чтение, потому что
владелец в это время не сможет удалить открытый кем-то файл.
Было бы хорошо лочить бзишку на время сессии. Это можно сделать аккуратно и
правильно почти на всех системах, но нужна гарантия, что так себя ведёт весь
используемый софт, т.е. это получится уже не BSO, а немного другой тип outbound.
В нынешних условиях вряд ли реально.
В каком-то софте вместо бзишек использовались named mutex semaphores (TheBrake!
Mailer, если не ошибаюсь). Интересно, но не взлетело.
NA> Стоп, а что они туда пишут под виндой? ;-)
Lucky carrier,
Паша
aka gul@gul.kiev.ua
From: |
Egor Glukhov 2:5020/736 |
18 May 2022 02:29 +0300 |
To: |
Michiel van der Vlist 2:280/5555 |
|
Subject: |
ipv6
|
Michiel,
17 May 22 23:28, you wrote to Sergey Zabolotny:
MV>>> The IPv6 connectio fails. The most common problem is an incorrect
MV>>> configured firewall.
SZ>> i did some experimemnts with ipv6 configurations, thats why incoming
SZ>> v6 connections to my system were failed. now it should work as
SZ>> expected.
MV> Not yet:
MV> + 23:27 [3520] call to 2:469/122@fidonet
MV> 23:27 [3520] trying fidonet.zuram.net
MV> [2001:470:71:77b:f1d0:2:469:122]... ? 23:27 [3520] connection to
MV> 2:469/122@fidonet failed: {W32 API error 10060} Connection timed out
Works for me:
$ nc -v6 2001:470:71:77b:f1d0:2:469:122 24554
Connection to 2001:470:71:77b:f1d0:2:469:122 24554 port [tcp/binkp] succeeded!
─.OPT CRAM-MD5-482b9c1d4cb89e8720881f4019f6b0ee─SYS UnderWorld─ZYZ Sergey
Zabolotny─LOC Kishinev, Moldova─NDL 115200,TCP,BINKP─%TIME Wed, 18 May 2022
02:28:26 +0300─#VER binkd/1.1a-113/Linux binkp/1.1─ 2:469/122@fidonet
From: |
Sergey Zabolotny 2:469/122.1 |
18 May 2022 16:14 +0300 |
To: |
Alexander Kruglikov 2:5053/58 |
|
Subject: |
ipv6
|
Hello *Alexander.*
Wednesday 18 May 2022 15:52, Alexander Kruglikov wrote to Sergey Zabolotny:
DS>>> у меня с того же места с добавлением --with-af-force без прочих
DS>>> излишеств перестало ругаться на -64 в опшинах. А у тебя как раз
DS>>> его не хватает, но есть --with-af-soft.
SZ>> это я лошара опцию кривую написал. с --with-af-force перестало
SZ>> ругаться на -64 спасибо
AK> Общими усилиями разобрались. Пойду запушу изменённый конфиг чтоли Паше
AK> в гит..
ага. не забудь только указать, что это работает с включенным --with-af-force.
;-)
From: |
Sergey Zabolotny 2:469/122.1 |
18 May 2022 14:49 +0300 |
To: |
Dmitriy Smirnov 2:5010/352@fidonet |
|
Subject: |
ipv6
|
Hello *Dmitriy.*
Wednesday 18 May 2022 16:34, Dmitriy Smirnov wrote to Sergey Zabolotny:
DS> у меня с того же места с добавлением --with-af-force без прочих
DS> излишеств перестало ругаться на -64 в опшинах. А у тебя как раз его не
DS> хватает, но есть --with-af-soft.
это я лошара опцию кривую написал. с --with-af-force перестало ругаться на -64
спасибо
From: |
Michiel van der Vlist 2:280/5555 |
17 May 2022 15:12 +0300 |
To: |
Sergey Zabolotny 2:280/5555 |
|
Subject: |
ipv6
|
Hello Sergey,
Tuesday May 17 2022 11:07, I wrote to you:
SZ>> Binkd 1.1a-113 (May 9 2022 14:46:21/Linux)
SZ>> Compilation flags: gcc, zlib, bzlib2, perl.
SZ>> Facilities: fts5004 ipv6
MV> So your binkd supports IPv6. However:
[..]
MV> You are welcome to join the IPv6 echo...
BTW, can you make outgoing binkd connections? You are welcome to try to connect
to my system for testing...
Cheers, Michiel
From: |
Sergey Zabolotny 2:469/122.1 |
07 Jun 2022 15:52 +0300 |
To: |
Pavel Gulchouck 2:463/68 |
|
Subject: |
.try
|
Hello *Pavel.*
Tuesday 07 June 2022 00:10, Pavel Gulchouck wrote to Sergey Zabolotny:
SZ>>>> файлы лежат мертвым грузом, только обновляется дата модификации
SZ>>>> при каждой следующей прополке. слегка раздражает куча этих
SZ>>>> файлов в аутбаунде. это так и было задумано?
PG>>> Hет, было задумано, что они будут там лежать и не будут
PG>>> раздражать. :)
PG>>> Туда пишется статистика по удачным и неудачным попыткам, чтобы
PG>>> не долбиться постоянно на недоступные узлы. Можно было бы для
PG>>> этого сделать отдельную базку где-то в файлике, но раз уж есть
PG>>> BSO, логичнее следовать его принципам, и располагать эти файлы
PG>>> там же, где *lo, *ut и bsy - такая схема хранения информации
PG>>> выглядит более консистентной, чем разнородные базы для хранения
PG>>> разной информации о линках.
SZ>> есть смысл держать в этих файлах информацию о неудачных попытках
SZ>> и по этой информации ориентироваться как поллить узел следующий
SZ>> раз. но для чего нужен такой файл если поллинг узла прошел
SZ>> успешно?
PG> В общем, да, там есть счётчик последовательных успешных попролов ноды,
PG> и этот счётчик никак не используется. Сделано это было до 1998, в
PG> версии 0.8.8. Пожалуй, можно и удалять после успешной сессии, если
PG> мешают. Это функция good_try() в ftnq.c.
я не специалист в сях, так что не судите слишком строго. у меня получилось
примерно так:
$ git diff
diff --git a/ftnq.c b/ftnq.c
index f1a78a2..3e2dfdd 100644
-+- a/ftnq.c
+++ b/ftnq.c
@@ -1120,13 +1120,14 @@ void bad_try (FTN_ADDR *fa, const char *error, const
int where, BINKD_CONFIG *co
write_try (fa, &nok, &nbad, (char *) error, config);
}
-void good_try (FTN_ADDR *fa, char *comment, BINKD_CONFIG *config)
+void remove_try (FTN_ADDR *fa, BINKD_CONFIG *config)
{
- unsigned nok, nbad;
-
if (config->tries == 0) return;
- read_try (fa, &nok, &nbad, config);
- nbad = 0;
- ++nok;
- write_try (fa, &nok, &nbad, comment, config);
+ char buf[MAXPATHLEN + 1];
+ ftnaddress_to_filename (buf, fa, config);
+ if (*buf)
+ {
+ strnzcat (buf, ".try", sizeof (buf));
+ delete (buf);
+ }
}
diff --git a/ftnq.h b/ftnq.h
index e399d91..cceb77d 100644
-+- a/ftnq.h
+++ b/ftnq.h
@@ -110,8 +110,8 @@ enum bad_try_type { BAD_NA, BAD_CALL, BAD_MERR, BAD_MBSY,
BAD_IO, BAD_TIMEOUT,
BAD_AKA, BAD_AUTH };
void bad_try (FTN_ADDR *fa, const char *error, const int where, BINKD_CONFIG
*config);
-void good_try (FTN_ADDR *fa, char *comment, BINKD_CONFIG *config);
void read_try (FTN_ADDR *fa, unsigned *nok, unsigned *nbad, BINKD_CONFIG
*config);
void write_try (FTN_ADDR *fa, unsigned *nok, unsigned *nbad, char *comment,
BINKD_CONFIG *config);
+void remove_try (FTN_ADDR *fa, BINKD_CONFIG *config);
#endif
diff --git a/protocol.c b/protocol.c
index 677cb44..6d40bea 100644
-+- a/protocol.c
+++ b/protocol.c
@@ -3440,7 +3440,7 @@ void protocol (SOCKET socket_in, SOCKET socket_out,
FTN_NODE *to, FTN_ADDR *fa,
process_killlist (state.killlist, state.n_killlist, 's');
inb_remove_partial (&state, config);
if (to)
- good_try (&to->fa, "CONNECT/BND", config);
+ remove_try (&to->fa, config);
}
else
{
приложил у себя в виде патча и пока не заметил каких-то глюков. если можно
сделать лучше/оптимальнее, было бы интересно увидеть альтернативные варианты.
From: |
Alexander Kruglikov 2:5053/58 |
13 Jul 2022 14:26 +0300 |
To: |
Evgeny Chevtaev 2:5010/275 |
|
Subject: |
ipv6
|
Привет, Evgeny!
12 июл 22 09:46, Evgeny Chevtaev писал(а) к All:
EC> А для defnode, я так понимаю, "-64" не прокатывает?
Присылай патч (ц)
С наилучшими пожеланиями, Alexander.
From: |
Dmitriy Smirnov 2:5010/352@fidonet |
18 May 2022 14:54 +0300 |
To: |
Alexander Kruglikov 2:5053/58 |
|
Subject: |
ipv6
|
hi, Alexander!
18 May 22 15:50, Alexander Kruglikov wrote to Sergey Zabolotny:
DS>>>> чит кроется в --with-af-force =)
AK>>> Я, кстати, так и не понял, что это за Enable soft AF force
AK>>> feature =(
SZ>> я тоже не понял, но включение этой опции сборки мне почему-то не
SZ>> помогло.
AK> Так ты её и не включил. у тебя --with-af-soft а надо --with-af-force
AK> =)
AK> З.Ы. (Замечу Ышо): --with-af-soft я вообще не нашёл в ./configure
AK> --help
это, поди, еще один волшебный чит )))
wbr, Dmitriy.
From: |
Pavel Gulchouck 2:463/68 |
07 Jun 2022 00:10 +0300 |
To: |
Sergey Zabolotny 2:469/122.1 |
|
Subject: |
.try
|
Hi Sergey!
06 Jun 22, Sergey Zabolotny ==> Pavel Gulchouck:
SZ> Monday 06 June 2022 23:24, Pavel Gulchouck wrote to Sergey Zabolotny:
SZ>>> файлы лежат мертвым грузом, только обновляется дата модификации
SZ>>> при каждой следующей прополке. слегка раздражает куча этих файлов
SZ>>> в аутбаунде. это так и было задумано?
PG>> Hет, было задумано, что они будут там лежать и не будут раздражать. :)
PG>> Туда пишется статистика по удачным и неудачным попыткам, чтобы не
PG>> долбиться постоянно на недоступные узлы. Можно было бы для этого
PG>> сделать отдельную базку где-то в файлике, но раз уж есть BSO, логичнее
PG>> следовать его принципам, и располагать эти файлы там же, где *lo, *ut
PG>> и bsy - такая схема хранения информации выглядит более консистентной,
PG>> чем разнородные базы для хранения разной информации о линках.
SZ> есть смысл держать в этих файлах информацию о неудачных попытках и по этой
информации ориентироваться как поллить узел следующий раз.
SZ> но для чего нужен такой файл если поллинг узла прошел успешно?
В общем, да, там есть счётчик последовательных успешных попролов ноды, и этот
счётчик никак не используется.
Сделано это было до 1998, в версии 0.8.8.
Пожалуй, можно и удалять после успешной сессии, если мешают.
Это функция good_try() в ftnq.c.
Lucky carrier,
Паша
aka gul@gul.kiev.ua
From: |
Sergey Zabolotny 2:469/122.1 |
06 Jun 2022 23:38 +0300 |
To: |
Pavel Gulchouck 2:463/68 |
|
Subject: |
.try
|
Hello *Pavel.*
Monday 06 June 2022 23:24, Pavel Gulchouck wrote to Sergey Zabolotny:
SZ>> файлы лежат мертвым грузом, только обновляется дата модификации
SZ>> при каждой следующей прополке. слегка раздражает куча этих файлов
SZ>> в аутбаунде. это так и было задумано?
PG> Hет, было задумано, что они будут там лежать и не будут раздражать. :)
PG> Туда пишется статистика по удачным и неудачным попыткам, чтобы не
PG> долбиться постоянно на недоступные узлы. Можно было бы для этого
PG> сделать отдельную базку где-то в файлике, но раз уж есть BSO, логичнее
PG> следовать его принципам, и располагать эти файлы там же, где *lo, *ut
PG> и bsy - такая схема хранения информации выглядит более консистентной,
PG> чем разнородные базы для хранения разной информации о линках.
есть смысл держать в этих файлах информацию о неудачных попытках и по этой
информации ориентироваться как поллить узел следующий раз. но для чего нужен
такой файл если поллинг узла прошел успешно?