[#69892] [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API — normalperson@...
Issue #11339 has been reported by Eric Wong.
8 messages
2015/07/07
[#69983] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/15
normalperson@yhbt.net wrote:
[#69990] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— SASADA Koichi <ko1@...>
2015/07/16
On 2015/07/16 4:41, Eric Wong wrote:
[#69995] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/16
SASADA Koichi <ko1@atdot.net> wrote:
[#69984] $SAFE inside an Array — Bertram Scharpf <lists@...>
Hi,
4 messages
2015/07/15
[#70001] [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10 — ngotogenome@...
Issue #11336 has been updated by Naohisa Goto.
4 messages
2015/07/16
[#70005] Re: [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10
— Eric Wong <normalperson@...>
2015/07/16
Sorry, but I think rb_divert_reserved_fd seems a racy fix. I think the
[#70011] [Ruby trunk - Bug #11362] [Open] [PATCH] ensure Process.kill(:STOP, $$) is resumable — normalperson@...
Issue #11362 has been reported by Eric Wong.
3 messages
2015/07/17
[#70016] [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg — merch-redmine@...
Issue #11364 has been reported by Jeremy Evans.
8 messages
2015/07/17
[#70052] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/20
merch-redmine@jeremyevans.net wrote:
[#70055] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Jeremy Evans <code@...>
2015/07/20
On 07/20 10:46, Eric Wong wrote:
[#70056] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/21
Jeremy Evans <code@jeremyevans.net> wrote:
[#70103] [Ruby trunk - Feature #11375] Decreased Object Allocation in Pathname.rb — richard.schneeman@...
Issue #11375 has been updated by Richard Schneeman.
3 messages
2015/07/23
[#70156] [Ruby trunk - Bug #11396] Bad performance in ruby >= 2.2 for Hash with many symbol keys — dunric29a@...
Issue #11396 has been updated by David Unric.
3 messages
2015/07/28
[ruby-core:70119] [Ruby trunk - Bug #11395] ruby gets stuck when entropy_avail is 0
From:
mame@...
Date:
2015-07-25 08:19:49 UTC
List:
ruby-core #70119
Issue #11395 has been updated by Yusuke Endoh.
Nobuyoshi Nakada wrote:
> Does this header exist?
Yes.
~~~~
compiling random.c
random.c: In function 'fill_random_bytes_syscall':
random.c:528:43: error: 'GRND_NONBLOCK' undeclared (first use in this function)
ret = syscall(SYS_getrandom, seed, size, GRND_NONBLOCK);
^
random.c:528:43: note: each undeclared identifier is reported only once for each function it appears in
Makefile:369: recipe for target 'random.o' failed
make: *** [random.o] Error 1
~~~~
----------------------------------------
Bug #11395: ruby gets stuck when entropy_avail is 0
https://bugs.ruby-lang.org/issues/11395#change-53550
* Author: Yusuke Endoh
* Status: Assigned
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* ruby -v: ruby 2.3.0dev (2015-07-24 master 51364) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
When `/proc/sys/kernel/random/entropy_avail` is 0, Ruby gets stuck during initialization.
$ ruby -v
(stuck)
This is caused by r51182. I think that the `GRND_NONBLOCK` flag should be set to `getrandom` syscall.
The following patch works for me. But I have no idea to remove the magic number "1 (= `GRND_NONBLOCK`)".
~~~~diff
diff --git a/random.c b/random.c
index 6452456..9ef89f9 100644
--- a/random.c
+++ b/random.c
@@ -523,11 +523,14 @@ fill_random_bytes_syscall(void *seed, size_t size)
if (try_syscall) {
long ret;
errno = 0;
- ret = syscall(SYS_getrandom, seed, size, 0);
+ ret = syscall(SYS_getrandom, seed, size, 1);
if (errno == ENOSYS) {
try_syscall = 0;
return -1;
}
+ if (errno == EAGAIN) {
+ return -1;
+ }
if ((size_t)ret == size) return 0;
}
return -1;
~~~~
--
Yusuke Endoh <mame@ruby-lang.org>
--
https://bugs.ruby-lang.org/