[#80974] [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit — ko1@...
Issue #13517 has been updated by ko1 (Koichi Sasada).
4 messages
2017/05/02
[#81024] Re: [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit
— SASADA Koichi <ko1@...>
2017/05/07
sorry for late response.
[#80996] [Ruby trunk Feature#13544] Allow loading an ISeqs sequence directly from a C extension without requiring buffer is in an RVALUE — sam.saffron@...
Issue #13544 has been reported by sam.saffron (Sam Saffron).
3 messages
2017/05/04
[#81016] [Ruby trunk Bug#13526] Segmentation fault at 0x0055c2e58e8920 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] — s.wanabe@...
Issue #13526 has been updated by wanabe (_ wanabe).
3 messages
2017/05/07
[#81048] Re: [ruby-cvs:65788] normal:r58614 (trunk): rb_execution_context_t: move stack, stack_size and cfp from rb_thread_t — SASADA Koichi <ko1@...>
It causes compile error on raspi 3.
3 messages
2017/05/09
[#81201] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle — "U.NAKAMURA" <usa@...>
Hi, Eric
4 messages
2017/05/16
[#81202] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle
— Eric Wong <normalperson@...>
2017/05/16
"U.NAKAMURA" <usa@garbagecollect.jp> wrote:
[#81427] Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534) — SASADA Koichi <ko1@...>
Hi,
6 messages
2017/05/28
[#81428] Re: Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534)
— Eric Wong <normalperson@...>
2017/05/28
SASADA Koichi <ko1@atdot.net> wrote:
[ruby-core:81300] [Ruby trunk Feature#13568] File#path for O_TMPFILE fds are unmeaning
From:
shyouhei@...
Date:
2017-05-20 02:49:37 UTC
List:
ruby-core #81300
Issue #13568 has been updated by shyouhei (Shyouhei Urabe).
At the meeting we discussed the use case of File#path and we thought there are 2 kinds:
- Pass it to open()
- Pass it to printf() or variant
We considered both and concluded it is best to return a nonexistent path, not nil.
Hanmac (Hans Mackowiak) wrote:
> i think returing an unexisting path whould be way problematic if it isnt checked if it exist.
> other functions might depend on it.
> and trying to open "/tmp/#165106976 (deleted)" in (read)/writing mode might result in unexpected results.
Trying to open nil is like this:
```
irb(main):001:0> open(nil)
TypeError: no implicit conversion of nil into String
from (irb):1:in `open'
```
OTOH trying to open nonexistent path is:
```
irb(main):001:0> open("/tmp/#165106976 (deleted)")
Errno::ENOENT: No such file or directory @ rb_sysopen - /tmp/#165106976 (deleted)
from (irb):1:in `initialize'
from (irb):1:in `open'
```
Do you think nil is better? I think nonexistent path is far more descriptive.
> can it later checked if a file was open with o_TMPFILE?
> if not, when with unexisting path, you can't know if the file can be reopen.
> that might be related to #13576
Yes. We found that quite generally speaking, it is a bad idea to pass a file's path into open. Because such thing is not guaranteed to exist. I proposed prohibiting File#path but that was rejected; because path is not only meant to be passed to open but also for inspection. When passing to printf or logger or something like that, something other than nil is desirable. I filed #13576 to focus on "file's path passed to open" situation.
> i would prefer it to return nil.
>
> PS: there might be ways to get the filesystem without using that File#path method, so return nil should be okay
(Out of curiousity) are there such ways? What do you have in mind?
----------------------------------------
Feature #13568: File#path for O_TMPFILE fds are unmeaning
https://bugs.ruby-lang.org/issues/13568#change-64973
* Author: sorah (Sorah Fukumori)
* Status: Assigned
* Priority: Normal
* Assignee: sorah (Sorah Fukumori)
* Target version:
----------------------------------------
By using File::TMPFILE (O_TMPFILE) allows us to create a file without directory entries.
While open(2) with O_TMPFILE don't create a file without directory entries, it still requires a directory name to determine a file system to create a file.
Current Ruby implementation holds such directory names in fptr->pathv and retrievable via File#path.
But such paths are useless and may raise errors. For example, some code [1] checks File#path availability then when available, it attempts to use the path to open a file in different fd, finally raises Errno::EISDIR.
This patch changes File#path (fptr->pathv) not to return String if a fd is opened with O_TMPFILE.
[1]: https://github.com/aws/aws-sdk-ruby/blob/v2.9.17/aws-sdk-core/lib/aws-sdk-core/checksums.rb#L15
---Files--------------------------------
tmpfile-path.patch (1.96 KB)
--
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>