(Sorry for the repeated interruptions, perhaps I'm
exersizing the bleeding edge ?)

I managed to get around the previous issue by adding
a driver package level $installed flag. Alas, I now have
another (somewhat more gruesome) issue:

I'm running a test suite that

1. loads a table using 7 concurrent threads using raw binary data
2. Upon completion, the threads exit and are destroyed
3. the same table is then reloaded using
    7 (new) threads, using character string data only

Items 1 & 2 complete wo/ problems (at least once I add the #installed flag),
but when the new threads are created and DBI->connect is called
in the threads, I get the following errors:

Attempt to free unreferenced scalar: SV 0x280bac00 at C:/Perl/site/lib/DBI.pm line 633.
        DBI::__ANON__[C:/Perl/site/lib/DBI.pm:646]('undef','undef') called at
C:/Perl/site/lib/DBI.pm line 648
        DBI::connect('DBI','dbi:Teradata:jhvh1','dbitst','dbitst','HASH(0x25128e4)') 
called at
testutf8.pl line 2827
        
main::vartext_load_thrd(1,'jhvh1','dbitst','dbitst',7,'Thread::Queue=ARRAY(0x64b5e24)')
called at testutf8.pl line 300

Here's the connect() that generates the error:

 my $dbh = DBI->connect("dbi:Teradata:$dsn", $userid, $passwd,
  {
   PrintError => 0,
   RaiseError => 0,
   AutoCommit => 0,
   tdat_charset => 'UTF8'
  }
 ) || die "Thread $thrdnum: Can't connect to $dsn: $DBI::errstr. Exitting...\n";

The DBI.pm line 633 is delete'ing one of the std. (RaiseError, PrintError, AutoCommit)
entries from the \%attr and assigning the result to the internal $dbh.

Note this is repeated for each thread.

Any ideas what's amiss here ? Guess I'll try leaving the std. attrs alone and
assigning them after connect()...

Dean Arnold
Presicient Corp.
www.presicient.com

Reply via email to