[freetds] ct_cancel hangs
James K. Lowden
jklowden at freetds.org
Wed Jul 25 10:02:22 EDT 2007
ZIGLIO, Frediano, VF-IT wrote:
> > > net.c:542:Received packet
> > > 0000 fd 30 00 02 00 d1 04 00-00 |.0...... .|
> > >
> > > token.c:1920:processing row. column size is 253
> >
> > That "fd 30 00" means "end of result set (fd), "results
> > cancelled (30)".
> >
>
> Mumble mumble... it seems that client part is still expecting row data
> while server send cancel acknowledge... it would be helpful to see
> previous packet header. Perhaps server stop sending row informations
> just sending an empty packet with last flag set to 1 ??
Well, it's a mistake for the client to expect row data after the server
sends that cancel acknowledgement.
Cancel -->
<-- data
<-- data
<-- data
<-- End of Results, results cancelled
[state == idle]
Looking at net.c::tds_read_packet(), maybe we should set tds->last_packet
= 1 when the cancelled bit is set in the packet header?
--jkl
More information about the FreeTDS
mailing list