[#23295] [proposal] new function for mathing path name — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
6 messages
2004/04/01
[#23296] Re: [proposal] new function for mathing path name
— matz@... (Yukihiro Matsumoto)
2004/04/01
まつもと ゆきひろです
[#23309] 100000000000000000000000 == 100000000000000000000000.0 — Tanaka Akira <akr@...17n.org>
ふと (またしても) 気がついたのですが、次のように
5 messages
2004/04/02
[#23310] Re: 100000000000000000000000 == 100000000000000000000000.0
— matz@... (Yukihiro Matsumoto)
2004/04/02
まつもと ゆきひろです
[#23311] Re: 100000000000000000000000 == 100000000000000000000000.0
— Tanaka Akira <akr@...17n.org>
2004/04/02
In article <1080884868.201381.30812.nullmailer@picachu.netlab.jp>,
[#23324] test_pack_U/test_huge_difference error — MIYAMUKO Katsuyuki <k-miyamuko@...>
みやむこです。
9 messages
2004/04/05
[#23353] Re: test_pack_U/test_huge_difference error
— "NAKAMURA, Hiroshi" <nakahiro@...>
2004/04/08
なひです。
[#23332] to_str再考 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
15 messages
2004/04/05
[#23392] Re: to_str再考
— nobu.nakada@...
2004/04/16
なかだです。
[#23396] Re: to_str再考
— Tanaka Akira <akr@...17n.org>
2004/04/16
In article <200404160100.i3G10FjJ003540@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#23346] Solaris Errno::E000 — とみたまさひろ <tommy@...>
とみたです。
4 messages
2004/04/07
[#23380] [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
17 messages
2004/04/15
[#23400] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/16
山本です。落ちる場所がわかりました。
[#23402] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/16
山本です。
[#23403] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— nobu.nakada@...
2004/04/16
なかだです。
[#23405] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/16
山本です。
[#23407] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/16
山本です。
[#23412] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/20
山本です。原因を絞り込めました。
[#23413] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/20
山本です。
[#23414] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "U.Nakamura" <usa@...>
2004/04/20
こんにちは、なかむら(う)です。
[#23415] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/20
山本です。
[#23416] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/20
山本です。
[#23417] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/04/20
山本です。SEGVの原因がわかりました。
[#23418] Re: [SEGV] make test-all (bccwin32 ruby1.9.0)
— nobu.nakada@...
2004/04/20
なかだです。
[#23381] gdbm read only access — Tanaka Akira <akr@...17n.org>
ふと、GDBM を read only で access したくなったのですが、GDBM.open には
4 messages
2004/04/15
[#23385] Process::Status as boolean — nobu.nakada@...
なかだです。
7 messages
2004/04/15
[#23394] drb test failure due to multiple value class — nobu.nakada@...
なかだです。
3 messages
2004/04/16
[#23408] Ruby/Bsearch — MoonWolf <moonwolf@...>
MoonWolfです。
6 messages
2004/04/19
[#23432] Resolv.getaddress(IPv6) causes error — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
7 messages
2004/04/23
[#23433] Re: Resolv.getaddress(IPv6) causes error
— Tanaka Akira <akr@...17n.org>
2004/04/23
In article <20040423115903.F2C7.USA@garbagecollect.jp>,
[#23434] Re: Resolv.getaddress(IPv6) causes error
— "U.Nakamura" <usa@...>
2004/04/23
こんにちは、なかむら(う)です。
[#23443] [Oniguruma] Version 2.2.8 — <kkosako@...>
ftp.ruby-lang.orgとhttp://www.geocities.jp/kosako1/に、
6 messages
2004/04/27
[ruby-dev:23346] Solaris Errno::E000
From:
とみたまさひろ <tommy@...>
Date:
2004-04-07 14:21:12 UTC
List:
ruby-dev #23346
とみたです。
Solaris で FIFOファイルを 256個以上オープンしようとすると、おかしなエ
ラーになります。ソケットでも同様です。
% mkfifo /tmp/pipe
% ruby -v -e 'a=[]; 256.times{a<<File.open("/tmp/pipe", File::NONBLOCK)}'
ruby 1.6.8 (2002-12-24) [sparc-solaris2.8]
-e:1:in `open': Error 0 (Errno::E000)
from -e:1
from -e:1:in `times'
from -e:1
% ruby-1.8.1 -v -e 'a=[]; 256.times{a<<File.open("/tmp/pipe", File::NONBLOCK)}'
ruby 1.8.1 (2003-12-25) [sparc-solaris2.8]
-e:1: [BUG] rb_sys_fail() - errno == 0
ruby 1.8.1 (2003-12-25) [sparc-solaris2.8]
Abort
Solaris の stdio(3C) によると、
Note that no more than 255 files may be opened using fopen(), and
only file descriptors 0 through 255 can be used in a stream.
ということなので、エラーになるのはいいのですが、Errno::E000 というのは
変ですね。
ちなみに、通常ファイルの場合は、エラーにはなりますが、ちゃんと EMFILE
になります。
% ruby -v -e 'a=[]; 256.times{a<<File.open("/etc/hosts")}';
ruby 1.6.8 (2002-12-24) [sparc-solaris2.8]
-e:1:in `open': Too many open files - "/etc/hosts" (Errno::EMFILE)
from -e:1
from -e:1:in `times'
from -e:1
% ruby-1.8.1 -v -e 'a=[]; 256.times{a<<File.open("/etc/hosts")}' ;
ruby 1.8.1 (2003-12-25) [sparc-solaris2.8]
-e:1:in `initialize': Too many open files - /etc/hosts (Errno::EMFILE)
from -e:1:in `open'
from -e:1
from -e:1:in `times'
from -e:1
ちょっと調べてみたところ、fdopen(3C) の
The fdopen() function may fail and not set errno if there are no
free stdio streams.
「エラーなのに errno を設定しない」というのが影響しているようです。
ということで、ruby 1.8.1 用のパッチです。
*** io.c.orig Wed Dec 24 17:47:36 2003
--- io.c Wed Apr 7 22:31:19 2004
***************
*** 1869,1884 ****
--- 1869,1891 ----
FILE *file;
file = fdopen(fd, mode);
if (!file) {
+ #if defined(sun) && defined(sparc)
+ if (errno == 0 || errno == EMFILE || errno == ENFILE) {
+ #else
if (errno == EMFILE || errno == ENFILE) {
+ #endif
rb_gc();
file = fdopen(fd, mode);
}
if (!file) {
#ifdef _WIN32
if (errno == 0) errno = EINVAL;
#endif
+ #if defined(sun) && defined(sparc)
+ if (errno == 0) errno = EMFILE;
+ #endif
rb_sys_fail(0);
}
}
--
とみたまさひろ <tommy@tmtm.org>