[#44925] [Backport93 - Backport #5702][Open] backport r33935 — Yusuke Endoh <mame@...>

19 messages 2011/12/03

[#44940] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — Tanaka Akira <akr@...>

2011/12/6 <[email protected]>:

9 messages 2011/12/05
[#44941] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

2011年12月5日16:56 Tanaka Akira <[email protected]>:

[#44942] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

> おかしいな。gdbmは勝手にcreateフラグを立ててしまうので当該2つの

[#44985] [ruby-trunk - Bug #5757][Open] main threadがreadやselectで待っていると、^C でなかなか死なない — Yui NARUSE <naruse@...>

12 messages 2011/12/13

[#45021] [ruby-trunk - Bug #5786][Open] LoadError: cannot load such file -- openssl — Kazuhiro NISHIYAMA <redmine@...>

11 messages 2011/12/21

[#45057] [ruby-trunk - Feature #5820][Assigned] Merge Onigmo to Ruby 2.0 — Yui NARUSE <naruse@...>

21 messages 2011/12/28

[ruby-dev:45060] [ruby-trunk - Bug #5819][Assigned] Windowsで空のドライブのルートディレクトリに対するFile.stat が失敗する

From: Yui NARUSE <naruse@...>
Date: 2011-12-29 01:38:54 UTC
List: ruby-dev #45060
Issue #5819 has been updated by Yui NARUSE.

Status changed from Open to Assigned
Assignee set to Usaku NAKAMURA


----------------------------------------
Bug #5819: Windowsで空のドライブのルートディレクトリに対するFile.stat が失敗する
https://bugs.ruby-lang.org/issues/5819

Author: Masateru OKAMOTO
Status: Assigned
Priority: Normal
Assignee: Usaku NAKAMURA
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30) [i386-mswin32_100]


Windows Vista32bit版上の 1.9.3-p0,1.9.2-p290,1.8.7-p330で
File.statが失敗します。(すべてActiveScriptRubyパッケージで確認)
また、Vista 32bit + ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mingw32]
では成功しました。


ここでF:ドライブは ファイル/サブディレクトリが一切無い空っぽのFAT16の
USBドライブ(エクスプローラではリムーバブルディスクと表示)です。
FileUtils.touch 'F:\\a.txt' としてファイルを作った後は一転して
成功するようになります。

c:\>dir F:\
 ドライブ F のボリューム ラベルがありません。
 ボリューム シリアル番号は 2850-20AE です

 F:\ のディレクトリ

ファイルが見つかりません

c:\>ruby -v
ruby 1.9.3p0 (2011-10-30) [i386-mswin32_100]

C:\>irb
irb(main):001:0> require 'FileUtils'
=> true
irb(main):002:0> File.stat 'F:\\'
Errno::ENOENT: No such file or directory - F:\
        from (irb):2:in `stat'
        from (irb):2
        from C:/Program Files/Ruby-1.9.3-p0/bin/irb.bat:19:in `<main>'
irb(main):003:0> File.directory? 'F:\\'
=> false
irb(main):004:0> FileUtils.touch 'F:\\a.txt'
=> ["F:\\a.txt"]
irb(main):005:0> File.stat 'F:\\'
=> #<File::Stat dev=0x5, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x5, si
ze=0, blksize=nil, blocks=nil, atime=1970-01-01 09:00:00 +0900, mtime=1970-01-01
 09:00:00 +0900, ctime=1970-01-01 09:00:00 +0900>
irb(main):006:0> File.directory? 'F:\\'
=> true


File.statが失敗するためFile.directory?のみならず
FileUtils.mv(foo, 'F:\\') や FileUtils.cp(bar, 'F:\\')も
dstにファイル名を補うことができず失敗してしまいます。最初は理由が分からず
悩みました。(mvでは Errno::EINVAL: Invalid argumentとなる)


現在のwinnt_stat()はルートディレクトリが空だった場合に内部でcheck_valid_dir()の
FindFirstFileW("F:\\.\\*", )が失敗してしまう('.'すら存在しない)のが
直接の原因になっている様子です。
ドライブルートを特別扱いしてしまえば、丸く収まるんでしょうか。。。


-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next