🛠️ Cloudflare нашла редкий баг в компиляторе Go для ARM64 — ошибка повреждала стек и вызывала краши
Инженеры Cloudflare заметили странные fatal panics на ARM64-серверах, сопровождающиеся сообщениями вроде *“traceback did not unwind completely”*.
Ошибки указывали на то, что Go runtime не может корректно «размотать» стек после паники, а значит — стек повреждён.
После длительного расследования выяснилось: проблема была в самом компиляторе Go для ARM64.
Он иногда разбивал инструкцию на две отдельные операции:
Если между ними происходило асинхронное прерывание (async preemption), например, от планировщика или сборщика мусора, указатель стека (RSP) переходил в некорректное состояние.
В результате, когда Go runtime пытался «размотать» стек для трассировки ошибки, он сталкивался с повреждёнными адресами и завершался крашем.
Cloudflare смогла воспроизвести баг на минимальном примере: функция с большим стеком вызывала panic, и если прерывание происходило ровно между двумя частями инструкции, процесс завершался segmentation fault.
✅ Исправление уже включено в версии Go 1.23.12, 1.24.6 и 1.25.0.
Теперь компилятор избегает разбиения инструкции, используя промежуточный регистр — это гарантирует, что стек всегда корректен даже при прерывании выполнения.
Cloudflare подчёркивает: подобные ошибки встречаются крайне редко и проявляются только под высокой нагрузкой на ARM-серверах.
Но этот случай показывает, насколько сложно отлавливать низкоуровневые race condition-баги, которые могут оставаться незаметными годами, пока не сойдутся «идеальные» условия.
📌Подробнее: https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/
@Golang_google
Инженеры Cloudflare заметили странные fatal panics на ARM64-серверах, сопровождающиеся сообщениями вроде *“traceback did not unwind completely”*.
Ошибки указывали на то, что Go runtime не может корректно «размотать» стек после паники, а значит — стек повреждён.
После длительного расследования выяснилось: проблема была в самом компиляторе Go для ARM64.
Он иногда разбивал инструкцию на две отдельные операции:
ADD $framesize, RSP, RSP
Если между ними происходило асинхронное прерывание (async preemption), например, от планировщика или сборщика мусора, указатель стека (RSP) переходил в некорректное состояние.
В результате, когда Go runtime пытался «размотать» стек для трассировки ошибки, он сталкивался с повреждёнными адресами и завершался крашем.
Cloudflare смогла воспроизвести баг на минимальном примере: функция с большим стеком вызывала panic, и если прерывание происходило ровно между двумя частями инструкции, процесс завершался segmentation fault.
✅ Исправление уже включено в версии Go 1.23.12, 1.24.6 и 1.25.0.
Теперь компилятор избегает разбиения инструкции, используя промежуточный регистр — это гарантирует, что стек всегда корректен даже при прерывании выполнения.
Cloudflare подчёркивает: подобные ошибки встречаются крайне редко и проявляются только под высокой нагрузкой на ARM-серверах.
Но этот случай показывает, насколько сложно отлавливать низкоуровневые race condition-баги, которые могут оставаться незаметными годами, пока не сойдутся «идеальные» условия.
📌Подробнее: https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/
@Golang_google
1👍60🔥27❤12🥰2
Рынку нужны айтишники. Но, давайте честно, не все.
Самое грустное — смотреть, как резюме реально стоящих кандидатов отправляются в корзину под столом HR и грустно гниют в анналах hh, потому что их резюме выглядит как «Делал LLM, делал пайплайны, вывел в прод сайт про рост моркови». Как это помогло бизнесу, непонятно.
Что обычно не так с этими резюме:
— Проекты выглядят как описание обязанностей типа «работал работу, пил латте из кофемашины»
— Результаты отсутствуют или звучат так, как будто вы разрабатывали весь Яндекс с нуля
— Непонятно, в чём вы реально хороши, кроме как в стрессоустойчивости и коммуникабельности на основе собственных ощущений
— Оно не продает вас. Какой смысл в том, что вы тащили в прод сумасшедшие продукты и инженерили на уровне боженьки, если вы не можете ответить бизнесу четко на вопрос, зачем вы нужны.
Отдельная проблема — защита этого резюме на собесе. За классных спецов компании готовы драться, но никто не будет угадывать, какой вы классный, если вы не научитесь себя продавать.
Самостоятельно это сделать сложно, поэтому я советую обратить внимание на Карьерный Цех — это топовые карьерные консультанты, которые уже съели собаку на том, чтобы учить крутых ребят продавать себя бизнесу и уходить на хорошие деньги и позиции.
В программе карьерной поддержки Цеха:
— стратегические консультации с HR и хард-экспертами;
— создание резюме, на которое клюют рекрутеры и пишут первыми;
— мок-интервью, чтобы убрать все затыки;
— втягивают в комьюнити, которое реально решает на рынке.
Если вы давно хотели навести порядок в профессиональной самооценке — сходите на бесплатную консультацию.
Ребята уже там дадут первые конкретные рекомендации.
Самое грустное — смотреть, как резюме реально стоящих кандидатов отправляются в корзину под столом HR и грустно гниют в анналах hh, потому что их резюме выглядит как «Делал LLM, делал пайплайны, вывел в прод сайт про рост моркови». Как это помогло бизнесу, непонятно.
Что обычно не так с этими резюме:
— Проекты выглядят как описание обязанностей типа «работал работу, пил латте из кофемашины»
— Результаты отсутствуют или звучат так, как будто вы разрабатывали весь Яндекс с нуля
— Непонятно, в чём вы реально хороши, кроме как в стрессоустойчивости и коммуникабельности на основе собственных ощущений
— Оно не продает вас. Какой смысл в том, что вы тащили в прод сумасшедшие продукты и инженерили на уровне боженьки, если вы не можете ответить бизнесу четко на вопрос, зачем вы нужны.
Отдельная проблема — защита этого резюме на собесе. За классных спецов компании готовы драться, но никто не будет угадывать, какой вы классный, если вы не научитесь себя продавать.
Самостоятельно это сделать сложно, поэтому я советую обратить внимание на Карьерный Цех — это топовые карьерные консультанты, которые уже съели собаку на том, чтобы учить крутых ребят продавать себя бизнесу и уходить на хорошие деньги и позиции.
В программе карьерной поддержки Цеха:
— стратегические консультации с HR и хард-экспертами;
— создание резюме, на которое клюют рекрутеры и пишут первыми;
— мок-интервью, чтобы убрать все затыки;
— втягивают в комьюнити, которое реально решает на рынке.
Если вы давно хотели навести порядок в профессиональной самооценке — сходите на бесплатную консультацию.
Ребята уже там дадут первые конкретные рекомендации.
😁34🔥7🤬7❤6👍4🤯3🥰2😱2🤔1
GoCraft - это мощный генератор бэкенда на Go, который позволяет быстро создавать современные микросервисы с использованием предпочтительных фреймворков и баз данных. Он обеспечивает создание полностью структурированных приложений с учетом лучших практик и встроенной безопасности.
- Быстрое создание готовых к производству бэкендов
- Модульная архитектура с возможностью выбора функций
- Встроенные механизмы безопасности и валидации
- Полная документация и примеры использования
- Поддержка множества технологий и интеграций
#go
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31🔥11👍8🤔8😁6
Resterm — это клиент для работы с REST API в терминале, предлагающий удобный интерфейс и мощные функции. Он поддерживает работу с .http и .rest файлами, а также позволяет выполнять запросы прямо из редактора. Включает поддержку аутентификации, переменных и тестирования запросов с помощью JavaScript.
🚀Основные моменты:
- Модальный редактор с поддержкой Vim-стиля
- Встроенные запросы без необходимости в файлах
- Поддержка gRPC и GraphQL
- Сохранение сессий и истории запросов
- Настраиваемый транспорт и параметры окружения
📌 GitHub: https://github.com/unkn0wn-root/resterm
#go
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤8👍7🥰1😁1
🚀 GoMLX: ML Framework for Go
GoMLX — это мощный фреймворк для машинного обучения на Go, предлагающий удобные библиотеки и инструменты для работы с ML. Он поддерживает дифференцируемые операторы и предоставляет средства для визуализации метрик в процессе обучения. GoMLX работает на различных платформах, включая браузеры с помощью WASM.
🚀 Основные моменты:
- Полноценная поддержка машинного обучения с использованием Go.
- Оптимизированный движок на базе OpenXLA для быстрой компиляции.
- Простота в использовании и расширяемости для экспериментов с ML.
- Поддержка различных известных компонентов ML.
- Документация и полезные сообщения об ошибках.
📌 GitHub: https://github.com/gomlx/gomlx
@golang_google
GoMLX — это мощный фреймворк для машинного обучения на Go, предлагающий удобные библиотеки и инструменты для работы с ML. Он поддерживает дифференцируемые операторы и предоставляет средства для визуализации метрик в процессе обучения. GoMLX работает на различных платформах, включая браузеры с помощью WASM.
🚀 Основные моменты:
- Полноценная поддержка машинного обучения с использованием Go.
- Оптимизированный движок на базе OpenXLA для быстрой компиляции.
- Простота в использовании и расширяемости для экспериментов с ML.
- Поддержка различных известных компонентов ML.
- Документация и полезные сообщения об ошибках.
📌 GitHub: https://github.com/gomlx/gomlx
@golang_google
👍18❤8🔥8🤯3
16 октября пройдёт совместный митап 2ГИС и Lamoda Tech — офлайн и онлайн. Доклады, факапы, еда, пиво и люди, которые говорят на одном языке — Go.
📍 Москва, Новоданиловская наб., 12, офис 2ГИС, 14 этаж
🕖 19:00 — 23:00
В программе:
— Дмитрий Буров, Lamoda Tech: «За кулисами асинхронности: корутины, горутины и правда между ними»
— Павел Шнель, 2ГИС: «Интеграции под нагрузкой: практики и последствия решений»
— Разгоны факапов от спикеров и участников. За лучшие факапы — фирменный мерч.
После — афтерпати и нетворкинг. Скучно не будет!
👉 Регистрация
Реклама. ООО "ДУБЛЬГИС" ИНН: 5405276278 Erid: 2RanymgKstm
📍 Москва, Новоданиловская наб., 12, офис 2ГИС, 14 этаж
🕖 19:00 — 23:00
В программе:
— Дмитрий Буров, Lamoda Tech: «За кулисами асинхронности: корутины, горутины и правда между ними»
— Павел Шнель, 2ГИС: «Интеграции под нагрузкой: практики и последствия решений»
— Разгоны факапов от спикеров и участников. За лучшие факапы — фирменный мерч.
После — афтерпати и нетворкинг. Скучно не будет!
👉 Регистрация
Реклама. ООО "ДУБЛЬГИС" ИНН: 5405276278 Erid: 2RanymgKstm
🔥8❤1🤬1
🚀 Высокопроизводительный движок полнотекстового поиска на Go
Blaze — это мощный движок для быстрого полнотекстового поиска с использованием инвертированных индексов. Он идеально подходит для приложений, которые требуют эффективного поиска по текстовым документам без зависимости от внешних поисковых систем.
🚀 Основные моменты:
- Инвертированный индекс для мгновенного поиска
- Поддержка булевых запросов и фразового поиска
- Алгоритм BM25 для оценки релевантности
- Безопасный для потоков с поддержкой конкурентного индексирования
- Компактное бинарное хранилище для данных
📌 GitHub: https://github.com/wizenheimer/blaze
Blaze — это мощный движок для быстрого полнотекстового поиска с использованием инвертированных индексов. Он идеально подходит для приложений, которые требуют эффективного поиска по текстовым документам без зависимости от внешних поисковых систем.
🚀 Основные моменты:
- Инвертированный индекс для мгновенного поиска
- Поддержка булевых запросов и фразового поиска
- Алгоритм BM25 для оценки релевантности
- Безопасный для потоков с поддержкой конкурентного индексирования
- Компактное бинарное хранилище для данных
📌 GitHub: https://github.com/wizenheimer/blaze
👍14🔥11❤8
1 ноября пройдёт Я.Субботник по Go — митап для разработчиков и энтузиастов Go. Встречаемся в офисе Яндекса в Москве и онлайн, чтобы в комфортной атмосфере обсудить, что волнует комьюнити: от недавних релизов и инструментов до архитектурных решений и производительности сервисов 🚀
Игорь Панасюк, разработчик бэкенда Плюса и Финтеха, разберёт, какие подходы применяются в управлении памятью и как устроен garbage collector в Go. Александр Никитин, старший разработчик Яндекс Маркета, расскажет про трассировку логики с помощью Debug Tree — удобного способа логирования для поиска багов в сложной кодовой базе прямо в продакшене. И это не всё: в программе выступления старшего разработчика бэкенда Yandex Cloud Александра Демиденко и СТО Яндекс Игр Степана Пестерникова.
Помимо докладов участников ждут круглые столы про использование AI-инструментов, highload и нетипичное применение Golang.
Узнать больше об ивенте и зарегистрироваться тут
Игорь Панасюк, разработчик бэкенда Плюса и Финтеха, разберёт, какие подходы применяются в управлении памятью и как устроен garbage collector в Go. Александр Никитин, старший разработчик Яндекс Маркета, расскажет про трассировку логики с помощью Debug Tree — удобного способа логирования для поиска багов в сложной кодовой базе прямо в продакшене. И это не всё: в программе выступления старшего разработчика бэкенда Yandex Cloud Александра Демиденко и СТО Яндекс Игр Степана Пестерникова.
Помимо докладов участников ждут круглые столы про использование AI-инструментов, highload и нетипичное применение Golang.
Узнать больше об ивенте и зарегистрироваться тут
😁5❤4👍2🔥2
📊 Удобный мониторинг контейнеров с ctop
🚀Основные моменты:
- Реальное время отображения метрик для нескольких контейнеров
- Поддержка Docker и runC, с планами на расширение
- Удобный интерфейс с возможностью фильтрации и сортировки
- Легкая настройка и сохранение конфигураций
📌 GitHub: https://github.com/bcicen/ctop
#go
ctop
— это интерфейс для отображения метрик контейнеров в реальном времени. Он поддерживает Docker и runC, предлагая как общий, так и детализированный просмотр контейнеров. Идеально подходит для быстрого анализа состояния ваших контейнеров.🚀Основные моменты:
- Реальное время отображения метрик для нескольких контейнеров
- Поддержка Docker и runC, с планами на расширение
- Удобный интерфейс с возможностью фильтрации и сортировки
- Легкая настройка и сохранение конфигураций
📌 GitHub: https://github.com/bcicen/ctop
#go
GitHub
GitHub - bcicen/ctop: Top-like interface for container metrics
Top-like interface for container metrics. Contribute to bcicen/ctop development by creating an account on GitHub.
👍7❤5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Создавайте технологии, которые меняют мир
В команду Яндекса нужны бэкенд-разработчики с опытом от 3 лет на C++, Python, Java/Kotlin, Go — строить полезные сервисы для миллионов пользователей.
Как получить офер за неделю?
• До 12 ноября оставить заявку на участие и пройти предварительный этап.
• 15–16 ноября решить задачи на технических секциях.
• 17–21 ноября прийти на финальную встречу.
Присоединяйтесь к одной из команд Яндекса, чтобы усилить нашу инженерную культуру и строить новую технологическую реальность.
Читайте подробности и оставляйте заявку на сайте.
Реклама. ООО "Яндекс". ИНН 7736207543
В команду Яндекса нужны бэкенд-разработчики с опытом от 3 лет на C++, Python, Java/Kotlin, Go — строить полезные сервисы для миллионов пользователей.
Как получить офер за неделю?
• До 12 ноября оставить заявку на участие и пройти предварительный этап.
• 15–16 ноября решить задачи на технических секциях.
• 17–21 ноября прийти на финальную встречу.
Присоединяйтесь к одной из команд Яндекса, чтобы усилить нашу инженерную культуру и строить новую технологическую реальность.
Читайте подробности и оставляйте заявку на сайте.
Реклама. ООО "Яндекс". ИНН 7736207543
🤬9❤8👍6🔥4😁3
Команда Go выпустила минорные версии 1.25.3 и 1.24.9, чтобы устранить проблемы, появившиеся после предыдущего патча (1.25.2 и 1.24.8).
Тогда была введена слишком строгая проверка X.509-сертификатов, из-за чего часть приложений перестала работать.
Теперь эти ограничения удалены, но исправление уязвимости сохранено.
Разработчики приносят извинения и рекомендуют всем обновиться.
Подробнее: go.dev/doc/devel/release#go1.25.3
📡 Анонс: https://groups.google.com/g/golang-announce/c/YEyj6FUNbik/m/_SDlIvxuCAAJ
⬇️ Скачать: https://go.dev/dl/#go1.25.3
👉 Зеркало в Max
@Golang_google
#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤8🔥6😁4🤬1
«ИИ — просто хайп, который скоро пройдёт»
Скептики ошибаются: инвестиции в генеративный ИИ за год удвоились и достигли $56 млрд, в России превысили ₽300 млрд. И такой интерес — не временный всплеск, а устойчивый тренд.
В бесконечном потоке новостей об ИИ ключевое — опираться на аналитику экспертов. В авторском Telegram-канале Марии Романцовой можно найти разборы трендов и рисков от профессионала с 17-летним опытом на рынке капитала.
Мария работает в «Финаме», — одной из крупнейших инвестиционных компаний России. Фокусируется на работе с технологическими компаниями и знает систему изнутри.
Активно следит за тем, куда движется рынок искусственного интеллекта и робототехники, а так же разбирает источники финасирования высокотехнологичных компаний.
Читайте больше в канале Мария Романцова: Рынки капитала и ИИ
Скептики ошибаются: инвестиции в генеративный ИИ за год удвоились и достигли $56 млрд, в России превысили ₽300 млрд. И такой интерес — не временный всплеск, а устойчивый тренд.
В бесконечном потоке новостей об ИИ ключевое — опираться на аналитику экспертов. В авторском Telegram-канале Марии Романцовой можно найти разборы трендов и рисков от профессионала с 17-летним опытом на рынке капитала.
Мария работает в «Финаме», — одной из крупнейших инвестиционных компаний России. Фокусируется на работе с технологическими компаниями и знает систему изнутри.
Активно следит за тем, куда движется рынок искусственного интеллекта и робототехники, а так же разбирает источники финасирования высокотехнологичных компаний.
Читайте больше в канале Мария Романцова: Рынки капитала и ИИ
😁18🤬8🤔3😱3🤯2
🧩 Beads: Умная система памяти для ИИ-агентов, генерирующих код.
Beads - это легкая система памяти для кодирующих агентов, использующая графовую структуру для отслеживания задач.
Она связывает ваши проблемы, позволяя агентам эффективно управлять сложными потоками задач и избегать потери контекста.
🚀 Основные моменты:
- Легкая интеграция в проекты с минимальными настройками
- Отслеживание зависимостей и автоматическое выявление готовой работы
- Поддержка работы агентов на нескольких машинах с синхронизацией через git
- Полный аудит изменений и визуализация зависимостей
📌 GitHub: https://github.com/steveyegge/beads
#go #golang #github
Beads - это легкая система памяти для кодирующих агентов, использующая графовую структуру для отслеживания задач.
Она связывает ваши проблемы, позволяя агентам эффективно управлять сложными потоками задач и избегать потери контекста.
🚀 Основные моменты:
- Легкая интеграция в проекты с минимальными настройками
- Отслеживание зависимостей и автоматическое выявление готовой работы
- Поддержка работы агентов на нескольких машинах с синхронизацией через git
- Полный аудит изменений и визуализация зависимостей
📌 GitHub: https://github.com/steveyegge/beads
#go #golang #github
1❤10👍3🥰2
Highload буткемп: Производительность и Масштабирование
Приглашаем на курс для прокачки навыков архитектора, в рамках которого:
🤩 изучите ключевые хайлоад-паттерны и получите навыки проектирования систем с миллионной аудиторией (балансировка, масштабирование, высокая доступность, шардинг, CAP/PACELS, транзакционные очереди и многое другое);
🤩 разберётесь в тонкостях шардинга и кластеризации баз данных, познакомившись на практике с наиболее популярными подходами (Redis Cluster, PostgreSQL+SPQR, CockroachDB);
🤩 получите в полное управление собственную виртуальную машину (8 CPU, 12 GB RAM, 100 GB NVMe, Ubuntu), научитесь администрированию Linux-сервера и сможете попрактиковаться на своём «родном» стеке (Golang, Java, C#/.NET, Python, PHP, Ruby, Node.js — стек почти любой);
🤩 освоите нагрузочное тестирование, мониторинг и настройку производительности (htop, Grafana, Prometheus, wrkX и др.), научитесь планированию мощностей для своих сервисов.
Живые онлайн-сессии и практические домашние задания, в ходе которых вы прокачаетесь в вопросах хайлоада, инфраструктуры и переосмыслите архитектурные подходы в более прагматичном, экономичном и инженерном ключе.
🗓 Старт потока 22 октября.
Кто мы: R&D-центр Devhands, основатель и автор курса Алексей Рыбак, ex-СТО Badoo и Yum! Brands, член программного комитета Highload.
🤩 Изучайте программу и записывайтесь.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqwi1SP8
Приглашаем на курс для прокачки навыков архитектора, в рамках которого:
Живые онлайн-сессии и практические домашние задания, в ходе которых вы прокачаетесь в вопросах хайлоада, инфраструктуры и переосмыслите архитектурные подходы в более прагматичном, экономичном и инженерном ключе.
Кто мы: R&D-центр Devhands, основатель и автор курса Алексей Рыбак, ex-СТО Badoo и Yum! Brands, член программного комитета Highload.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqwi1SP8
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🔥3😁1
Что умеет:
- Деплой прямо из GitHub - пуш → автозапуск;
- Веб-интерфейс с файловым менеджером, мониторингом и терминалом;
- SSL-сертификаты автоматически, без ручной настройки;
- Поддержка Caddy как обратного прокси;
- REST API и CLI для кастомных сценариев.
curl -sSL https://install.nixopus.com | bash"
Стек: Go + TypeScript, архитектура all-in-one: фронт, API и менеджер ресурсов в одной системе.
▪ Github: https://github.com/raghavyuva/nixopus
@Golang_google
#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍8🥰3😁1
16 октября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬10👍6🔥5😁2
📦 Что умеет:
- Создание observable-потоков и подписчиков (`Observer`)
- Операторы
Map
, Filter
, Combine
, ErrorHandling
- Поддержка асинхронных операций, таймеров, контекста
- Плагины для HTTP, JSON, логов, файлов и др.
🧩 Пример:
observable := ro.Pipe(
ro.RangeWithInterval(0, 10, 1*time.Second),
ro.Filter(func(x int) bool { return x % 2 == 0 }),
ro.Map(func(x int) string { return fmt.Sprintf("even-%d", x) }),
)
observable.Subscribe(ro.OnNext(func(s string) {
fmt.Println(s)
}))
👉Github: https://github.com/samber/ro
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13❤6👍5🤬3