From: Dossy Date: 2002-06-04T03:47:13+09:00 Subject: Re: Ruby 1.7.2 dieing of segfault (was Re: Ruby 1.6.7 dieing of segfault) On 2002.06.03, Dossy wrote: > On 2002.06.02, Nobuyoshi Nakada wrote: > > > > If you use extension libraries, possibly it may be due to those > > libraries. > > Indeed, my hunch is that dbd_oracle is NOT thread-safe. Well, after setting 19 breakpoints all around the GC code and not being able to pinpoint the cause, I added an "GC.start" where I iterate over the resultset from DBI, and the code has been running and hasn't segfaulted again. Is there anyone here who knows DBI (and dbd_oracle) well and can help me debug? My current guess is that there's a fixed amount of data available to the DBI layer (either in DBI itself or somewhere in dbd_oracle) so if the GC isn't run frequently enough, it runs out of memory (probably a sized char[] somewhere) and segfaults. Since I haven't looked closely at dbd_oracle, I'm talking through my hat here -- that's why I'd like to ask an expert ... I'm using: $ ruby-1.7.2 -v ruby 1.7.2 (2002-05-30) [i686-linux] And these extensions: oracle-0.2.11.tar.gz rexml_2.2.2.tgz ruby-dbi-all-0.0.15.tar.gz -- Dossy -- Dossy Shiobara mail: dossy@panoptic.com Panoptic Computer Network web: http://www.panoptic.com/ "He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on." (p. 70)