Size: a a a

2020 February 26

G

Gopneg in pro.net
Ilya Chernoudov
к ним коментов не написать
надо проголосовать! https://github.com/dotnet/csharplang/issues/145
источник

АШ

Александр Шушанидзе in pro.net
кто-нибудь знает, куда надо обращать внимание, если столкнулся с возможным дедлоком в доттрейсе?
Ситуация такая: фреймворк, консольное приложение(виндоус сервис), запускает таски по таймеру
одна из таких тасок никогда не заканчивается, а зарепродьюсить не выходит. Взял дамп из доттрейса, но куда смотреть не особо понимаю
Единственное за что зацепиться могу - возможно дедлок произошел из-за async методов, но не особо понимаю как это могло произойти, если это консольное приложение и контекста синхронизации в нем не должно быть
Если я правильно понимаю как работает доттрейс - с момента, отмеченного на таймлайне, запустился метод, который справа, потом в итоге там появился task.whenall и он занял 36 секунд, хотя на таймлайне никакого вычисления нет - значит, проблема где-то в этом calltree?
источник

IC

Ilya Chernoudov in pro.net
Александр Шушанидзе
кто-нибудь знает, куда надо обращать внимание, если столкнулся с возможным дедлоком в доттрейсе?
Ситуация такая: фреймворк, консольное приложение(виндоус сервис), запускает таски по таймеру
одна из таких тасок никогда не заканчивается, а зарепродьюсить не выходит. Взял дамп из доттрейса, но куда смотреть не особо понимаю
Единственное за что зацепиться могу - возможно дедлок произошел из-за async методов, но не особо понимаю как это могло произойти, если это консольное приложение и контекста синхронизации в нем не должно быть
Если я правильно понимаю как работает доттрейс - с момента, отмеченного на таймлайне, запустился метод, который справа, потом в итоге там появился task.whenall и он занял 36 секунд, хотя на таймлайне никакого вычисления нет - значит, проблема где-то в этом calltree?
А какая полезная нагрузка у тасок?
источник

IC

Ilya Chernoudov in pro.net
Ну там запрос куда
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
Ну там запрос куда
конкретно у той, что не может закончиться - лезет во внешнюю апишку, через webclient.
источник

IC

Ilya Chernoudov in pro.net
Александр Шушанидзе
конкретно у той, что не может закончиться - лезет во внешнюю апишку, через webclient.
Дак может просто не приходит ответ за указанное время?
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
Дак может просто не приходит ответ за указанное время?
так она часами может висеть, и у вебклиента есть таймаут в 10 минут, кажется
источник

IC

Ilya Chernoudov in pro.net
Александр Шушанидзе
так она часами может висеть, и у вебклиента есть таймаут в 10 минут, кажется
Веб клиент блеа
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
Веб клиент блеа
щито поделать
источник

IC

Ilya Chernoudov in pro.net
Может кто то тайм-аут подшаманил?
источник

IC

Ilya Chernoudov in pro.net
Попробуй cancellation token передать
источник

IC

Ilya Chernoudov in pro.net
С ручным таймаутом
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
Попробуй cancellation token передать
для этого надо зарелизиться. Релизы у нас очень слоупочные и тыкаться вслепую не хотелось бы. Зарепродьюсить не могу - дамп был снят с прода
источник

АШ

Александр Шушанидзе in pro.net
сейчас попробовал сделать классический асинк-дедлок в пустом веб приложении и посмотреть что будет в доттрейсе, и кажется по тому, что там есть, увидеть дедлок не выйдет?...
источник

IC

Ilya Chernoudov in pro.net
Александр Шушанидзе
для этого надо зарелизиться. Релизы у нас очень слоупочные и тыкаться вслепую не хотелось бы. Зарепродьюсить не могу - дамп был снят с прода
А ты логи сервера может посмотреть?
источник

IC

Ilya Chernoudov in pro.net
Куда обращается код
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
А ты логи сервера может посмотреть?
на момент чего? У таски в базе должен статус поменяться, а она in progress, никаких эксепшенов не падает
источник

IC

Ilya Chernoudov in pro.net
Александр Шушанидзе
на момент чего? У таски в базе должен статус поменяться, а она in progress, никаких эксепшенов не падает
Ну у тебя запрос отправился, но не завершился, а как этот запрос выглядит чо стороны сервера?
источник

АШ

Александр Шушанидзе in pro.net
Ilya Chernoudov
Ну у тебя запрос отправился, но не завершился, а как этот запрос выглядит чо стороны сервера?
со стороны апишки у меня доступа нет. И я не уверен, что проблема именно в webclient, таска в цикле батчами процессит энтити, и вот где-то в середине иногда останавливается, но последний выполненный батч обрабатывается нормально
источник

АШ

Александр Шушанидзе in pro.net
мне бы каких-нибудь способов увидеть именно дедлок. или доказать, что это не дедлок, но я не знаю как
источник