Bug #9285


Exception message of Errno::ENOENT contains strings @ rb_sysopen and @ dir_initialize in Ruby 2.1

Added by abotalov (Andrei Botalov) over 8 years ago. Updated over 5 years ago.

Target version:
ruby -v:
ruby 2.1.0dev (2013-12-20 trunk 44301) [x86_64-linux]


Exception message of Errno::ENOENT exception contains strings "@ rb_sysopen" or "@ dir_initialize" in Ruby 2.1.0-rc1. It doesn't contain them in Ruby 2.0. I would expect exception message not to contain those strings.

Example in Ruby 2.1:
$ irb
2.1.0dev :001 >'/path/to/not/existent/file')
Errno::ENOENT: No such file or directory @ rb_sysopen - /path/to/not/existent/file
from (irb):1:in initialize' from (irb):1:in new'
from (irb):1
from /home/andrey/.rvm/rubies/ruby-2.1.0-rc1/bin/irb:11:in <main>' 2.1.0dev :002 >'/path/to/not/existent/folder') Errno::ENOENT: No such file or directory @ dir_initialize - /path/to/not/existent/folder from (irb):2:in open'
from (irb):2
from /home/andrey/.rvm/rubies/ruby-2.1.0-rc1/bin/irb:11:in `'
2.1.0dev :003 >

Version: ruby 2.1.0dev (2013-12-20 trunk 44301) [x86_64-linux]
It's installed via RVM.
Ubuntu 13.04

Related issues 1 (0 open1 closed)

Has duplicate Backport21 - Backport #9284: Exception message of Errno::ENOENT contains strings Rejected12/22/2013Actions

Updated by naruse (Yui NARUSE) over 8 years ago

At first, I say what it is.
It is the C function name where the exception is raised.
Therefore you can't the name from Ruby.

The background is that IO-related exceptions may be raised many places.
If I encounter an unexpected exception, only errno is not sufficient information.
I cannot debug without where the error is generated.
The string gives us the information.

Anyway normal ruby users don't need such information.
Therefore it may be hidden on release build.

Updated by kosaki (Motohiro KOSAKI) over 8 years ago

I don't like just turning hidden because I can't agree release build doesn't need debug.
But I agree current format is a little confusable and C function name is less important.
String format could be improved if someone propose better idea.

Updated by vo.x (Vit Ondruch) over 5 years ago

  • Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN)

Is this worth of keeping open? It does not look it will be reverted. And seeing "temporary" workarounds such as 1 does not make the situation any better.

Updated by naruse (Yui NARUSE) over 5 years ago

  • Status changed from Open to Rejected

Through the experience in this three years, this error message sometimes help us to debug.
It is useful and kept as is.


Also available in: Atom PDF