Bug #9285

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

Added by Andrey Botalov almost 3 years ago. Updated almost 3 years ago.

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
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
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

Duplicated by Backport21 - Backport #9284: Exception message of Errno::ENOENT contains strings Rejected 12/22/2013


#1 [ruby-core:59278] Updated by Yui NARUSE almost 3 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.

#2 [ruby-core:60060] Updated by Motohiro KOSAKI almost 3 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.

Also available in: Atom PDF