You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

48 lines
4.4 KiB

Thu Jan 15 2026 05:13: Обновление uasync для поддержки инстансов
- Обновлен модуль u_async для поддержки инстансов (структура uasync_s, функции с суффиксом _instance)
- Сохранена обратная совместимость: глобальные функции используют глобальный инстанс
- Добавлены поля uasync_t* ua в структуры conn_handle, epkt, ll_queue
- Обновлены вызовы uasync_set_timeout и uasync_cancel_timeout на инстансные версии в connection.c, etcp.c, ll_queue.c
- Обновлен mock simple_uasync.c для поддержки нового API
- Исправлена ошибка отсутствия поля stats в conn_handle (добавлено поле stats)
Thu Jan 15 2026 12:24: Настройка NTP и таймзоны GMT+3
- Установлена таймзона Etc/GMT-3
- Включена синхронизация NTP через systemd-timesyncd
- Проверена работа автозапуска NTP сервиса
Thu Jan 15 2026 14:30: Удаление глобального инстанса uasync
- Убраны глобальные функции uasync_init, uasync_get_global_instance
- Переименованы инстансные функции (убраны суффиксы _instance)
- Обновлены ll_queue, connection, etcp, pkt_normalizer для передачи uasync_t*
- Основной код компилируется, тесты требуют доработки
Thu Jan 15 2026 18:45: Завершение рефакторинга uasync на инстансную архитектуру
- Исправлены оставшиеся вызовы uasync_poll в test_utun_integration.c
- Обновлен основной приложение utun.c для использования instance-based API:
* Добавлено поле uasync_t* ua в utun_state_t
* Создание и уничтожение uasync инстанса в main и cleanup
* Передача инстанса в conn_create
* Добавлен вызов uasync_poll в event_loop
- Все тесты компилируются и проходят (кроме интеграционного, требующего root)
- Архитектура глобального инстанса полностью устранена
Thu Jan 15 2026 19:30: Исправление double-free в uasync_destroy
- Добавлена отладочная печать в u_async.c и etcp.c для отслеживания таймеров
- Обнаружена проблема с ленивым удалением таймеров в timeout_heap
- Внесены изменения в uasync_cancel_timeout и uasync_destroy для избежания double-free
- Тест test_new_features все еще падает из-за double-free, требуется дальнейшее исследование
Thu Jan 15 2026 19:45: Полное исправление double-free в uasync
- Изменена логика uasync_cancel_timeout: не освобождает память, только помечает callback как NULL
- Обновлены process_timeouts и uasync_destroy для корректного освобождения памяти
- Убраны отладочные печати из рабочего кода
- Все тесты проходят успешно, включая test_new_features
Thu Jan 15 2026 21:30: Добавление детектора утечек памяти и исправление подсчета освобождений
- Добавлены счетчики аллокаций и освобождений таймеров и сокетов в uasync_t
- Добавлен callback в timeout_heap для обновления счетчиков при освобождении отмененных таймеров
- Добавлена проверка утечек в uasync_destroy с аварийным завершением при обнаружении неосвобожденных ресурсов после очистки
- Исправлен подсчет освобождений: теперь все таймеры учитываются правильно
- Все тесты проходят, утечки не обнаруживаются после очистки