IO.seek behaving strangely on FreeBSD 4.9

  • Follow


Hi,
Initially I thought that this was a bug with rubyzip, but it appears that
something is wrong with IO.seek on FreeBSD 4.9 (at least on my system).

travis@aop:~$ uname -a
FreeBSD aop.intranet 4.9-RELEASE-p4 FreeBSD 4.9-RELEASE-p4
#0: Wed Mar 17 16:55:09 EST 2004
root@aop.intranet:/usr/obj/usr/src/sys/MYKERNEL  i386

travis@aop:~$ ruby -v
ruby 1.8.1 (2003-12-25) [i386-freebsd4]

travis@aop:~$ cat badseek.rb 
f = File.new("somefile.txt", "w") # make an empty file
f.close
f = File.new("somefile.txt")
f.seek(-1, IO::SEEK_END)
f.read

travis@aop:~$ ruby badseek.rb 
badseek.rb:3:in `seek': File too large - somefile.txt (Errno::EFBIG)
        from badseek.rb:3

I know that the seek index is invalid, so I should get Errno::EINVAL, but why
am I getting Errno:EFBIG? This seems to be causing a problem preventing me
from using rubyzip on my machine when it tries to do a valid seek on a zipfile.

Thanks,
Travis Whitton
0
Reply whitton (13) 4/1/2004 12:29:47 AM

On Thu, 01 Apr 2004 01:29:47 +0000, Travis Whitton wrote:
> Initially I thought that this was a bug with rubyzip, but it appears that
> something is wrong with IO.seek on FreeBSD 4.9 (at least on my system).
> 
> travis@aop:~$ uname -a
> FreeBSD aop.intranet 4.9-RELEASE-p4 FreeBSD 4.9-RELEASE-p4
> #0: Wed Mar 17 16:55:09 EST 2004
> root@aop.intranet:/usr/obj/usr/src/sys/MYKERNEL  i386
> 
> travis@aop:~$ ruby -v
> ruby 1.8.1 (2003-12-25) [i386-freebsd4]
> 
> travis@aop:~$ cat badseek.rb 
> f = File.new("somefile.txt", "w") # make an empty file
> f.close
> f = File.new("somefile.txt")
> f.seek(-1, IO::SEEK_END)
> f.read
> 
> travis@aop:~$ ruby badseek.rb 
> badseek.rb:3:in `seek': File too large - somefile.txt (Errno::EFBIG)
>         from badseek.rb:3
> 
> I know that the seek index is invalid, so I should get Errno::EINVAL, but why
> am I getting Errno:EFBIG? This seems to be causing a problem preventing me
> from using rubyzip on my machine when it tries to do a valid seek on a zipfile.
> 
> Thanks,
> Travis Whitton


I get the EINVAL error on freebsd5.1

server> rm somefile.txt
server> ruby b.rb
b.rb:4:in `seek': Invalid argument - somefile.txt (Errno::EINVAL)
        from b.rb:4
server> cat b.rb 
f = File.new("somefile.txt", "w") # make an empty file
f.close
f = File.new("somefile.txt")
f.seek(-1, IO::SEEK_END)
f.read
server> uname -a
FreeBSD server.neoneye.dk 5.1-RELEASE FreeBSD 5.1-RELEASE #0: Thu Jun  5 02:55:42 GMT 2003     root@wv1u.btc.adaptec.com:/usr/obj/usr/src/sys/GENERIC  i386
server> ruby -v
ruby 1.8.1 (2003-12-22) [i386-freebsd5.1]
server>


--
Simon Strandgaard
0
Reply neoneye (532) 4/1/2004 1:21:43 AM


> I get the EINVAL error on freebsd5.1

Anybody here have a FreeBSD 4.9 system they can test on with ruby 1.8.1?
0
Reply whitton (13) 4/1/2004 2:08:10 AM

Hi,

In message "Re: IO.seek behaving strangely on FreeBSD 4.9"
    on 04/04/01, Travis Whitton <whitton@atlantic.net> writes:

|> I get the EINVAL error on freebsd5.1
|
|Anybody here have a FreeBSD 4.9 system they can test on with ruby 1.8.1?

I did.  It raises Errno::EFBIG.

							matz.


0
Reply matz (1855) 4/1/2004 2:36:09 AM

> I did.  It raises Errno::EFBIG.

Is this something the ruby interpreter will work around?



0
Reply thomas7403 (49) 4/1/2004 8:37:58 PM

Hi,

In message "Re: IO.seek behaving strangely on FreeBSD 4.9"
    on 04/04/02, "Thomas Sondergaard" <thomas@FirstNameGoesHereSondergaard.com> writes:

|> I did.  It raises Errno::EFBIG.
|
|Is this something the ruby interpreter will work around?

We just can't provide every work around for every bad behavior on
every operating system.  Most methods corresponding to system calls
raise exception according to their errno status.  If FreeBSD current
reports EFBIG, the method would (and should) raise exception
accordingly, I guess.

							matz.


0
Reply matz (1855) 4/1/2004 11:56:00 PM

5 Replies
52 Views

(page loaded in 0.105 seconds)

Similiar Articles:





7/25/2012 7:11:17 AM


Reply: