[ruby-core:71732] [Ruby trunk - Bug #11444] STDIN.each_codepoint hangs indefinitely on certain codepoints

From: nagachika00@...
Date: 2015-11-29 08:22:36 UTC
List: ruby-core #71732
Issue #11444 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE

Backported r51583 and r51638 into `ruby_2_2` at r52786.
I didn't backport r51594 because it introduce an incompatibility.

----------------------------------------
Bug #11444: STDIN.each_codepoint hangs indefinitely on certain codepoints
https://bugs.ruby-lang.org/issues/11444#change-55137

* Author: Andrew Cantino
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-08-13 trunk 51569) [x86_64-linux]
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE
----------------------------------------
Piping certain Unicode data into Ruby and calling `each_codepoint` on `STDIN` results in a hang.  Control-c does not exit, but control-z will.  I've tested this in 2.2.0, 2.2.2, and trunk.

Please see https://gist.github.com/cantino/48f977bee6a39e33f80f for reproduction.  There is an example file with various Unicode Emoji characters in it (borrowed from http://apps.timwhitlock.info/emoji/tables/unicode).

I'd like to help fix this if anyone can point me in the right direction.  I fiddled with the file until I found a state where it works if one character is removed from the front of the file, so hopefully that's useful information.



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next