PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: "W dot Phillip Moore" <wpm at ms dot com>
Subject: Problems with CTLib local support on sybperl-2.10_01
Date: Jun 15 1999 1:31PM

>>>>> "Phil" == W Phillip Moore  writes:
>>>>> "Michael" == Michael Peppler  writes:

Phil> When I deployed the 2.10_02 release, which I notice includes
Phil> significant patches to add support locales, several of our CTlib
Phil> applications failed with errors of the form:

Phil> 1:CTlib client: ct_bind(): user api layer: external error: An invalid
Phil> locale was supplied in the CS_DATAFMT structure.
Phil> ct_bind() failed at /ms/dist/dactww/lib/perl/DSPT.pl line 110.

Phil> I was forced to backout to sybperl-2.10 to recover.

Phil> These users are not setting LANG, LC_*, or any of the usual
Phil> locale-related environment variables, either.

Phil> The platform in question is Solaris 2.5.1, with either perl5.004_04 or
Phil> perl5.005_02.  The code is linked with Open Client V11 (I can dig up
Phil> patch revisions, if necessary -- have to ask DBA).

Michael> Are you positive that this was the 2.10_02 release?

Yes, absolutely.

Michael> I'm trying to reproduce it here, and looking at the code it
Michael> seems that I specifically avoid the problem (that I had
Michael> created) where I drop the locale struct in DESTROY,
Michael> forgetting that all connections share the same locale :-(

Michael> I can't seem to reproduce the problem here, but maybe I'm not
Michael> trying hard enough... You wouldn't have an example of code
Michael> that causes the problem?

The code in question is very compelx, and not easily exportable (it
uses lots of internal proprietary libraries, etc).  The code is also,
well, less than elegant.   They use *both* CTLib and DBlib in the same 
app, as well as system() to call the bcp executable.  

Unfortunately, I have to support crap like this :-(

I will try to boil their code down to a simply reproducible problem in 
the next week or two.  It will take some time.