Bug #7718
closedtest_ioctl_linux fails on PPC and PPC64
Description
=begin
test_ioctl_linux(TestIO) [/builddir/build/BUILD/ruby-2.0.0-r38848/test/ruby/test_io.rb:2443]:
Exception raised:
<#<Errno::EINVAL: Invalid argument - /dev/urandom>>.
The above mentioned test case fails on PPC and PPC64. The test case was introduced in 33716. It fails with Ruby 2.0 and Ruby 1.9.3 as well.
=end
Updated by kosaki (Motohiro KOSAKI) almost 12 years ago
- Status changed from Open to Feedback
- Assignee deleted (
kosaki (Motohiro KOSAKI))
PPC is not supported platform. so, we need more detailed description why the issue was happen.
Updated by vo.x (Vit Ondruch) almost 12 years ago
This is the strace output if that might help:
Updated by kosaki (Motohiro KOSAKI) almost 12 years ago
ioctl(5, RNDGETENTCNT, 0x1001000bd40) = -1 EINVAL (Invalid argument)
Weird.
RNDGETENTCNT doesn't have returning EINVAL path.
Updated by kosaki (Motohiro KOSAKI) almost 12 years ago
Please run following program. I guess alpha, mips, sparc and ppc have different RNDGETENTCNT number against x86.
#include <linux/random.h>
main(){
printf("%lx\n", RNDGETENTCNT);
}
Updated by vo.x (Vit Ondruch) almost 12 years ago
=begin
This is the output:
./a.out¶
40045200
And here is my testing IRB session:
irb¶
irb(main):001:0> File.open('/dev/urandom'){|f1|
irb(main):002:1* entropy_count = ""
irb(main):003:1> # get entropy count
irb(main):004:1* f1.ioctl(0x80045200, entropy_count)
irb(main):005:1> }
Errno::EINVAL: Invalid argument - /dev/urandom
from (irb):4:in ioctl' from (irb):4:in
block in irb_binding'
from (irb):1:in open' from (irb):1 from /usr/bin/irb:12:in
'
irb(main):006:0> File.open('/dev/urandom'){|f1|
irb(main):007:1* entropy_count = ""
irb(main):008:1> f1.ioctl(0x40045200, entropy_count)
irb(main):009:1> }
=> 0
irb(main):010:0>
And similar script run with strace: http://paste.fedoraproject.org/2489/
=end
Updated by ko1 (Koichi Sasada) almost 12 years ago
- Category set to core
- Target version set to 2.0.0
Updated by kosaki (Motohiro KOSAKI) almost 12 years ago
- Status changed from Feedback to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r38941.
Vit, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- test/ruby/test_io.rb (test_ioctl_linux): skip if a platform is
not x86 because linux ioctl request number depend on cpu arch.
At least, alpha, mips, sparc and ppc have a different number.
[Bug #7718] [ruby-core:51544]