juan_gandhi: (Default)
[personal profile] juan_gandhi
Сегодня трахался с одной фигней. И вот код ходит куда-то на сервер, а приносит в ответ "неправильный json". Шо за json, я ничего такого не посылаю. А ошибка приходит. Стал изучать вопрос. А чо он неправильный, а там http4s берет какой-то Message[T], пытается из него сделать ByteBuffer, и обламывется, т.к. ByteBuffer оказывается пустой. Из чего он делается - Message состоит из каких-то Fragments; и вот один фрагмент пустой.

Что за фрагмент, чо он пустой, непонятно, но внутри его сидит SingleChunk, в котором сидит Chunk, и про него известно, что он пустой. Ну окей, ну покажите мне, что было-то. А не показывают. Там, конечно, цикл, но цикл навалян через рекурсию (типа так круче), а рекурсия оптимизирована через трамплин. В результате стектрейса нету, промежуточные данные не видны, Message не виден, потому что это макрос. А откуда вызвали, тоже непонятно, потому что трамплин, и весь стектрейс проебан.

И вот каким-то чудесным образом я где-то замечаю, что сервер-то послал HTTP 400. Ну правильно. И, конечно, в таком случае никакого джейсона. Но http4s на это все кладет с высокой колокольни, и начинает "парсить джейсон".

Ну на эту тему даже тест есть. Только этот тест не ловит HTTP 400, а ловит ошибку. Ага, ошибка! Ура. 

Такие дела.
 

А внутри cats, свободные монады, IO монада, завернутая в EitherT. 

А смысл?! Если HTTP 400 вы не ловите.

Что-то после раста все это смешно выглядит.

 

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718 192021
22232425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 21st, 2025 08:16 am
Powered by Dreamwidth Studios