[freetds] 0.82 RC4 assert(0) on failed to connect

Dossy Shiobara dossy at panoptic.com
Sun Apr 20 19:21:39 EDT 2008

Following up to my own message, I have some additional troubleshooting

    (gdb) bt
    #0  0xffffe410 in __kernel_vsyscall ()
    #1  0xb7c86811 in raise () from /lib/tls/i686/cmov/libc.so.6
    #2  0xb7c87fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
    #3  0xb7c7ffbf in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
    #4  0xb7241085 in retname (retcode=0) at util.c:292
    #5  0xb72411b4 in tdserror (tds_ctx=0x80f9e78, tds=0x80856b8, msgno=20009, 
        errnum=115) at util.c:368
    #6  0xb725c724 in tds_open_socket (tds=0x80856b8, 
        ip_addr=0x8085b78 "", port=1433, timeout=90000) at net.c:309
    #7  0xb7241def in tds_connect (tds=0x80856b8, connection=0x8085a58)
        at login.c:428
    #8  0xb7234b16 in DbOpen (handle=0x807f738) at nsfreetds.c:270
    #9  0xb7270b99 in NsDbOpen () from ./lib/libnsdb.so

It appears that "rc" in tdserror is set from the return of the message
handler?  Indeed, my custom handler messages both return "0" -- ack.
I've changed the error message handler to return TDS_INT_CANCEL.

Yes, I realize that direct use of libtds isn't supported, but this
caught me by surprise.  :-)

Dossy Shiobara              | dossy at panoptic.com | http://dossy.org/
Panoptic Computer Network   | http://panoptic.com/
  "He realized the fastest way to change is to laugh at your own
    folly -- then you can let go and quickly move on." (p. 70)

More information about the FreeTDS mailing list