Size: a a a

Rust — русскоговорящее сообществo

2020 November 05

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=e0b53f0d0eb78df2c148e2046217e160
Вызов close() при этом завершается успешно
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Аналогично, когда я локально перенаправляю вывод в /dev/full, принтлн не паникует
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Локально воспроизводится? Что strace говорит?
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообществo
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Mikail Bagishov
Локально воспроизводится? Что strace говорит?
Воспроизводится. strace выдаёт EBADF на write, как и должен
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Во-первых, это даже не офрепа, во-вторых, не объясняет ситуации с /dev/full
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообществo
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Лол. Ну и жесть. Всё ещё не объясняет ситуацию с /dev/full
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Лол. Ну и жесть. Всё ещё не объясняет ситуацию с /dev/full
Опять же, strace показывает честный ENOSPC
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Так ошибка дальше никуда не уходит
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mag Pie
Так ошибка дальше никуда не уходит
Уходит, и обычно prinltn паникует.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Например я что-то такое с BrokenPipe ловил
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
https://github.com/rust-lang/rust/blob/master/library/std/src/io/stdio.rs#L1021
Ну типа вот тут он должен паниковать
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d125440454e0485ef8566428bc404624
io::stdout().flush() тоже возвращает Ok, что уже совсем ненормально
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Да, точно!
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Вау. У меня просто, блин, нет слов.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
То есть если я хочу обрабатывать ошибки вывода хоть как-то, мне нужно не просто отказаться от println!(), мне нужно самому реимплементировать весь STDOUT.
И, естественно, это нигде не документировано, потому что кому нужно документировать тихий игнор ошибок.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Всё ещё не объясняет ситуацию с ENOSPC, пошёл копать дальше.
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Emmanuel Goldstein
То есть если я хочу обрабатывать ошибки вывода хоть как-то, мне нужно не просто отказаться от println!(), мне нужно самому реимплементировать весь STDOUT.
И, естественно, это нигде не документировано, потому что кому нужно документировать тихий игнор ошибок.
Куда выводить ошибку? Если стдаут нету, то и выводить некуда
источник