Bug #5591

Windows bug when using "shortcut" syntax with output redirection

Added by Jens Wille over 2 years ago. Updated over 2 years ago.

[ruby-core:40835]
Status:Closed
Priority:Normal
Assignee:-
Category:core
Target version:1.9.3
ruby -v:ruby 1.9.3p0 (2011-10-30) [i386-mingw32] Backport:

Description

How to reproduce:

---- snip ----
# test.rb
puts test
---- snip ----

Start Command Prompt with Ruby 1.9.3:

$ ruby test.rb
test
$ ruby test.rb > out
$ type out
test
$ test
test
$ test > out
[BUG] rbupdatemax_fd: invalid fd (1) given.
ruby 1.9.3p0 (2011-10-30) [i386-mingw32]

-- Control frame information -----------------------------------------------
c:0001 p:---- s:0002 b:0002 l:000001 d:000001 TOP

-- C level backtrace information -------------------------------------------
C:\WINDOWS\system32\ntdll.dll(KiIntSystemCall+0x6) [0x7c91e526]
C:\WINDOWS\system32\kernel32.dll(WaitForSingleObject+0x12) [0x7c802542]
C:\Ruby193\bin\msvcrt-ruby191.dll(rbvmbugreport+0xf9) [0x62e5acc9]
C:\Ruby193\bin\msvcrt-ruby191.dll(rbnameerrmesgnew+0x17a) [0x62d3a68e]
C:\Ruby193\bin\msvcrt-ruby191.dll(rbbug+0x2f) [0x62d3b3ef]
C:\Ruby193\bin\msvcrt-ruby191.dll(rb
ioclose+0x357) [0x62d63ab7]
C:\Ruby193\bin\msvcrt-ruby191.dll(rb
getargv+0x1123) [0x62d70b9b]
C:\Ruby193\bin\msvcrt-ruby191.dll(rb
callinits+0x83) [0x62d5e807]
C:\Ruby193\bin\msvcrt-ruby191.dll(ruby
init+0x89) [0x62d41a8d]
[0x00401355]
[0x004010b9]
[0x00401284]

-- Other runtime information -----------------------------------------------

0: can't convert false into String (TypeError)
$

Expected test > out' to behave likeruby test.rb > out'.

Bug occurs with both 1.9.3 (RubyInstaller) and 1.9.2 (Binary); 1.8.7 (RubyInstaller) behaves as expected. Tested on Windows XP Version 2002 Service Pack 3; originally reported on Windows 7.


Related issues

Related to Backport93 - Backport #5593: Windows上で \\.\ から始まるデバイスをopenするとクラッシュ Closed 11/08/2011

History

#1 Updated by Nobuyoshi Nakada over 2 years ago

  • Category set to core
  • Target version set to 2.0.0

#2 Updated by Nobuyoshi Nakada over 2 years ago

  • Target version changed from 2.0.0 to 1.9.3

Couldn't reproduce with 2.0.0 r32684 on Windows 7.

#3 Updated by Heesob Park over 2 years ago

I can reproduce this issue with trunk on Windows XP.

The changeset r33692 solves this bug too.

On Windows XP, fstat failed with errno EACCES when called with shortcut and redirected stdout.

#4 Updated by Jens Wille over 2 years ago

Unfortunately, I find myself unable to compile Ruby on Windows. I'm not familiar with developing on that platform and all the instructions I could find were either outdated or rather complicated. So I simply trust that it's fixed by r33691. Will that change be backported to 1.9.3?

#5 Updated by Usaku NAKAMURA over 2 years ago

  • Status changed from Open to Closed

I've moved #5593 to backport request (because the ticket has revision information).

#6 Updated by Jens Wille over 2 years ago

Ok, thank you very much!

#7 Updated by Luis Lavena over 2 years ago

Jens Wille wrote:

Unfortunately, I find myself unable to compile Ruby on Windows. I'm not familiar with developing on that platform and all the instructions I could find were either outdated or rather complicated. So I simply trust that it's fixed by r33691. Will that change be backported to 1.9.3?

Testing this wouldn't be that hard if you use RubyInstaller recipes and build infrastructure.

https://github.com/oneclick/rubyinstaller/

You only need a previous version of Ruby installed and Git to clone RubyInstaller recipes.

You can checkout/clone ruby source code and use LOCAL.

Some similar instructions are here:

https://github.com/thecodeshop/ruby/wiki/Building-MRI-on-Windows

#8 Updated by Jens Wille over 2 years ago

Luis, that's awesome. I was literally saying to myself the RubyInstaller guys must be providing some easy way to do this, I just wasn't able to find anything from the homepage. So thanks! I might give it a try some time. Though I won't spend more time on Windows than is absolutely necessary, for sure ;)

Also available in: Atom PDF