Дебаг при подключении кастомного S3 к TaskWarrior
Если ты выполняешь план, то тебе повысят план, а не зарплату!
Пытался вчера подружить taskwarrior и s3 для синхронизации, из коробки оно вроде как только с AWS работает.
Подкинул в конфиг параметры подключение к кастомному хранилищу. Ну думаю, какая в хуй разница.
sync.backend=s3
sync.aws.region=ru-7
sync.aws.bucket=taskwarrior
sync.aws.access_key_id=aed38518013b4ab
sync.aws.secret_access_key=992570bad57
sync.aws.endpoint=s3.ru-7.storage.selcloud.ru
Проверяю task sync init
, хуй там плавал, ошибка:
unhandled error: dispatch failure: io error: error trying to connect: dns error: failed to lookup address information: Name or service not known: dns error: failed to lookup address information: Name or service not known: failed to lookup address information: Name or service not known
Мде… Всёж правильно, эндпоинт пингуется, курлится, телнетится. Описывать весь момент дебага не буду, но там конкретный такой - метод тыка был.
ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМНу раз обычный «метод тыка» не помогает, расчехляем strace
!
strace -s 200 -f -e trace=network,connect,sendto,recvfrom task sync
Что делает команда:
-s 200
— печатать до 200 байт строковых аргументов (по умолчанию strace
режет строки до 32 байт). Это важно, чтобы увидеть полный URL/hostname, который передаётся в syscalls.
-f
— следить не только за основным процессом, но и за всеми дочерними (fork
/clone
)
-e trace=network, connect, sendto, recvfrom
— ограничиваем вывод только сетевыми вызовами: socket
, connect
→ создание сокетов и подключения (TCP/UDP). sendto
/ recvfrom
→ передача данных (обычно видно DNS-запросы, HTTP-заголовки и т.д.).
И в выхлопе находим строчку: taskwarrior.s3.ru-7.amazonaws.com
.
Ну ёб твою мать! А нахуй я тогда все эти приседания с конфигом устраивал, если эта падла хуй положила и по task diagnostic
никаких ошибок не вывело.
То есть настройка sync.aws.endpoint=…
вообще не учитывается — клиент жёстко строит URL по схеме AWS.
Ну хоть проблему нашли. Strace
все же достаточно пиздатый инструмент.
Отсюда вывод: с кастомным S3 напрямую taskwarrior работать не сможет. Даже если устроить подмену хостов или сделать хак через CNAME.
А как синхронизировать-то задачи? Ооо брат, я уже написал про это отдельный пост, чуть позже закину.
Хороших тебе выходных!