[unixODBC-support] Spurious SEGV w/ DBD::ODBC/MSSQL/Perl

eric.berg at barclayscapital.com eric.berg at barclayscapital.com
Tue Jul 5 18:29:54 BST 2011


Martin,

Thanks as always.  Sorry for submitting half of an error report.  Last 15 minutes before leaving for a long holiday weekend...just couldn't bring myself to actually focus.

I've set up to reproduce this in isolation of the code that surrounds this in our batch processing code.

I'm sending off ODBC and DBI logs to you guys right now.

FYI...

DBI:  1.616
DBD::ODBC: 1.31

Easysoft: 1.3

And I'm using the UNIXODBC that comes with the easysoft drivers.

Eric

> -----Original Message-----
> From: Martin J. Evans [mailto:bohica at ntlworld.com]
> Sent: Friday, July 01, 2011 4:41 PM
> To: Support for the unixODBC project
> Cc: Berg, Eric: IT (NYK); PointDB Support
> Subject: Re: [unixODBC-support] Spurious SEGV w/ DBD::ODBC/MSSQL/Perl
> 
> On 01/07/2011 21:24, eric.berg at barclayscapital.com wrote:
> > Hi again. O boy, no end to the fun migrating from Sybase over here.
> >
> > We're using Perl 5.12.3/EasySoft on Linux.
> >
> > Suddenly, some - but definitely not all - jobs of ours that attempt some
> > very simple tasks are failing with SIGSEGV errors.
> >
> > In response to "USE cachedb" we are seeing the folowing errors:
> >
> > [unixODBC]Changed database context to 'cachedb'.
> >
> > Caught a SIGSEGV at /usr/lib/perl5/x86_64-linux/DBD/ODBC.pm line 398
> >
> > $ = eval {...} called from file
> > `/usr/lib/perl5/x86_64-linux/DBD/ODBC.pm' line 398
> >
> > $ = DBD::ODBC::db::ExecDirect('POINT::POINTDBI::db=HASH(0x4c8c280)',
> > 'USE cachedb') called from file
> > `/usr/lib/perl5/x86_64-linux/DBD/ODBC.pm' line 377
> >
> > SV = PVMG(0x1491e50) at 0x486c170
> >
> > REFCNT = 1
> >
> > FLAGS = (PADMY,SMG,POK,pPOK)
> >
> > IV = 0
> >
> > NV = 0
> >
> > PV = 0x484ead0 "'POINT::POINTDBI::db=HASH(0x4c8c280)'"\0
> >
> > CUR = 37
> >
> > LEN = 40
> >
> > MAGIC = 0x4853af0
> >
> > MG_VIRTUAL = &PL_vtbl_mglob
> >
> > MG_TYPE = PERL_MAGIC_regex_global(g)
> >
> > MG_LEN = -1
> >
> > And here's the relevant info from a stack trace.
> >
> > sigtrap::handler_traceback('SEGV') called at
> > /usr/lib/perl5/x86_64-linux/DBD/ODBC.pm line 398
> 
> That line number might be useful if we knew which version of DBD::ODBC
> you were using?
> 
> > eval {...} called at /usr/lib/perl5/x86_64-linux/DBD/ODBC.pm line 398
> >
> > DBD::ODBC::db::ExecDirect('\'POINT::POINTDBI::db=HASH(0x1eea5728)\'',
> > '\'USE cachedb\'') called at /usr/lib/perl5/x86_64-linux/DBD/ODBC.pm
> > line 377
> >
> > DBD::ODBC::db::do('\'POINT::POINTDBI::db=HASH(0x1eea5728)\'', 'USE
> > cachedb') called at /home/batch/lib/site_perl/DEV/CopyClient.pm line
> 1181
> >
> > There are plenty of other instances of "USE cachedb" in our batch code
> > that executed just fine, but for some reason this one is having issues.
> >
> > Anything jumpt out at any of you good people?
> >
> > Thanks for taking a look at this.
> >
> > Eric
> 
> Can you make this happen at will? If so, set DBI_TRACE=15=x.log and
> export it and send the contents of x.log after it happens.
> 
> A unixODBC trace might also be useful.
> 
> Martin
> --
> Martin J. Evans
> Wetherby, UK
_______________________________________________

This e-mail may contain information that is confidential, privileged or otherwise protected from disclosure. If you are not an intended recipient of this e-mail, do not duplicate or redistribute it by any means. Please delete it and any attachments and notify the sender that you have received it in error. Unless specifically indicated, this e-mail is not an offer to buy or sell or a solicitation to buy or sell any securities, investment products or other financial product or service, an official confirmation of any transaction, or an official statement of Barclays. Any views or opinions presented are solely those of the author and do not necessarily represent those of Barclays. This e-mail is subject to terms available at the following link: www.barcap.com/emaildisclaimer. By messaging with Barclays you consent to the foregoing.  Barclays Capital is the investment banking division of Barclays Bank PLC, a company registered in England (number 1026167) with its registered office at 1 Churchill Place, London, E14 5HP.  This email may relate to or be sent from other members of the Barclays Group.
_______________________________________________


More information about the unixODBC-support mailing list