TGViewer
Типичный программист Типичный программист @tproger · 78.1K subscribers
Post #14936 4.02K
Баг появлялся в 0,001% случаев. Виноваты оказались два формата одного ответа

MySQL-запрос иногда возвращал пустой результат вместо строк. В Hyperdrive ошибка возникала только с включённым кешем, а поймать её трассировкой долго не удавалось.

У Cloudflare нашлось объяснение: два узла могли пользоваться общим кешем, но записывали туда разные байты. Один сохранял ответ в формате Hyperdrive, другой — уже преобразованный под возможности клиентского драйвера.

Разница касалась пакетов EOF и OK, обозначающих границы результата. Чужая версия ответа могла выглядеть как преждевременный конец данных или приводить к зависанию.

Исправление: всегда хранить в кеше один канонический формат, а преобразование выполнять перед отправкой клиенту. После этого проблема с пустыми ответами исчезла.
  • ❤ 7
  • 👍 3
  • 😈 3
  • ☃ 2
  • 👏 2
  • 🤷‍♂ 1
  • 🔥 1
  • 🌭 1
  • 😐 1
  • 🍾 1
  • 👻 1
More from @tproger
  1. Oct 16, 2026«Повторим запрос один раз» может превратиться в восемь запросов Представьте цепочку A → B…
  2. Oct 16, 2026Историю звёзд GitHub собирали за 2500 запросов. Теперь хватает 24 Чтобы построить график п…
  3. Oct 15, 2026Зачем Figma рисует невидимый HTML рядом с холстом На холсте Figma может быть сотня слоёв,…
  4. Oct 14, 2026Python обработал 7,6 ГБ JSON за 0,12 секунды Здесь интересно, куда уходило время. Дэниел Л…
  5. Oct 14, 2026Завтра иду на GoCloud Tech 2026 Кому интересно узнать какие-нибудь подробности с мероприят…
  6. Oct 14, 2026Сортировку ускорили в 26 раз. Общий алгоритм просто знал слишком мало У Axiom разные колон…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →