Да, забыл добавить, когда этот баг случился, новые i2cp сессии не будут создаваться.
>А если только одна сессия, то завершается нормально?
>И еще вопрос: там один тред или несколько? Параметр i2cp.singlethread в конфиге.
У меня он не был задан в конфиге. i2pd на виртуалке с одним ядром. BiglyBT создаёт минимум 2 сессии, но вторую с большой задержкой. Тогда постараюсь подловить момент, когда ровно одна сессия...
i2pd 2.53.0 с сегодняшним фиксом. Роутер только что запущен, запускаю BiglyBT, жду появления нужного количества сессий, создания туннелей, и выключаю BiglyBT...
i2cp.singlethread=true и 1 сессия. Результат: 100% cpu, единственная сессия исчезла, новые сессии не создаются.
i2cp.singlethread=true и 2 сессии. Результат: 100% cpu, осталась 1 из 2 сессий, новые сессии не создаются.
i2cp.singlethread=false и 1 сессия. Результат: 0% cpu, единственная сессия исчезла, ошибку "I2CP: Can't receive header" видел, новые сессии создаются и работают.
i2cp.singlethread=false и 2 сессии. Результат: Результат: 0% cpu, обе сессии исчезли, новые сессии создаются и работают.
Я подозреваю, что ошибка "I2CP: Can't receive header" была во всех случаях, но я не успел её заметить. Потом проверил, когда во второй раз выключал BiglyBT с двумя сессиями, два раза появилась эта ошибка.
Вывод: нужно ставить i2cp.singlethread=false.
orignal, а дефолтное значение этого флага менялось в новой версии? У меня в конфиге его не было. В конфиге, который лежит в репозитории в contrib, тоже его нет. Разве что в доках можно узнать о его существовании.
Кстати, когда с i2cp.singlethread=false во второй раз выключил BiglyBT, стала проскакивать такая ошибка: error - Router: Runtime exception: cannot create std::vector larget than max_size()
Где-то в течение минуты она прекратила появляться.