[freetds] RE: INT_CANCEL return from DbLib error handler fails

Cooperstock, Dan dan.cooperstock at hepcoe.com
Mon May 5 09:52:36 EDT 2003


I wish I had the time to examine and fix this, but I really don't. Isn't
this something the normal developers of the package would be interested in
fixing?

Thanks.

Dan Cooperstock, Senior Technical Consultant, HEPCOE Credit Union
dcoops at hepcoe.com    416-597-5055

-----Original Message-----
From: Lowden, James K [mailto:LowdenJK at bernstein.com]
Sent: Friday, May 02, 2003 5:30 PM
To: 'FreeTDS Development Group'
Subject: RE: [freetds] INT_CANCEL return from DbLib error handler fails

> From: Cooperstock, Dan [mailto:dan.cooperstock at hepcoe.com]
> Sent: May 2, 2003 2:16 PM
>
> I'm returning in INT_CANCEL from the error handler I set with
> dberrhandle() in a DbLibrary application using FreeTDS.
> 
> As I understand it, that should cause working functions, like
> dbsqlexec,
> which threw an error, to get a bad (not SUCCEED) return value.

You understand correctly.  Looking at the code, our implementation is
defective.  Which is odd, because we had a very involved discussion about
this about six months ago.  Apparently we solved the problem in theory but
never got a round tuit.  Maybe the different libraries have conflicting
semantics, and we're not set up for that. 

If you're interested in fixing this, you'll need a current snapshot, or at
least upgrade to 0.61. 

The relevant function is (assuming it's a server-side message you're talking
about) is tds_process_msg() in src/tds/token.c:2019.  Near the end of that
function, we call the installed handler, but ignore its return code and
return TDS_SUCCEED. 

I don't know how fastidious we are about propogating the error back up the
stack. 

--jkl




More information about the FreeTDS mailing list