Project

General

Profile

Bug #2390

Marshal.dump pass a hidden object

Added by wanabe (_ wanabe) over 9 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-11-20 trunk 25868) [i386-mingw32]
Backport:
[ruby-dev:39744]

Description

=begin
以下のようにすると、hidden T_STRING object であるとされて例外になります。

$ ruby -ve '
r, w = IO.pipe
def w.write(str)
p str
end
Marshal.dump(Object.new, w)
'
ruby 1.9.2dev (2009-11-20 trunk 25868) [i386-mingw32]
-e:4:in p': methodinspect' called on hidden T_STRING object (0xb91048) (NotImplementedError)
from -e:4:in write'
from -e:6:in
dump'
from -e:6:in `'

r25230 ではなく r19653 から NotImplementedError になるようなので
Bug #2386 とは違う問題ではないかと思い、別のチケットにさせていただきました。
もし同じ問題でしたら申し訳ありません。
=end


Related issues

Related to Ruby trunk - Bug #2386: r25230 causes SEGV arround MarshalClosedActions

History

#1

Updated by keiju (Keiju Ishitsuka) over 9 years ago

=begin
けいじゅ@いしつかです.

In [ruby-dev:39744] the message: "[ruby-dev:39744] [Bug #2390]
Marshal.dump pass a hidden object", on Nov/20 21:40(JST) _ wanabe
writes:

起票者: _ wanabe
ステータス: Open, 優先度: Low
カテゴリ: core
ruby -v: ruby 1.9.2dev (2009-11-20 trunk 25868) [i386-mingw32]

r, w = IO.pipe
def w.write(str)
p str
end
Marshal.dump(Object.new, w)

-e:4:in p': methodinspect' called on hidden T_STRING object (0xb91048) (NotImplementedError)

r25230 ではなく r19653 から NotImplementedError になるようなので
Bug #2386 とは違う問題ではないかと思い、別のチケットにさせていただきました。
もし同じ問題でしたら申し訳ありません。

こちらも, Marshal.dump(str, io) で用いている io が Tempfileだったので,
同じ問題な気もします. r19653 で例外だったのが, r25230 で ついにSEGVに
なったのかも. SEGVだけチェックしていたので, 例外に気が付かなかったのか
も知れません.

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

=end

#2

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r25881.
_, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

#3

Updated by keiju (Keiju Ishitsuka) over 9 years ago

  • Status changed from Closed to Feedback

=begin
最新版で確認しました。
状況はあまり変わっていないようです...

SEGVする場合がほとんどですが、以下のようなエラーメッセージがでる場合もあります。
以前とちょっとメッセージが変わっています。

method to_s' called on hidden T_NONE object (0x9efbe70 flags=0x2000 klass=0x0)
/usr/local/apps/rubyware/ruby-1.9.2-20091124/lib/ruby/1.9.1/delegate.rb:265:in
write'
/usr/local/apps/rubyware/ruby-1.9.2-20091124/lib/ruby/1.9.1/delegate.rb:265:in block in delegating_block'
/home/keiju/public/a.research/fairy/git/fairy/lib/fairy/node/port.rb:862:in
dump'

ちなみに、Marshal.dump(e, io) で ioにTempfileを使っていると言いましたが、tempfileから実際のioを取り出して、
直接そちらにdumpするようにすると、エラーは発生しなくなります。

=end

#4

Updated by mame (Yusuke Endoh) almost 9 years ago

  • Status changed from Feedback to Closed

=begin
遠藤です。

いしつかさんが言ってるのは #2386 の問題ですよね。

wanabe さんがこのチケットが報告した問題自体は解決済みなので、
こっちのチケットは閉じます。

--
Yusuke Endoh mame@tsg.ne.jp
=end

Also available in: Atom PDF