[ruby-dev:50734] [Ruby trunk Bug#15468] Net::Protocol::BufferedIO#write raises NoMethodError when sending large multi-byte string
From:
eitoball@...
Date:
2018-12-27 04:45:30 UTC
List:
ruby-dev #50734
Issue #15468 has been reported by eitoball (Eito Katagiri).
----------------------------------------
Bug #15468: Net::Protocol::BufferedIO#write raises NoMethodError when sendi=
ng large multi-byte string
https://bugs.ruby-lang.org/issues/15468
* Author: eitoball (Eito Katagiri)
* Status: Open
* Priority: Normal
* Assignee:=20
* Target version:=20
* ruby -v: ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
ruby-2.6.0=E3=81=A7=E5=A4=A7=E3=81=8D=E3=81=AAJSON=E6=96=87=E5=AD=97=E5=88=
=97=E3=82=92Net::HTTP=E3=81=A7POST=E3=81=99=E3=82=8B=E3=81=A8=E4=BB=A5=E4=
=B8=8B=E3=81=AE=E3=82=88=E3=81=86=E3=81=AB NoMothodError =E3=81=8C=E7=99=BA=
=E7=94=9F=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=AA=E3=82=8A=E3=
=81=BE=E3=81=97=E3=81=9F=E3=80=82
~~~
$ ruby -rnet/http -rjson -v -e "Net::HTTP.post(URI('http://httpbin.org/post=
'), { text: '=E3=81=82'*100_000 }.to_json, 'Content-Type' =3D> 'application=
/json')"
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
Traceback (most recent call last):
19: from -e:1:in `<main>'
18: from lib/ruby/2.6.0/net/http.rb:500:in `post'
17: from lib/ruby/2.6.0/net/http.rb:605:in `start'
16: from lib/ruby/2.6.0/net/http.rb:920:in `start'
15: from lib/ruby/2.6.0/net/http.rb:502:in `block in post'
14: from lib/ruby/2.6.0/net/http.rb:1281:in `post'
13: from lib/ruby/2.6.0/net/http.rb:1493:in `send_entity'
12: from lib/ruby/2.6.0/net/http.rb:1479:in `request'
11: from lib/ruby/2.6.0/net/http.rb:1506:in `transport_request'
10: from lib/ruby/2.6.0/net/http.rb:1506:in `catch'
9: from lib/ruby/2.6.0/net/http.rb:1507:in `block in transport_req=
uest'
8: from lib/ruby/2.6.0/net/http/generic_request.rb:123:in `exec'
7: from lib/ruby/2.6.0/net/http/generic_request.rb:189:in `send_re=
quest_with_body'
6: from lib/ruby/2.6.0/net/protocol.rb:247:in `write'
5: from lib/ruby/2.6.0/net/protocol.rb:265:in `writing'
4: from lib/ruby/2.6.0/net/protocol.rb:248:in `block in write'
3: from lib/ruby/2.6.0/net/protocol.rb:275:in `write0'
2: from lib/ruby/2.6.0/net/protocol.rb:275:in `each_with_index'
1: from lib/ruby/2.6.0/net/protocol.rb:275:in `each'
lib/ruby/2.6.0/net/protocol.rb:280:in `block in write0': undefined method `=
bytesize' for nil:NilClass (NoMethodError)
~~~
=E7=90=86=E7=94=B1=E3=81=AF=E3=80=81Net::Protocol::BufferedIO#write0=E3=81=
=A7=E3=80=81String#[]=E3=81=A7=E9=80=81=E4=BF=A1=E3=81=95=E3=82=8C=E3=81=A6=
=E3=81=84=E3=81=AA=E3=81=84=E6=96=87=E5=AD=97=E5=88=97=E3=82=92=E6=B1=82=E3=
=82=81=E3=82=8B=E9=9A=9B=E3=81=AB=E6=96=87=E5=AD=97=E5=88=97=E3=81=AB=E3=83=
=9E=E3=83=AB=E3=83=81=E3=83=90=E3=82=A4=E3=83=88=E6=96=87=E5=AD=97=E3=81=8C=
=E5=90=AB=E3=81=BE=E3=82=8C=E3=81=A6=E3=81=84=E3=82=8B=E3=81=A8IO#write_non=
block=E3=81=A7=E8=BF=94=E3=81=A3=E3=81=A6=E3=81=8F=E3=82=8B=E9=80=81=E4=BF=
=A1=E3=81=95=E3=82=8C=E3=81=9F=E3=83=90=E3=82=A4=E3=83=88=E6=95=B0=E3=81=8C=
=E6=96=87=E5=AD=97=E6=95=B0=E3=82=92=E8=B6=85=E3=81=88=E3=82=8B=E3=81=9F=E3=
=82=81=E3=80=81nil=E3=81=AB=E3=81=AA=E3=82=8B=E3=81=9F=E3=82=81=E3=81=A0=E3=
=81=A8=E8=80=83=E3=81=88=E3=81=A6=E3=81=84=E3=81=BE=E3=81=99=E3=80=82https:=
//github.com/ruby/ruby/pull/2058 =E3=82=92=E9=80=81=E3=81=A3=E3=81=A6=E3=81=
=BF=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82
--=20
https://bugs.ruby-lang.org/