[#85349] [Ruby trunk Bug#14334] Segmentation fault after running rspec (ruby/2.5.0/erb.rb:885 / simplecov/source_file.rb:85) — pragtob@...
Issue #14334 has been updated by PragTob (Tobias Pfeiffer).
3 messages
2018/02/02
[#85358] Re: [ruby-cvs:69220] nobu:r62039 (trunk): compile.c: unnecessary freezing — Eric Wong <normalperson@...>
nobu@ruby-lang.org wrote:
5 messages
2018/02/03
[#85612] Why require autoconf 2.67+ — leam hall <leamhall@...>
Please pardon the intrusion; I am new to Ruby and like to pull the
6 messages
2018/02/17
[#85634] [Ruby trunk Bug#14494] [PATCH] tool/m4/ruby_replace_type.m4 use AC_CHECK_TYPES for HAVE_* macros — normalperson@...
Issue #14494 has been reported by normalperson (Eric Wong).
3 messages
2018/02/19
[#85674] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — matz@...
Issue #13618 has been updated by matz (Yukihiro Matsumoto).
5 messages
2018/02/20
[#85686] Re: [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
— Eric Wong <normalperson@...>
2018/02/20
matz@ruby-lang.org wrote:
[#85704] Re: [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
— Koichi Sasada <ko1@...>
2018/02/21
On 2018/02/20 18:06, Eric Wong wrote:
[ruby-core:85755] [Ruby trunk Bug#14542] syswrite spuriously empties the given string
From:
sylvain.joyeux@...4x.org
Date:
2018-02-22 13:56:07 UTC
List:
ruby-core #85755
Issue #14542 has been reported by sylvain.joyeux (Sylvain Joyeux).
----------------------------------------
Bug #14542: syswrite spuriously empties the given string
https://bugs.ruby-lang.org/issues/14542
* Author: sylvain.joyeux (Sylvain Joyeux)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: 2.3.6, 2.4.3
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
I'm doing a bit of buffer management to write on a socket. The main method looks like this:
~~~ ruby
@write_buffer.concat(new_bytes) if new_bytes
written_bytes = io.syswrite(@write_buffer)
@write_buffer = @write_buffer[written_bytes..-1]
!@write_buffer.empty?
~~~
However, in some cases, I get a nil `@write_buffer`. I've added some debugging info:
~~~ ruby
@write_buffer.concat(new_bytes) if new_bytes
size_before_syswrite = @write_buffer.size
written_bytes = io.syswrite(@write_buffer)
size_after_syswrite = @write_buffer.size
updated_write_buffer = @write_buffer[written_bytes..-1]
if !updated_write_buffer
STDERR.puts "NIL WRITE BUFFER, size_before_syswrite=#{size_before_syswrite} size_after_syswrite=#{size_after_syswrite} written_bytes=#{written_bytes}"
end
@write_buffer = updated_write_buffer
!@write_buffer.empty?
~~~
in all cases, I got the following output:
~~~
NIL WRITE BUFFER, size_before_syswrite=3106 size_after_syswrite=0 written_bytes=3106
~~~
However, I could not reproduce the problem with toy setups. syswrite's string handling is beyond the little I know of MRI's internals ;-)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>