Jordan Sissel created JRUBY-6280:
------------------------------------
Summary: Fails to open fifo for writing.
Key: JRUBY-6280
URL: https://jira.codehaus.org/browse/JRUBY-6280
Project: JRuby
Issue Type: Bug
Affects Versions: JRuby 1.6.5
Environment: linux
Reporter: Jordan Sissel
Assignee: Thomas E Enebo
JRuby fails to open a fifo for writing because it tries to seek in it.
Create a fifo on the filesystem like so:
{noformat}
% mkfifo /tmp/fifo
{noformat}
I tested this on Linux. It is likely other platforms are affected.
Example code showing it working in MRI 1.9.2 and failing in JRuby 1.6.5 (both
1.8 and 1.9 mode)
{noformat}
% rvm use 1.9.2; ruby -e 'File.new("/tmp/fifo", "w"); puts :OK'
Using /home/jls/.rvm/gems/ruby-1.9.2-p290
OK
% rvm use 1.6.5; ruby -e 'File.new("/tmp/fifo", "w"); puts :OK'
Using /home/jls/.rvm/gems/jruby-1.6.5
IOError: Illegal seek
initialize at org/jruby/RubyFile.java:442
new at org/jruby/RubyIO.java:868
(root) at -e:1
% rvm use 1.6.5; ruby --1.9 -e 'File.new("/tmp/fifo", "w"); puts :OK'
Using /home/jls/.rvm/gems/jruby-1.6.5
IOError: Illegal seek
initialize at org/jruby/RubyFile.java:464
new at org/jruby/RubyIO.java:868
(root) at -e:1
{noformat}
Relevant data from strace:
{noformat}
3086 open("/tmp/fifo", O_RDWR|O_CREAT, 0666) = 5
3086 lseek(5, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
{noformat}
Example code showing using the Java API working fine. Mainly, the point of me
trying this in 'pure java api' was to see if it was a something related to a
missed-feature in Java's cross-platformness
{noformat}
>> writer = java.io.FileWriter.new(java.io.File.new("/tmp/fifo"))
=> #<Java::JavaIo::FileWriter:0x33cfa965>
>> writer.write("Hello")
=> nil
>> writer.flush()
=> nil
{noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email