Bug #18244
Updated by nobu (Nobuyoshi Nakada) almost 3 years ago
Having this code: ```ruby ``` # $stderr.sync = false warn 'warn' $stderr.puts 'err' fail ``` When I run it like this `ruby test.rb 2>err.log`, output is ok: ``` warn err test.rb:3:in `<main>': unhandled exception ``` But when I uncomment the first line — the output is different: ``` warn test.rb:3:in `<main>': unhandled exception err ``` Why buffered output to the `$stderr` redirected to file has the **wrong order**? If we do not redirect to the file — the order is ok (exception is the last line of the output). Checked platforms: `Windows10: Ruby v3.0.2.107 (2021-07-07) [x64-mingw32]` `Linux: Ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]`