Weird bug in SQLite3


#1

I was trying to do some remote bugsquashing by SSHing on a Windows
computer
running the Cygwin sshd. It’s a clean Cygwin ruby setup, with the
minimum
required for Rails, and the SQLite3 Driver compiled with gcc 3.4.4
(cygming
special), which seems to fallback to the DL driver after I hacked api.rb
to
recognize cygwin as a host.

Whatever Rails is doing to connect to the database, it threw a can’t
open
exception or some such. I then tried to recreate that in “irb”, and got
this
weird beaviour:

(I edited some gruesome gemspec dum spam from the log)

irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> 'require require ‘sqlite3’
=> false
irb(main):003:0> require ‘irb/omp completion’
=> true
irb(main):004:0> require ‘pp’
=> true
irb(main):005:0> pp SQLite3. ::Database.new ’ ‘production.sqlitwe
e3’
#<SQLite3::Database:0x661fce0
@closed=false,
@driver=#SQLite3::Driver::DL::Driver:0x693f480,
@gempath_searcher=
#< … >,
@handle=#<DL::PtrData:0x0x102a2430 ptr=0x0x6803430 size=0 free=0x0x0>,
@results_as_hash=false,
@statement_factory=SQLite3::Statement,
@translator=nil,
@type_translation=false>
=> nil
irb(main):006:0> quit

I didn’t test if this DB handle actually worked. The next ones I created
in
another session looked perfectly normal.

Is this just a really, really weird coinkydink related to my obscure
setup
where some DLLs seem to clash and cause strange interpreter states, or
can it
be considered a proper bug in one of the parties involved?

David V.


#2

Sidenote: please ignore the nonsense in the commands I typed, that’s me
forgetting to edit out the control characters from the tee output. (Does
IRB
have any logging features?)

David V.