Задать вопрос
@JustMoose
Программист. Радиолюбитель. Прокрастинатор ;)

Как поймать вредителя или почему ломается curl?

Всем привет.
Помогите не сойти с ума ;)

Есть сервер. На сервере сборка (винда, студия и всё такое). В процессе сборки запускается нинзя, который запускает питон, который запускает curl, который отправляет файлик на другой сервер.
Раз в неделю эта замечательная конструкция встаёт раком и curl начинает стабильно возвращать код 55: типа "не могу отправить файл на [другой] сервер".
Если пойти по RDP и позвать curl из консольки, то всё работает.

Эффект воcпроизводится стабильно и лечится... перезагрузкой сервера. Или EMET-а. Или касперского.
Хотя в логах у последнего всё чисто.
Визуально, curl успевает отправить несколько МБ на [другой] сервер, после чего залипает минут на 5.
Видимо, после этого у [другого] сервера срабатывает таймаут, и curl честно пишет "ну не шмогла я".

Есть идеи, что может помешать curl-у дочитать файл с диска?
Точно воспроизвести что-то типа "отключил каспера, всё заработало" не получается :(

Как это вообще диагностировать?
  • Вопрос задан
  • 438 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@younghacker
Я бы собирал диагностику сети.
Перед curl или после того как он вернул ошибку запускаете несколько программ которые записывают информацию в лог.
1) пинг себя, гейтвея, гуглднс и целевого хоста по IP. (в зависимости от сетей размещения источника и цели)
2) трейсроут до целевого хоста без лукапа имён
3) переменные окружения (кто я) списки процессов и так далее.
4) телнет (tcping) в порт целевого хоста и постороннего хоста для сравнения. Чтобы проверить не блокирует ли вас антивирус или целевой хост.
5) помотреть логи целевого сервера. Увеличить информативность логов.
6) воткнуть хост в роутер (linuxbox) на нём собрать трафик по интересующему порту (tcpdump в файл)
7) поставить на хосте виновнике https://www.winpcap.org/ и писать трафик в файл затем посмотреть в wireshark что происходит.
8) утилиты Марка Русиновича sysinternals для анализа что там происходит с сеткой, процессы, соединения порты, ошибки работы с файлами реестром и так далее.
9) попробовать отправить файл при помощи PowerShell или любой другой утилиты вместо пайтона и curl

Стабильность возврата ошибки по идее даёт возможность найти виновника. Но "войти по RDP" имеет много отличий от запуска от имени системы или таймера. Поэтому у Вас по RDP это работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект