On Mon, Feb 16, 2004 at 03:15:23PM -0800, Dean Arnold wrote:
> (Sorry for the repeated interruptions, perhaps I'm
> exersizing the bleeding edge ?)

Anything involving threads is bleeding edge.

> I managed to get around the previous issue by adding
> a driver package level $installed flag.

Yes, that's the best thing to do. (Though patches to make
install_method skip methods that are being re-installed are
most welcome :-)

> 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()...

Can you reproduce the error with the latest versions of perl
(including bleadperl)?

Can you reproduce the error with a different driver?

Tim.

Reply via email to