Size: a a a

2020 November 13

A

Andrey in ErlangRus
и от того что он не упадет возможно будет даже хуже
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Dim
Nif написать ,если в лоб.
Функция C is_tty is_file
У нифки и самой ВМ одни и теже stdio fd?
источник

SL

Sergey Loguntsov in ErlangRus
я чето посмотрел код логгер_форматтера .. и пипец ) . там io_lib используется который весь на листах
источник

SL

Sergey Loguntsov in ErlangRus
Maksim Lapshin
прошло 10 лет, а у эрланга и логгирования всё те же проблемы с печатью и невозможностью безопасно держать в стейте процесса больше полумегабайта
макс расскажи про больше полумегабайта ? как это выражается ?
источник

A

Andrey in ErlangRus
Sergey Loguntsov
я чето посмотрел код логгер_форматтера .. и пипец ) . там io_lib используется который весь на листах
поэтому кастом форматтеры и придумали
источник

SP

Sergey Prokhorov in ErlangRus
Sergey Prokhorov
но с другой стороны, думаю если в каком-то python делать "{}".format(<100mb bytes>), то он тоже призадумается
хм.. не призадумался 😅
источник

SL

Sergey Loguntsov in ErlangRus
Andrey
поэтому кастом форматтеры и придумали
как бы да, сделали быстро-солюшн
источник

SL

Sergey Loguntsov in ErlangRus
на отъебись
источник

ML

Maksim Lapshin in ErlangRus
Andrey
если сервер по ошибке начинает такое делать, то это говно по определению
нет. Это нормальная рабочая ситуация в продакшне.

А твои слова сродни «зачем писать с багами, надо просто их не писать»
источник

SP

Sergey Prokhorov in ErlangRus
Sergey Loguntsov
макс расскажи про больше полумегабайта ? как это выражается ?
думаю в том, что если этот процесс крешнется и у тебя нет format_state коллбека, то весь стейт попадёт в SASL лог
источник

SL

Sergey Loguntsov in ErlangRus
Sergey Prokhorov
думаю в том, что если этот процесс крешнется и у тебя нет format_state коллбека, то весь стейт попадёт в SASL лог
аа . понял ) и теперь смотрим выше —- все это пойдет по одному месту
источник

SL

Sergey Loguntsov in ErlangRus
вместе с нодой .. норм ... высокая стабильность )
источник

A

Andrey in ErlangRus
Maksim Lapshin
нет. Это нормальная рабочая ситуация в продакшне.

А твои слова сродни «зачем писать с багами, надо просто их не писать»
это палка о двух концах, я лучше увижу креш и зафикшу баг. Чем это потом аукнется хз чем
источник

VS

Vladimir Sekisov in ErlangRus
Sergey Prokhorov
хм.. не призадумался 😅
это питоновская продажная
фича, забить на строковых
бенчмарках любого.
Сильно под строки оптимизирован.
источник

ML

Maksim Lapshin in ErlangRus
Sergey Loguntsov
макс расскажи про больше полумегабайта ? как это выражается ?
жуткий жор памяти на печати.

Если бы io_lib просто аппендил бы большой бинарь, было бы на порядок лучше.

Хочешь быструю печать — нифка к snprintf.

У нас вообще изо _всех_ мест с горячим кодом обязательно убран io_lib. Это код, который способен похоронить любой сервер
источник

SL

Sergey Loguntsov in ErlangRus
понял )
источник

ML

Maksim Lapshin in ErlangRus
Andrey
это палка о двух концах, я лучше увижу креш и зафикшу баг. Чем это потом аукнется хз чем
ты очень плохо и невнимательно читаешь и споришь с голосами у себя.

Ты НЕ увидишь креш. Ты увидишь beam.smp, который сожрал 100%, потом если повезет, он начинает что-то печатать в файл/stdout, занимается этим до получаса и мрет.

Но чаще падает от OOM при попытке сначала распечатать, а потом порезать.

И у тебя нет никакого стандартного способа узнать, хотя бы в какой строчке кода это произошло
источник

ML

Maksim Lapshin in ErlangRus
Sergey Prokhorov
думаю в том, что если этот процесс крешнется и у тебя нет format_state коллбека, то весь стейт попадёт в SASL лог
format_state — полумера.

Самая жопа остается в Reason: там печатается полный стейт
источник

SP

Sergey Prokhorov in ErlangRus
ну можно наверное тогда в сторону max_size или chars_limit посмотреть
источник

SP

Sergey Prokhorov in ErlangRus
плохо что они по дефолту unlimited
источник