Unknown property 7/marker 0

Brian Bruns camber at ais.org
Thu Oct 28 09:54:34 EDT 1999


On 10/28/99, "Peter Haworth <pmh at edison.ioppublishing.com>" wrote:
> Oops. FreeTDS version 0.47pre2. Here's the log. Should I be seeing any packets
> received in the log?

Yes you should, but I'll explain that in a sec.

> 0020  5f 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00   |_1..............|
> 0030  00 00 00 00 00 00 00 00 00 00 00 05 01 35 31 32   |.............512|
> 0040  00 00 00 03 00 00 00 00 00 00 00 00               |............|
> 
> 
> 1999-10-28 11:12:02 inside tds_process_login_tokens()
> 1999-10-28 11:12:03 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:03 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:03 inside tds_process_default_tokens() marker is 0
> 
> [This continues until interrupt]
> 
FreeTDS does a poor job of detecting a socket closed by the server and the 
read on a close socket returns a NULL, thus everything comes back as 0 
which is an unknown marker! So, what has happened is the SQL Server closed 
the connection without any response.  The question is why....

The 0's are a symptom of the problem (which I need to get around to fixing, 
but you know how it goes), but not its cause.  It would appear that the SQL 
Server didn't understand the login packet just closed the connection.  So, 
it looks like this particular version of SQL Server (are there any service 
packs installed on it?  Can you post the response from 'select @@version' 
?) is a little more picky about the value of some field.

Also, you may want to grab one of the later snapshots of freetds to check 
that (although there is probably no change).  I'll comb over the login 
packet a bit more to see if I can find anything there.  Funny thing is I've 
had no problem with version 7.0 and others have reported success with 6.5, 
so this is new. (Even solaris -> 6.5 has reportedly worked).  Do you by 
chance have a little endian box (maybe linux) to try?  Some versions of MS 
SQL server don't care for big endian clients and that would help determine 
where the problem lies.

Can anyone give me a dump of the login packet from a MS product for 
comparison value? All I have is Sybase stuff.

> 1999-10-28 11:12:41 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:41 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:41 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:41 inside tds_process_default_tokens() marker is 0
> 1999-10-28 11:12:41 inside ct_con_props() action = CS_GET property = 26
> 1999-10-28 11:12:41 inside ct_con_drop()
> 1999-10-28 11:12:41 inside ct_exit()
> 
> 

Cheers,

Brian



More information about the FreeTDS mailing list