Skip to Content.
Sympa Menu

freetds - RE: [freetds] FreeTDS/DBD::Sybase dumping core.

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Michael Peppler <mpeppler AT peppler.org>
  • To: freetds AT lists.ibiblio.org
  • Subject: RE: [freetds] FreeTDS/DBD::Sybase dumping core.
  • Date: 10 Feb 2003 15:03:23 -0800

On Mon, 2003-02-10 at 14:25, Lowden, James K wrote:
> > From: Michael Peppler [mailto:mpeppler AT peppler.org]
> > Sent: February 10, 2003 4:33 PM
> > > >
> > > > I'm running perl 5.8.0 in a Solaris 8 environment, using
> > > > FreeTDS-0.61 and
> > > > DBD::Sybase 0.95. It was recommended that I use the snapshot
> > > > release of
> > > > FreeTDS to resolve some issues with compatability.
> > > >
> > > > However, when I run a test perl script to connect to the same
> > > > database, perl dumps core.
> >
> > I think the problem is in this code from DBD::Sybase:
> >
> > if(imp_dbh->chainedSupported) {
> > CS_BOOL value = CS_FALSE;
> >
> > if(dbis->debug >= 2)
> > PerlIO_printf(DBILOGFP, " syb_db_login() ->
> > checking for
> > chained transactions\n");
> > retcode = ct_options(connection, CS_SET, CS_OPT_CHAINXACTS,
> > &value, CS_UNUSED, NULL);
> > if(retcode == CS_FAIL) {
> > imp_dbh->doRealTran = 1;
> > imp_dbh->chainedSupported = 0;
> > }
> > if(dbis->debug >= 2)
> > PerlIO_printf(DBILOGFP, " syb_db_login() -> chained
> > transactions are %s supported\n", retcode == CS_FAIL ? "not" : "");
> > }
> >
> > It's the ct_options() call that causes the segfault, apparently.
>
> Ah, well, ct-options returns true as long as you pass valid parameters,
> regardless of whether we actually *do* anything. If we just return CS_FAIL
> for now, is that good for you, Michael? I don't know if I want to get into
> a conversation with the server about transaction capabilities.

Returning CS_FAIL is just fine with me. And I'm pretty sure that it did
that up until recently - this is code that's been in DBD::Sybase for
quite a long time.

"chained" transactions, btw, is a server level option. If it is turned
on, then a transaction is automatically started on the first statement
sent to the server. It's how "autocommit" is handled.

Michael
--
Michael Peppler Data Migrations, Inc.
mpeppler AT peppler.org http://www.mbay.net/~mpeppler
Sybase T-SQL/OpenClient/OpenServer/C/Perl developer available for short or
long term contract positions - http://www.mbay.net/~mpeppler/resume.html




Archive powered by MHonArc 2.6.24.

Top of Page