[#64210] Asking for clarification for exception handling usage — Rodrigo Rosenfeld Rosas <rr.rosas@...>
I've created a ticket for that but didn't get any feedback so I decided
[#64517] Fw: Re: Ruby and Rails to become Apache Incubator Project — Tetsuya Kitahata <[email protected]>
What do you think? >> Ruby developers
What benefits are there to this? I have a feeling that adding unnecessary
On Sat, 23 Aug 2014 22:43:46 -0700
Here I am a Japanese. Before moving anywhere else answer to our question first: what benefits?
tax issue with each other.
[#64614] cowspace (work-in-progress) — Eric Wong <normalperson@...>
Hi all, I started working on a cowspace branch. Based on the mspace API
[#64615] [ruby-trunk - Feature #10181] [Open] New method File.openat() — oss-ruby-lang@...
Issue #10181 has been reported by Technorama Ltd..
I like this feature.
On 08/28/2014 02:53 PM, Eric Wong wrote:
Joel VanderWerf <[email protected]> wrote:
On 08/29/2014 12:55 AM, Eric Wong wrote:
Joel VanderWerf <[email protected]> wrote:
[#64627] [ruby-trunk - Feature #10182] [PATCH] string.c: move frozen_strings table to rb_vm_t — ko1@...
Issue #10182 has been updated by Koichi Sasada.
[#64671] Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...>
Why this fix solve your problem?
(2014/08/30 8:50), SASADA Koichi wrote:
SASADA Koichi <[email protected]> wrote:
Eric Wong <[email protected]> wrote:
(2014/08/31 0:18), Eric Wong wrote:
[ruby-core:64561] [ruby-trunk - Bug #10153] [Closed] File.open block does not throw "No space left on device (Errno::ENOSPC)" if the data fits the buffer of IO.write
Issue #10153 has been updated by Nobuyoshi Nakada.
Status changed from Assigned to Closed
% Done changed from 0 to 100
Applied in changeset r47288.
----------
io.c: do not swallow exceptions at end of block
* io.c (io_close): ignore only "closed stream" IOError and
NoMethodError, do not swallow other exceptions at the end of
block. [ruby-core:64463] [Bug #10153]
----------------------------------------
Bug #10153: File.open block does not throw "No space left on device (Errno::ENOSPC)" if the data fits the buffer of IO.write
https://bugs.ruby-lang.org/issues/10153#change-48488
* Author: Marvin Reyes
* Status: Closed
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version: current: 2.2.0
* ruby -v: ruby 1.9.3p484 (2013-11-22) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
When writing to file in disk using File.open with a block as an argument, if the diskspace is full and IO.write does not flush right away, the block just exits successfully instead of throwing Errno:ENOSPC.
Setup: Drive partition needs to be full
Eg. of a write that will succeed normally with no exception given that the drive is full (this means that the expected failure is being swallowed)
~~~
File.open('/full_drive/test.txt','wb') do |file|
file.write("test")
end
#This will complete normally because the "test" data does not get flushed
#This will leave a 0kb file on the disk
~~~
Eg. force a flush to see the error
~~~
File.open('/full_drive/test.txt','wb') do |file|
file.write("test")
file.flush
end
#This will throw Errno::ENOSPC
#This will leave a 0kb file on the disk
~~~
Eg. write a large enough data that file.write will flush by itself (most likely it hits the buffer cap)
~~~
fills = '1'*1048576
File.open('/full_drive/test.txt','wb') do |file|
file.write(fills)
end
#This will throw Errno::ENOSPC
#This will leave a 0kb file on the disk
~~~
Eg. When not using File.open block argument and closing the IO with an ensure block
~~~
begin
io = File.open('/full_drive/test.txt', 'wb')
io.write("test")
ensure
io.close
end
#This will throw Errno::ENOSPC
#This will leave a 0kb file on the disk
~~~
Currently tested in RHEL5.
Notes:
- I've encountered this in ruby-1.9.2
- I've tested this with ruby-2.1.2
- I'm not sure if the issue is because of File.open usage of c-extension rb_ensure or io_close. reference: (http://ruby-doc.org/core-1.9.3/File.html#method-c-open)
--
https://bugs.ruby-lang.org/