From: Yukihiro Matsumoto Date: 2004-09-23T11:34:51+09:00 Subject: [ruby-dev:24314] Re: Array#sort! dumps core まつもと ゆきひろです In message "Re: [ruby-dev:24311] Array#sort! dumps core" on Wed, 22 Sep 2004 22:03:57 +0900, Tanaka Akira writes: |次のようにすると core を吐きます。 | |% ./ruby -e ' |Thread.new { sleep 1; kill 0, :INT } |arr = (1..100).map {|i| [i] } |class << arr[20]; self end.send(:define_method, :<=>) {|o| | r = Object.new | class << r; self; end.send(:define_method, :>) {|zero| | callcc {|k| $k = k } | throw :tag | arr.clear; arr.compact! | } | r |} |catch(:tag) { | arr.sort! |} |$k.call |' |-e:2: [BUG] Segmentation fault |ruby 1.8.2 (2004-09-22) [i686-linux] これは難問ですね。arr.clearの行が無くても落ちますから、配列 の大きさの変化の問題ではありませんね。デバッガで追いかけたと ころfreelistが壊れていて、自己参照してます。なんでだろう。 ちょっと時間がかかりそうです。