Issue #9273 has been updated by nobu (Nobuyoshi Nakada).

Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED


----------------------------------------
Bug #9273: parse_resolv_conf fails with unicode comments in /etc/resolvconf.c
https://bugs.ruby-lang.org/issues/9273#change-43794

Author: vo.x (Vit Ondruch)
Status: Closed
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby -v: ruby 2.1.0dev (2013-12-20 trunk 44303) [x86_64-linux]
Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED


=begin
This is content of my resolve.conf:

 $ cat /etc/resolv.conf 
 # Generated by NetworkManager
 domain redhat.com
 search redhat.com
 nameserver 10.38.5.26
 nameserver 10.35.255.14
 nameserver 213.46.172.36
 # POZN??MKA: p??eklada?? adres z libc nemůže podporovat více než 3 jmenné servery.
 # Jmenné servery uvedené v následujícím seznamu nelze rozpoznat.
 nameserver 213.46.172.37
 nameserver 192.168.0.1
 
As you can see, NetworkManager inserts there some localized comment. Later, when I run the Ruby's test suite with LANG=C (this is default for Fedora build system), I observer error:

   1) Error:
 TestGemRemoteFetcher#test_download_to_cache:
 ArgumentError: invalid byte sequence in US-ASCII
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:926:in `sub!'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:926:in `block (2 levels) in parse_resolv_conf'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:925:in `each'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:925:in `block in parse_resolv_conf'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:924:in `open'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:924:in `parse_resolv_conf'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:956:in `default_config_hash'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:977:in `block in lazy_initialize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:970:in `synchronize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:970:in `lazy_initialize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:358:in `block in lazy_initialize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:356:in `synchronize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:356:in `lazy_initialize'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:516:in `fetch_resource'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:510:in `each_resource'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/resolv.rb:491:in `getresource'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/remote_fetcher.rb:89:in `api_endpoint'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/source.rb:42:in `api_uri'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/source.rb:126:in `fetch_spec'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:171:in `block in spec_for_dependency'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:169:in `each'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/spec_fetcher.rb:169:in `spec_for_dependency'
     /builddir/build/BUILD/ruby-2.1.0-r44303/lib/rubygems/remote_fetcher.rb:106:in `download_to_cache'
     /builddir/build/BUILD/ruby-2.1.0-r44303/test/rubygems/test_gem_remote_fetcher.rb:400:in `test_download_to_cache'

The attached patch ignores such error and should be sufficient to fix this issue IMO. Not sure if I should not contact NM developers, but anybody else might insert there some localized strings as well, so Ruby should be probably more robust in this case.
=end



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