(RADIATOR) DBI handle cleared whilst still active

Andrew Stevenson andrews at ntt.net.au
Thu Jul 10 23:37:19 CDT 2003


Hi,

I'm running radiator 3.6 with DBI.pm 1.37, DBD::Sybase 1.00 talking to a
MS SQL Server 2000 database using freetds 0.61.

Whenever radiator does a database transaction (which apparently works) I
get the errors:

DBI handle cleared whilst still active at /usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 531.
DBI handle has uncleared implementors data at /usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 531.
    dbih_clearcom (sth 0x8536300 0x8538000, com 0x8545c00, imp DBD::Sybase::st):
       FLAGS 0x117: COMSET IMPSET Active Warn PrintError
       PARENT DBI::db=HASH(0x8536210)
       KIDS 0 (0 Active)
       IMP_DATA undef
       LongReadLen 32768
       NUM_OF_FIELDS 0
       NUM_OF_PARAMS 0
DBI::db=HASH(0x8536210)->disconnect invalidates 2 active statement handles (either destroy statement handles or call finish on them before disconnecting) at /usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 278.

Appearing on stderr. It seems these errors aren't uncommon but google
didn't find me a solution...I'm not sure it's a radiator problem, I'm beginning to suspect
it's a DBD::Sybase problem however my perl test script (connect, do,
disconnect) works fine.

An example of a query that causes the problem is:

DELETE FROM Radius..acc WHERE nas_ip = 'x.x.x.x' AND port = '1'

Any ideas? I've turned on DBI tracing (output below, names changed) and I
can't see anything suspicious. Turning on tracing(4) in radiator doesn't
reveal anything either.

Thanks,

Andrew

-- DBI trace --

    DBI 1.37-nothread dispatch trace level set to 4
    Note: perl is running without the recommended perl -w option
    ->
DBI->connect(dbi:Sybase:server=SERVER;database=Radius,
user, ****)
    -> DBI->install_driver(Sybase) for freebsd perl=5.00503 pid=6421
ruid=0 euid=0
    syb_init() -> DBD::Sybase 1.00 initialized
    OpenClient version:
       install_driver: DBD::Sybase version 1.00 loaded from
/usr/local/lib/perl5/site_perl/5.005/i386-freebsd/DBD/Sybase.pm
    New DBI::dr (for DBD::Sybase::dr, parent=, id=)
    dbih_setup_handle(DBI::dr=HASH(0x841361c)=>DBI::dr=HASH(0x853ab60),
DBD::Sybase::dr, 0, Null!)
    dbih_make_com(Null!, 0x0, DBD::Sybase::dr, 84, 0x0) thr#0x0
    <- install_driver= DBI::dr=HASH(0x841361c)
    -> connect for DBD::Sybase::dr (DBI::dr=HASH(0x841361c)~0x853ab60
'server=SERVER;database=Radius' 'radius' ****
HASH(0x8537288))
    New DBI::db (for DBD::Sybase::db, parent=DBI::dr=HASH(0x853ab60), id=)
    dbih_setup_handle(DBI::db=HASH(0x853aadc)=>DBI::db=HASH(0x8537264),
DBD::Sybase::db, 8413354, Null!)
    dbih_make_com(DBI::dr=HASH(0x853ab60), 0x8535380, DBD::Sybase::db,
1708, 0x0) thr#0x0
    syb_db_use() -> ct_command(use Radius)
    syb_db_login() -> checking for chained transactions
    syb_db_login() -> chained transactions are  supported
    <- connect= DBI::db=HASH(0x853aadc) at DBI.pm line 582 via
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 527
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER
'PrintError' 1)
    STORE DBI::db=HASH(0x8537264) 'PrintError' => 1
    <- STORE= 1 at DBI.pm line 622 via
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 527
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER
'AutoCommit' 1)
    <- STORE= 1 at DBI.pm line 622 via
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 527
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER 'Username'
'user')
    STORE DBI::db=HASH(0x8537264) 'Username' => 'user'
    <- STORE= 1 at DBI.pm line 625 via
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 527
    <- connect= DBI::db=HASH(0x853aadc)
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER
'dbi_connect_closure' CODE(0x8531228))
    STORE DBI::db=HASH(0x8537264) 'dbi_connect_closure' => CODE(0x8531228)
    <- STORE= 1 at DBI.pm line 639 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 108
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER
'AutoCommit' 1)
    <- STORE= 1 at SqlDb.pm line 116 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 212
    -> STORE for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER
'syb_flush_finish' 1)
    <- STORE= 1 at SqlDb.pm line 119 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 212
    -> do for DBD::Sybase::db (DBI::db=HASH(0x853aadc)~0x8537264 'DELETE
FROM Radius..acc WHERE     nas_ip = 'x.x.x.x' AND
port = '1'')
1   -> prepare for DBD::Sybase::db (DBI::db=HASH(0x8537264)~INNER 'DELETE
FROM Radius..acc WHERE    nas_ip = 'x.x.x.x' AND
port = '1'' undef)
    New DBI::st (for DBD::Sybase::st, parent=DBI::db=HASH(0x8537264), id=)
    dbih_setup_handle(DBI::st=HASH(0x8537324)=>DBI::st=HASH(0x8537318),
DBD::Sybase::st, 8537330, Null!)
    dbih_make_com(DBI::db=HASH(0x8537264), 0x84b3800, DBD::Sybase::st,
396, 0x0) thr#0x0
1   <- prepare= DBI::st=HASH(0x8537324) at Sybase.pm line 150 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 219
    -> execute for DBD::Sybase::st (DBI::st=HASH(0x8537324)~0x8537318)
    syb_st_execute() -> ct_command() OK
    syb_st_execute() -> ct_send() OK
    st_next_result() -> ct_results(4047) == 1
ct_results() final retcode = 15
    st_next_result() -> lasterr = 0, lastsev = 0
    <- execute= '0E0' at Sybase.pm line 151 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 219
    -> err in DBD::_::common for DBD::Sybase::st
(DBI::st=HASH(0x8537324)~0x8537318)
    <- err= undef at Sybase.pm line 152 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 219
    -> rows for DBD::Sybase::st (DBI::st=HASH(0x8537324)~0x8537318)
    <- rows= 0 at Sybase.pm line 153 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 219
    -> FETCH for DBD::Sybase::st (DBI::st=HASH(0x8537318)~INNER
'syb_more_results')
    .. FETCH DBI::st=HASH(0x8537318) 'syb_more_results' = undef
    <- FETCH= undef at Sybase.pm line 154 via
/usr/local/lib/perl5/site_perl/5.005/Radius/SqlDb.pm line 219
    <- do= '0E0' at SqlDb.pm line 219 via
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 527
    <> DESTROY ignored for outer handle DBI::st=HASH(0x8537324) (inner
DBI::st=HASH(0x8537318))
    -> DESTROY for DBD::Sybase::st (DBI::st=HASH(0x8537318)~INNER)
    syb_st_finish() -> flushing
DBI handle cleared whilst still active at
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 531.
DBI handle has uncleared implementors data at
/usr/local/lib/perl5/site_perl/5.005/Radius/Util.pm line 531.
    dbih_clearcom (sth 0x8537324 0x8563940, com 0x8546c00, imp
DBD::Sybase::st):
       FLAGS 0x117: COMSET IMPSET Active Warn PrintError
       PARENT DBI::db=HASH(0x8537264)
       KIDS 0 (0 Active)
       IMP_DATA undef
       LongReadLen 32768
       NUM_OF_FIELDS 0
       NUM_OF_PARAMS 0
    dbih_clearcom 0x8537324 (com 0x8546c00, type 3) done.


===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list