Ruby 1.8.0 prev3 segfault

Hi there,

I am evaluting the latest preview, and i get the following error:

…/navel/web/srv/request.rb:339: [BUG] obj_free() called for broken object
ruby 1.8.0 (2003-06-23) [i686-linux]

here is the relevant code:

def read_line(io, sep = LF, to = $srv_request_timeout)
begin
timeout(to) do
return (io.nil? ? nil : io.gets(sep)) <------- ERROR LINE
end
rescue TimeoutError
raise HttpRequestTimeout
rescue Exception, StandardError => e
$log.debug e
return nil
end
end

.../navel/web/srv/request.rb:339: [BUG] obj_free() called for broken object
ruby 1.8.0 (2003-06-23) [i686-linux]

here is the relevant code:

Well, unfortunately this is not really usefull. Can you give the complete
script (with an example to reproduce the bug) ? Do it use some externals
extensions ?

Guy Decoux

ts decoux@moulon.inra.fr wrote in message news:200307091220.h69CK8R18526@moulon.inra.fr

…/navel/web/srv/request.rb:339: [BUG] obj_free() called for broken object
ruby 1.8.0 (2003-06-23) [i686-linux]

here is the relevant code:

Well, unfortunately this is not really usefull. Can you give the complete
script (with an example to reproduce the bug) ? Do it use some externals
extensions ?

I use the mysql.so extension (DBI). the problem seems to come from
gets though.

I changed the code to:

if io and (!io.closed?)
return io.gets(sep) <---------------- ERROR LINE
else

and i dont get the error any more, now I get the following error (not
so frequent error):

…/navel/web/srv/request.rb:341: [BUG] gc_sweep(): unknown data type
0x401b305c(49)
ruby 1.8.0 (2003-06-23) [i686-linux]

saddly i cannot give you an example that reproduces the bug, it seems
to be random :frowning:

-g.

.../navel/web/srv/request.rb:341: [BUG] gc_sweep(): unknown data type
0x401b305c(49)

This mean that ruby has a problem with the GC : if one extension forget to
mark an object you can see such errors.

Guy Decoux