The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Сбой в Cloudflare из-за проблемы в коде на языке Lua

06.12.2025 09:44

Спустя две недели с момента прошлого глобального сбоя сеть доставки контента Cloudflare, обслуживающая около 20% всего мирового web-трафика, вчера частично оказалась недоступной на 25 минут. Во время инцидента примерно треть запросов через Cloudflare завершалось возвращением пустой страницы с кодом ошибки 500. На этот раз, причиной стала остававшаяся много лет незамеченной проблема в коде на языке Lua, применяемом в системе фильтрации трафика WAF (Web Application Firewall) для блокирования вредоносных запросов.

Чтобы защитить системы клиентов от критической уязвимости (CVE-2025-55182) в серверных компонентах фреймворка React, после появления в публичном доступе эксплоита, инженеры Cloudflare реализовали защиту на уровне WAF. С внедрением защиты не всё пошло гладко: в процессе внедрения был увеличен размер буфера для проверки трафика на прокси-серверах, но оказалось, что применяемый для тестирования WAF инструментарий не поддерживает выставленный размер буфера. Так как данный инструментарий не влияет на трафик, было решено отключить его.

Для отключения инженеры воспользовались подсистемой "killswitch" для быстрого изменения конфигурации и отключения отдельных Lua-обработчиков на прокси-серверах без замены правил. Подобный метод отключения правил периодически применяется для быстрого устранения ошибок и приводит к пропуску выполнения части Lua-кода. При этом инженеры не учли, что для вызова отключаемого тестового инструментария в Lua-правилах применялся метод "execute", запускающий дополнительный набор правил. Ранее режим "killswitch" никогда не применялся с правилами, имеющими вызов "execute", и данная комбинация не тестировалась.

Применение "killswitch" привело к тому, что код с определением дополнительного тестового набора правил был отключён, но вызов этого набора правил через "execute" остался. В коде не было дополнительных проверок существования объекта и подразумевалось, что при наличии в наборе правил действия "execute", объект "rule_result.execute" обязательно существует. В итоге, произошла попытка выполнения метода "execute" для неинициализированного объекта, которая привела к аварийному завершению обработчика с ошибкой "attempt to index field 'execute' (a nil value)".


   if rule_result.action == "execute" then
     rule_result.execute.results =  ruleset_results[tonumber(rule_result.execute.results_index)]
   end


  1. Главная ссылка к новости (https://blog.cloudflare.com/5-...)
  2. OpenNews: Многочасовой сбой Cloudflare оказался результатом некорректной обработки ошибок
  3. OpenNews: По статистике Cloudflare 6.8% интернет-трафика является потенциально мусорным
  4. OpenNews: Компания Cloudflare раскрыла сведения о взломе одного из своих серверов
  5. OpenNews: Уязвимость в cdnjs, позволившая выполнить код на серверах Cloudflare
  6. OpenNews: Cloudflare, Tesla многие другие компании скомпрометированы через камеры наблюдения Verkada
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64387-cloudflare
Ключевые слова: cloudflare, lua
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (150) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:45, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    ну хоть 25 минут только.
     
     
  • 2.18, Аноним (18), 11:40, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Что для нас вообще не проблема:
    https://blog.cloudflare.com/russian-internet-users-are-unable-to-access-the-op
     
     
  • 3.40, Аноним (40), 12:46, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > причиной стала остававшаяся много лет незамеченной проблема в коде на языке Lua, применяемом в системе фильтрации трафика

    Тут явно написано, что клаудьфляра блокирует посетителей.

     
     
  • 4.59, Васян (?), 13:45, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    -- - - - что клаудьфляра блокирует посетителей.

    Да не, не посетителей, а мимо проходящих или бегающих там на всяких бравзерах типа фирифокса и подобных, использующих их сервисы и нитолька.

     
     
  • 5.76, Аноним (76), 14:47, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Во, а я думал, это опенет от меня бегает. Ну, думаю, они же забанили уже полинтернета из-за меня. А оно вона как.
     
     
  • 6.121, ХрюХрю (?), 18:01, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это я всех блокирую!
     
  • 4.135, Аноним (135), 18:38, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Доступ к Google с одного IP‑адреса может быть временно ограничен или заблокирован и ограничивает при подозрительной активности - слишком большом количестве или частоте запросов с этого IP,  NAT и т.д. С Cloudflare так же, только с возможностью подтверждения, что это человек хочет посетить сайт, а значит пропустит на сайт. IPv6 это решает при условии каждому подключению к интернету свой IPv6 адрес и доступ осуществляется напрямую, без NAT и т. д.
     
     
  • 5.136, Аноним (135), 18:41, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    и ограничивает или времено блоктрует
     
  • 5.207, Аноним (207), 11:17, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы забываете одну вещь. Этот ваш v6 - это ж метка, как номер на руке в недалёком прошлом.
     
     
  • 6.220, aanon (?), 16:53, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Фальгашапочник нажми большую круглую кнопку
     
     
  • 7.222, Аноним (222), 17:12, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Фальгашапочник нажми" не понял, если заинтересован чтобы я понял переведи.
     
     
  • 8.223, Аноним (222), 17:20, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я другой аноним не заметил что ответ н это Вы забываете одну вещь Этот ваш v6 ... текст свёрнут, показать
     
  • 8.225, aanon (?), 17:25, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сегодня ты решаешь какая метка будет на твоей руке... текст свёрнут, показать
     
  • 6.224, Аноним (222), 17:25, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    знаю это одна из его функций - можно использовать как модификационный номер.
     
     
  • 7.226, Аноним (222), 17:31, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "знаю это одна из его функций - можно использовать как модификационный номер" не так, а так : знаю это одна из его функций - можно использовать как индификационный номер.
     
  • 3.163, Аноним (40), 20:01, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > наблюдались проблемы с работой Canva, Zoom, Slack и Downdetector

    Downdetector :)

     

  • 1.2, Аноним (1), 10:46, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Надо lua на rust переписать, правда это не поможет.
     
     
  • 2.6, Аноним (6), 11:03, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.

    https://blog.cloudflare.com/5-december-2025-outage/

     
     
  • 3.14, Аноним (14), 11:32, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И все равно у клаудфлёра будет падучка.
     
  • 3.24, 12yoexpert (ok), 11:56, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ну то есть они неправильно переписали. почитай новость, там в криворукости дело
     
     
  • 4.56, Аноним (14), 13:24, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вы как, ни садитесь, в музыканты не годитесь.
     
  • 3.250, Аноним (250), 01:12, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    То есть если бы они не маялись дурью, переписывая на Раст, а вместо этого фиксили баги, то не случилось бы ни прошлого недавнего сбоя, ни этого.
     
  • 2.104, Аноним (104), 16:22, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    На Haskell, как это сделали в Лицекниге.
    https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/
     
  • 2.219, Вася (??), 16:03, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вам поможет только эвтаназия.
     

  • 1.4, Аноним (4), 10:52, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Вот она, типичная проблема всех корпов, а именно - поналепят критикал мишн проектов со стеком аля "сборная солянка" из технологий, а потом ловят сбои из за малюсенькой детали.
    Так что надо всю инфраструктуру писать на одном языке, но это что то нереальное, дешевле же нафигачить кода из разных готовых модулей, и неважно что это франкенштейн.
     
     
  • 2.7, Аноним (7), 11:08, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +21 +/
    Вот ты-то точно сделал бы лучше.
     
     
  • 3.201, Shantikov (?), 08:14, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так это как бы общеизвестная проблема всех больших инфраструктур, но она именно из-за того, что нельзя просто так взять и переписать всё заново (т.е. нерешаема).
     
  • 3.251, Аноним (250), 01:13, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая историю сбоев Cloudflare за последние недели, даже старательный второкурсник сделал бы лучше.
     
  • 2.9, Аноним (9), 11:20, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Так что надо всю инфраструктуру писать на одном языке

    Все гвозди на стройке здания забивать микроскопом из лаборатории, что будет расположена в этом же здании? Норм логика.

     
     
  • 3.12, Аноним (14), 11:31, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На каждый удар микроскоп по гвоздю ещё нужно 10 смотрящих и 1 начальник. Тогда уж точно безопасно будет (нет)
     
  • 3.245, wyry (ok), 00:29, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сравнение языков программирования общего назначения (любых практически) с принципиально узконаправленным микроскопом - это дурость.
     
  • 2.54, Dmitry (??), 13:21, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Зачем один язык? Там все равно разные команды.
     
  • 2.194, Джон Титор (??), 03:01, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот она, типичная проблема всех корпов, а именно - поналепят критикал мишн проектов со стеком аля "сборная солянка" из технологий, а потом ловят сбои из за малюсенькой детали.

    Это проблема капитализма - рвутся к монополии и сверхприбылям. Нужно быстро и качественно. Между прочим если посмотреть масштабом выше, то это не такая уж и плохая идея (на уровне государства выше). Знаете почему? Потому что от множества специалистов и перехода на кроссфункциональные команды вы переходите к кроссфункциональным компаниям. Т.е. какую-то функцию (технологию) выполняет компания у которой есть пару конкурентов среди которых есть конкуренция за предоставление качественных услуг. В самом обычном приложении вам может по какой-либо случайности понадобится обычный логгер и вот вы можете или сами его написать или воспользоваться сервисом какой-либо компании, которая не только лог вам выдаст, но и причину и даже целое видео воссоздаст на сотню-другую шагов до этого.

     
     
  • 3.195, Джон Титор (??), 03:08, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот представьте что для обеспечения безопасности какой-то вот такой профессиональный сервис стоит посредине и анализирует трафик. Вот оставит какой-нибудь человек на русском военном новостном сайте небезопасный комментарий, а западные господа обязательно побеспокояться выяснить кто это и откуда. Т.е. эта палка с двумя концами - технология ещё желательно родная, поэтому и уровень не выше государства как я уже и сказал. Ну а иначе не возмущайтесь что хороших людей становится все меньше.
     

  • 1.8, Аноним (8), 11:10, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А я думаю, чего вчера в нужный момент сайт zoom возвращал 500 ошибку cloudflare. Не прошло незамеченным)
     
     
  • 2.33, Аноним (40), 12:38, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > две проблемы: cloudflare

    Клаудь по всему миру (не) работает.

     

  • 1.20, 12yoexpert (ok), 11:53, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    ну, то есть они сами сломали и lua тут ни при чём
     
     
  • 2.61, Васян (?), 13:52, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ---- -- ну, то есть они сами сломали...

    Ну так ведь lua сам себя и на себе не пишет, как и любой другой.

     
  • 2.208, Аноним (207), 11:27, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно ни при чем - это тестирование блокировки
     
  • 2.252, Аноним (252), 01:16, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пока переписывали на Раст они забили на Lua версию, так чему тут удивлятся.
     

  • 1.25, Аноним (25), 12:00, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > применяемый для тестирования WAF инструментарий не поддерживает выставленный размер буфера. Так как данный инструментарий не влияет на трафик, было решено отключить его.

    Вот причина, а не код на Lua.

     
     
  • 2.34, Аноним (34), 12:39, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сложно охватить знаниямя всю комплексную инфраструктуру Cloudflare для одного человека, вот и нехватило знаний.
     
  • 2.36, Аноним (40), 12:40, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В коде не было проверок существования объекта

    Вот где ошибка.

     
     
  • 3.48, Аноним (48), 13:00, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там целый букет, чего вы по одной таскаете: не было проверок, не было тестов, не было обработчика ошибок и т.д. Времени у них судя по всему тоже не было, раз "применяемый для тестирования WAF инструментарий" решили не менять под новые требования, а отключить
     
     
  • 4.51, Аноним (40), 13:09, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > решили не менять под новые требования

    Дак они боятся что-то трогать, т.к. не понимают, как оно работает, иначе весь интернет на планете положат, кроме суверенного некоторых стран.

     
     
  • 5.113, Аноним (113), 17:13, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ... который уже лежит. Договаривацте до конца)
     
  • 3.77, Аноним (77), 14:47, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не в проверке того, что машине требуется бензобак, а в том, что вы забыли, что машине нужен бензин, чтобы ехать. Этот модуль не должен был отключаться вообще, поэтому всё и рухнуло.
     

  • 1.26, dannyD (?), 12:11, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    ясно, меняются только декорации и прочие несущественные детали.

    в 1986 в Чернобыле было почти тоже самое.

     
     
  • 2.28, Аноним (18), 12:22, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только здесь на следующий день, публично рассказывают, что произошло.
     
     
  • 3.31, Аноним (34), 12:31, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Просто тут легче было выяснить.
     
  • 3.42, dannyD (?), 12:54, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>Только здесь на следующий день, публично...

    это несущественные детали.

    зрите в корень произошедшего.

     
     
  • 4.44, Аноним (18), 12:58, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это как раз самое существенное.
    Человеческий фактор и от этого никто не застрахован.
    А вот публичное признание проблемы... на это не все готовы пойти.
     
     
  • 5.49, Аноним (40), 13:01, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > публичное признание

    Странно не заметить, когда полглобуса лишается интернета из-за клаудфляры.

     
  • 3.46, Аноним (40), 13:00, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > рассказывают, что произошло

    А что произошло? Хоть один косорукий программист был уволен?

     
     
  • 4.221, aanon (?), 17:02, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ситуация такая что если затеить то на месте косорукого окажется спиральнокосорукий
     
  • 2.68, Аноним (68), 14:29, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Lua - not good, not terrible.
     

  • 1.30, Аноним (30), 12:26, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мир усложняется, количество ошибок будет только возрастать. Тем более когда речь про интернет, и про проекты находящиеся, что называется, на острие. Проекты вынужденные решать задачи первыми, при помощи инструментов которых у них ещё нет, а значит - при помощи разного рода костылей и скотча.
    Объемы необходимых знаний увеличиваются, размер хранилища (мозга) остаётся примерно неизменным. Когда твой проект "на острие" - у тебя нет времени пойти в "библиотеку", даже послать кого-то (так называемого ИИ) некогда, ведь ему надо сформулировать задачу, а она у тебя на костылях известных одному тебе и еще парочке чуваков. А еще нужно уметь проверить то, что тебе из "библиотеки" принесли, а для этого опять-же мозг. Готовьтесь к хаосу, господа.
     
     
  • 2.38, Аноним (34), 12:41, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Если некоторые немного жадные руководители не будут слишком торопиться половину ошибок удастся избежать.
     
  • 2.53, Аноним (18), 13:19, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всё так, и отчёты CloudFlare тому подтверждение.
    p.s.:
    https://www.mozilla.org/ru/about/manifesto/
     
  • 2.75, Аноним (68), 14:46, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знаешь как быстро распознать ложный (или просто бесполезный) тезис? Примени его к другим ситуациям - если будет так же хорошо раскрываться - значит тезис сформулирован в общем виде - значит он условно всегда верен - значит его невозможно оспорить - значит он ложный или пустой. Скажем, твой можно применить вообще ко всему - к электричеству, колесу и переходу от собирательства к разделению труда. Но что-то мир до сих пор не погрузился в пучину хаоса после каменного века))

    Не прогуливайте философию науки в вузах - она рулез.

     
     
  • 3.83, Аноним (68), 14:56, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И еще - есть гигиена тела, а есть гигиена мысли. Забивая себе голову теориями заговора, пустыми общими тезисами и измышлизмами - вы просто нарушаете свою гигиену. А от этого зависит как вы будете справляться с жизненными ситуациями. Ой как смешно - я написал бредовый пост на опеннете! Ну будете так продолжать - ни один психолог не поручится, что в ответственный момент вы поведете своего ребенка к врачу, а не к гадалке.
     
     
  • 4.97, Аноним (97), 15:43, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну будете так продолжать

    ну балон с водой перед теликом это гены, промолчу про бутылку "элексира шастья" :)

     
  • 4.107, Аноним (30), 16:47, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Атомарность. Если вылезать из коробки хоть иногда, то окажется что фундаментальные вещи таки применимы ко всему. Не прогуливайте все остальные предметы.
     
     
  • 5.108, Аноним (68), 17:00, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это под действием алкоголя написано? Нейросеть умнее слова генерит, а на шизофазию не похоже
     
     
  • 6.127, Аноним (30), 18:17, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уровень владения предметом, как и уровень когнитивных способностей в целом - важны для осознания своей несостоятельности.
     
  • 4.182, Димос (?), 23:41, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Молодец).
     
  • 4.253, Аноним (252), 01:18, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Начал за здрравие... Мы живем во времена, когда теории заговора сбываются на глазах.
     
  • 3.120, Аноним (120), 17:57, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мы тебе тут не гумонитории какие. Мы технори, с нами Линукс!
     
  • 3.214, Аноним (214), 15:02, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно полезна философия (диалектика, прежде всего) программистам. Обобщение - ключ к спасению от сложности.
    Хотя, вы правы, никакой катастрофы (на этом поприще) не предвидется. В худшем случае, прогресс замедлится.
     
  • 2.162, ФермерНаТракторе (?), 19:57, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Cloudflare, это самое лучшее.
     
  • 2.213, Аноним (214), 14:56, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Код делится на изолированные специализированные модули, и проблема рассасывается. Главное, не торопиться, и ошибок будет существенно меньше.
     

  • 1.35, Аноним (35), 12:39, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Раньше во времена SEO приманивали ботов, сейчас блокируют. Чудеса.
     
     
  • 2.39, Аноним (40), 12:43, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > сейчас блокируют

    ...блокируют целыми подсетями, из-за чего обычным людям не зайти на сайты, которые за клаудей находятся. Ещё и MITM в придачу.

     

  • 1.43, Аноним (43), 12:58, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Всегда боялся lua, даже сам синтаксис:

       if rule_result.action == "execute" then
         rule_result.execute.results =  ruleset_results[tonumber(rule_result.execute.results_index)]
       end

    Уже вызывает трепет и ощущение простреленной ноги.

     
     
  • 2.58, Аноним (58), 13:41, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нормальный синтаксис. Разве что tonumber лишний. Что интересно - в приведенном коде нет упомянутого запуска правила, только сохранение результата.
     
     
  • 3.62, Аноним (48), 13:55, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    так запуск они убрали. Правда непонятно зачем в новости "execute" называют методом, когда это таблица
     
     
  • 4.67, Аноним (67), 14:28, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что в луа все является таблицами и метатаблицами (как прототип, но нет). Вызов метода объекта - вызов функции полученной по ключу из таблицы.
     
     
  • 5.85, Аноним (48), 14:59, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    не спец в луа, но там разве скобки для вызова не нужны? Кроме некоторых случаев.
    rule_result.execute.results_index — доступ по ключу в таблице execute, если execute это метод, то там всегда будет что-то типа "attempt to index a function value"
     
     
  • 6.93, Аноним (67), 15:24, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Там метаметод на __index, который при попытке получить ключ вызывает геттер.
     
     
  • 7.196, Аноним (58), 03:13, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда им однозначно следует подумать над правильным именованием таблиц и свойств. На первый взгляд код выглядит так, будто производится манипуляция результатами. И, кстати, метаметоды работают существенно медленнее прямого доступа к таблице.
     
  • 3.66, Аноним (67), 14:26, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как ты думаешь, как этот tonumber там появился? Примерно так же, как появится инициализация этой таблицы.
     
  • 3.175, Аноним (175), 21:01, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не говоря просто о уродливости словесных конструкции прямиком из basic, у меня сразу возникают вопросы:
    Как понять что такое rule_result.action?
    А rule_result.execute это что, оно вообще существует?
    Про лишний tonumber ещё забавнее, видимо даже сам автор этого кода сомневается, что вернёт ему index. А вдруг там nil?
    И вообще весь продакшн держится на такой скриптовый лапше, которая из-за рандомной работы с указателями вешает 20 процентов интернета?
     
     
  • 4.197, Аноним (58), 03:19, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я высказался лишь по поводу синтаксиса языка. А вот по поводу именования таблиц и полей таблиц - согласен, фиг поймешь что, куда и зачем пишется. Но это не проблема языка. Сам язык довольно гибкий и одновременно простой.
     
  • 2.71, Аноним (68), 14:35, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О господи, еще и гадалки по синтаксису тут появились. Скоро будем обсуждать какой ЯП учить исходя из знака зодиака?!
     
  • 2.99, Кошкажена (?), 15:53, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ох уж эти свидетели then. Если от этого в обоморок падаешь, что с тобой будет при виде begin end?
     
     
  • 3.101, Аноним (97), 15:57, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а как вам такой аргумент?

    //blog.cloudflare.com/5-december-2025-outage/

    """
    This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.
    """

    код на луа и на расте, я думаю пишут разные люди.

     
     
  • 4.125, Кошкажена (?), 18:14, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > а как вам такой аргумент?
    > //blog.cloudflare.com/5-december-2025-outage/
    > """
    > This type of code error is prevented by languages with strong type
    > systems. In our replacement for this code in our new FL2
    > proxy, which is written in Rust, the error did not occur.
    > """
    > код на луа и на расте, я думаю пишут разные люди.

    Они же честно пишут, что не тестировали код, а когда дело дошло до исполнения, то он сломался. Понятное дело, что строгая типизация помогла бы решить вопрос, но без тестирования бы упало в другом месте.

     
     
  • 5.184, Аноним (97), 23:45, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Понятное дело, что строгая типизация помогла бы решить вопрос

    звучит голословно, и клаудфлейерщики не раскрыли, как эта строгая типизация помогла бы.

     
  • 5.187, Аноним (97), 23:58, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Понятное дело

    Я бы не удивился бы, если они написали бы такое - "Если бы код писал бы ЫЫ, то таких ошибок не было бы" :)

     
  • 4.143, Аноним (143), 18:56, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    судя по тому, как совсем недавно они воткнули unwrap() в продакшен rust-коде, пишут как раз те же :-)
     
     
  • 5.185, Аноним (97), 23:47, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ну вот видать это их аргумент, че вы хотите от нас, мы растовики, а не луашники, надо переписать на раст, в нем такого точно не было бы. Вот и не уволили их :) А в случае с unwrap(), они признают, что такого в продакшене быть не должно вы че, неее мы растовики это знаем.
     
  • 4.170, Аноним (40), 20:22, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ... Rust, the error did not occur

    На расте в предыдущий раз упало, и лежало 3 часа. А на луа - только 23 минуты.

     
     
  • 5.186, Аноним (97), 23:51, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вон луа показало строчку, шо там им раст показал?

    [lua] Failed to run module rulesets callback late_routing: /usr/local/nginx-fl/lua/modules/init.lua:314: attempt to index field 'execute' (a nil value)

    А вот то что показал раст

    thread fl2_worker_thread panicked: called Result::unwrap() on an Err value

    растовики, поясните в каком это месте?

     

  • 1.47, Аноним (47), 13:00, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    1) useEffect в react
    2) unwrap в rust
    3) теперь lua

    Тролить работика vercel для них важнее, чем писать хороший код.

     
  • 1.50, Аноним (40), 13:06, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    И опять никого не накажут... Полнейшее покровительство внутри конторы. Имена создавших это программистов не разглашаются.
     
     
  • 2.55, Аноним (97), 13:23, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Имена создавших это программистов

    да их давно уже там нет :) сфарганили на луа ваф и сунули в нджинкс, давайте зарабатывать бабки на этом.

     
     
  • 3.69, Аноним (67), 14:31, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В openresty.
     
     
  • 4.79, Аноним (97), 14:51, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    openresty = nginx + lua
     
     
  • 5.90, Аноним (67), 15:20, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть луа модуль для нжинкс и есть опенрести, который форк нжинкс и развивается параллельно.
     

  • 1.65, Аноним (67), 14:25, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Луа (и особенно luajit) - это наверно самый вногустрелятельный язык. Наиболее сложный, несмотря на простейший синтаксис.
     
     
  • 2.72, Васисуалий (-), 14:41, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    одно время пришлось настраивать софтину которая опирается на lua-скрипты, языка не знал вообще, выучил буквально за 2 дня и написал довольно сложную многопоточную логику; на моей практике самый легкий язык с очень приятным синтаксисом
     
     
  • 3.80, Аноним (40), 14:53, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > язык с очень приятным синтаксисом

    А потом интернет во всём прозападном мире падает, потому что у программистов в коде чёрт ногу сломал.

     
  • 3.89, Аноним (67), 15:18, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пока у тебя код по принципу сунь-вынь и единицы сот строк, все легко. Сложности начинаются, когда тебе нужно писать какие-то реализации, работающие с абстракциями. Приходится собирать свою вселенную из атомов, начиная с базовых вещей. В процессе всего этого ты неизбежно косячишь с метатаблицами и получаешь совершенно невозможные в других языках ситуации. Луа неинтуитивен даже если ты очень хорошо понимаешь джаваскрипт.

     
     
  • 4.140, Аноним (-), 18:50, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я не могу комментировать твой опыт, но мой опыт возни с луа вполне позитивный М... большой текст свёрнут, показать
     
     
  • 5.217, Аноним (67), 15:56, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я конечно же злоупотребляю, а у вас все хорошо :)
    Как-то написал месяца за 2 чуть более 5К строк кода и это наверно лучшее было программирование в моей жизни. Но осталось ощущение, что при неглубоком погружении инструмент слишком мощный, код получается хрупкий, локализовать проблемы трудно.

    Перл при сопоставимой мощи гораздо спокойнее. Даже если злоупотреблять :)

     
  • 2.86, Кошкажена (?), 14:59, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это почему?

    Проблема с luajit ровно одна - это закрытый процесс разработки и автор на своем уме (вроде как даже тестов нет). Хотя язык почти не меняется в чем плюс. Поэтому у многих свой форк.

     
  • 2.200, Аноним (58), 03:34, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальный язык. Простой и гибкий. Из последнего:

    $ find . -name "*.lua" | wc -l
    28

    $ find . -name "*.lua" -exec cat {} \; | wc -l
    5057

    Как и везде - инструментом нужно уметь пользоваться.

     

  • 1.78, Аноним (78), 14:51, 06/12/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

  • 1.96, Tron is Whistling (?), 15:38, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Флара - это тихий ужас, она вообще нормально не работает нигде.
    Пользоваться всерьёз можно только если ты либо жестокий и большой энтерпрайз со SLA, либо для сайта локалхоста.
     
     
  • 2.98, Аноним (18), 15:46, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какие альтернативы ?
    https://www.cloudflare.com/ru-ru/plans/
     
     
  • 3.132, cheburnator9000 (ok), 18:23, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот выбирай https://www.directline.pro/connect/p/analogi-cloudflare-v-rossii/ (кроме bunny.net его уже тоже прикрыли).

    Но следует учесть что у практически всего того что в списке единственная локация доступа Москва. Говорю так потому что Ngenix работает только с крупными компаниями по договорам.

    Даже если твой сайт хостится во Владивостоке для жителей восточной окраины России то задержка до контента будет x2 от обычной от Владивостока до Москвы.

     
     
  • 4.133, Аноним (18), 18:31, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так и есть. Это смех, а не аналоги, но денег просят по взрослому.
     
     
  • 5.255, cheburnator9000 (ok), 01:54, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Так и есть. Это смех, а не аналоги, но денег просят по
    > взрослому.

    Ну Ngenix единственный аналог CF в России возможно даже полноценный, и доступен во многих городах вдоль всей РФ. Вот только работает с крупными компаниями.

     
  • 2.174, пох. (?), 20:32, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    большому ентер-прайсу полагается не за чужие sla прятаться, а свои каналы и своих инженеров иметь, позволяющие жить без слива всех клиентов чужому дяде (в крайнем случае - прятаться за него кратковременно, когда действительно непосильная атака).

    Но проблема в том что и большие ентер-прайсы нынче нанимают вместо инженеров даже не админов локалхоста, а такое что и локалхост доверить нельзя.

     
  • 2.233, Аноним (233), 20:02, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Хех, можно подумать, будто у тебя есть выбор ей не_пользоваться.
     

  • 1.111, Rev (ok), 17:11, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Опять runtime error в скриптовом языке! Да как же тааак?!
     
     
  • 2.142, нах. (?), 18:56, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    panic! в нескриптовом был бы конечно куда более кстати.

     

  • 1.116, Прорубоно (?), 17:33, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    "треть завершалось". Прелестно.
     
  • 1.118, Аноним (118), 17:52, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А без этого "Cloudflare", что уже и интернет не работает. Так зачем он вообще нужен, закройте его и забудьте.
     
     
  • 2.122, Аноним (40), 18:03, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > зачем он вообще нужен

    Если кратно: планетарный MITM, могущий выдавать страницы под твоим сертификатом.

     
     
  • 3.134, Аноним (18), 18:36, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    https://opennet.ru/56830-tls
     
     
  • 4.199, Джон Титор (??), 03:32, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если корневой сервер децентрализован, то это отличная идея. Потому что в случае отключения от всемирной сети можно ожидать чего угодно - с людьми за рубежом то трудно будет сконтактироваться, рассказать. А такие „предложения иностранцев„ были произнесены публично и поддержаны
     
     
  • 5.211, Аноним (18), 12:34, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Потому что в случае отключения от всемирной сети

    И кому это нужно ?
    https://habr.com/ru/news/973952/

     
     
  • 6.229, Аноним (40), 18:25, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > И кому это нужно ?

    https://en.wikipedia.org/wiki/Internet_censorship_in_the_United_States

     
     
  • 7.230, Аноним (18), 19:01, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот и сравни, что блокируют в разных странах:
    https://en.wikipedia.org/wiki/List_of_websites_blocked_in_mainland_China
    Но если нет критического мышления, то легко можно скормить.
     
     
  • 8.246, Аноним (40), 00:30, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для начала скажи, почему на вики нету списка по USA Цензура есть, а списка не... текст свёрнут, показать
     
  • 6.256, Джон Титор (ok), 03:42, 08/12/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.139, нах. (?), 18:48, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ну как бы это тебе... в общем и целом, как видишь - уже можно считать что не работает. То что остается при неработающей - это малонужные на самом деле опеннеты.

    Причем дело-то в том что он и с клаудшмарью не работает теперь эпизодически, деляпляпляп и в прод, в прод - ой упало - быстроподнятое (за пол-дня) упавшим не считается и можете за следующие пол-дня не платить!

    А нужен он затем что владельцы сайтов за клаудшмрадом - точно такие же, незачем разбираться, трясти надо.

     

  • 1.130, Fareast (ok), 18:21, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вообще проблемы не увидел, за 25 минут решили вопрос - норм, все дальше заработало - норм.

    Живучесть норм, ИТ поддержка норм. Во всей технической инфраструктуре для того поддержка и работает, чтобы исправлять такое. 99,9999% доступности - норм показатель.


    Критиковать норм - моветон.

     
     
  • 2.141, нах. (?), 18:54, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    для твоего подкроватного сервера проблемы и правда нет. Проблема в том что это теперь - ВЕСЬ интернет. И 99.995% - столько бы получилось если бы клаудмшразь лежала на самом деле всего эти 25 минут за год, а не плюс еще предыдущие двенадцать часов - немного непохожи на "пять девяток".

    А зачем твоему серверу под кроватью пять девяток - которые он не сможет обеспечить просто потому что сам ляжет - тоже совершенно неочевидно.

     
     
  • 3.164, Аноним (164), 20:05, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А чего ты так агришься на CF? Они тебя на работу не взяли или что? Хороший сервис, делает хорошее полезное дело. Ну падает да, бывает. Не так уж и часто, это не гугл, у них деньги конечные.
     
     
  • 4.204, Tron is Whistling (?), 11:00, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По ходу дальше локалхоста и минимального тарифа на клаудшляпе не уходил, верно?
     
  • 2.161, Аноним (40), 19:52, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > за 25 минут решили вопрос - норм

    "Борт 321, подождите 25 минут, никуда не улетайте с маршрута, у нас сети нету..."

     
     
  • 3.254, Аноним (252), 01:23, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "Борт 321, подождите 3 часа, никуда не улетайте с маршрута, вы в безопастности..."
     

  • 1.176, Аноним (176), 21:53, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нифига себе, такой высоконагруженный сервис - и не на C++/Rust. Видимо денег много слишком, на спичках не экономят.
     
     
  • 2.205, Tron is Whistling (?), 11:01, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Дык, там косвенный "непрофильный" (или наоборот, профильный...) профит скорее всего настолько весёлый, что плевать они хотели на деньги.
     

  • 1.177, Аноним (177), 21:55, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Причиной был реакт. А lua и прочее это эффект бабочки.
     
  • 1.203, iCat (ok), 09:36, 07/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Что-то зачастили неполадки в работе CloudFlare...
    То одно, то другое...
    Причина, видимо, вовсе не в языках программирования.
     
     
  • 2.232, Аноним (233), 20:00, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В языках вообще проблем быть не может. Язык делает ровно то, что ему говорит прокладка между клавиатурой и стулом.
     
     
  • 3.244, Аноним (40), 00:27, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Растсеры, изобретшие для этого новый умопомрачительный язык, с тобой не согласны.
     
  • 2.248, Аноним (250), 01:01, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Дело было не в бобине...
     

  • 1.215, Аноним (215), 15:39, 07/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Cloudflare зговорился с Google и блокирует доступ на сайты с блокировщиками рекламы и JavaScript, чудесная компашка.
     
     
  • 2.216, Аноним (18), 15:45, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    uBlock Origin постоянно включен, ничего не блокируется.
     
  • 2.231, Аноним (233), 19:58, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Капча давно не капча, а средство фингерпринтинга. С якобы заботой о твоей безопасности.
     
     
  • 3.241, kusb (?), 22:04, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А как сделать капчу в условиях ИИ? (Хотя вижу способы, но оправдание есть, эээх)
     
     
  • 4.243, Аноним (40), 00:25, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > как сделать капчу

    А зачем она нужна? Что такое капча вообще? - Уникальная маркировка "того конца". Что мешает ИИ работать в той же сессии, где был человек? - Ничего. Так и делают. Прошли капчу - запустили ИИ.

     
  • 4.247, Аноним (-), 01:00, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Реальная защита от ботов всегда делалась на серверной стороне (rate-limit, поведенческий анализ, hmac-токены и т.д.) и не требовала участия пользователя. Капча — это единственный способ заставить пользователя добровольно отдать 100% уникальный отпечаток браузера + поведение мыши + точное разрешение экрана + веб-гл шейдеры. Всё остальное — сказки в пользу бедных. Кстати, гугл честно признавал это в своих патентах ещё в 2009–2011 гг.
     

  • 1.242, kusb (?), 22:24, 07/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Lua вызвало менее длительный сбой сети по сравнению с Rust.
     
  • 1.249, Аноним (250), 01:04, 08/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот если бы переписали на Rust, то Cloudflare лег бы не на 25 минут, а на полдня, как в прошлый раз из-за ошибки на Rust.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру