[freetds] Getting DB error = 20017 - Unexpected EOF from the server

Jeff.Goodwin at fairchildsemi.com Jeff.Goodwin at fairchildsemi.com
Tue Mar 17 14:03:24 EDT 2009


freetds-bounces at lists.ibiblio.org wrote on 03/16/2009 09:24:08 PM:

Thanks for your response.

The failure occurred within the 25 hours again.

20090318002607 Successfully inserted PTNO: ZS10241810
DB error = 20004,  Severity code = 9
DB error msg Read from the server failed
OS error # 54
OS error msg connection reset by peer
Error string is: connection reset by peer
DB error = 20047,  Severity code = 1
DB error msg DBPROCESS is dead or not enabled
OS error # 0
OS error msg error 0
Error string is: error 0
FreeTDS: db-lib: exiting because client error handler returned 0 for msgno 
20047
  SYSTEM       job terminated at 18-MAR-2009 00:39:58.54
  Charged CPU time:        0 00:02:07.00      Elapsed time:       1 
00:25:35.08


> Jeff.Goodwin at fairchildsemi.com wrote:
> > freetds-bounces at lists.ibiblio.org wrote on 03/15/2009 06:13:21 PM:
> 
> Is the server implementation changing, too, or just the client? 

The server is static.  It is the same server the production VAX systems 
hit against, although the DB we are using is a test DB instead of the 
production DB.

> 
> 
> Keep posting the tail end of the TDSDUMP logs, though, especially the 
last
> packet sent.  I can't help thinking we're overlooking something, a bit 
set
> or reset, that constitutes a protocol violation and is cause for
> termination, as it were.  But my leading suspect is either an 
intermediary
> closing the connection, or something (perhaps even something about the
> client TCP implementation) causing the server's TCP to close the
> connection.  None of which seems likely to me, either. 

I've posted the latest tail end at the end of this message.

> 
> > I've implemented the changes from the diff file you supplied as well 
as 
> > the strerror() change you suggested.
> 
> Excellent.  Next time you post, please include a universal diff if it's
> not too much trouble (against the unmodified tarball).  Or even just 
net.c
>  Just to make sure what you did is what I think you did, and all that. 

I'll attach the whole net.c.  The OpenVMS diff command is substantially 
different from the unix command.

> 
> HTH. 
> 
> --jkl
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
> 
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]token.c;1:2217:tds_process_end() 
state set to TDS_IDLE
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:162:Changed query 
state from READING to IDLE
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]token.c;1:2232: rows_affected 
= 0
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:110:logic error: 
cannot change query state from IDLE to PENDING
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:4601:dbsqlok() end 
status was success
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:1243:dbcmd(BF9AB0, 
set rowcount 1)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:1250:dbcmd() bufsz 
= 15
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:5727:dbfreebuf(BF9AB0)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:1298:dbsqlexec(BF9AB0)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:6722:dbsqlsend(BF9AB0)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]mem.c;1:563:tds_free_all_results()
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:162:Changed query 
state from IDLE to QUERYING
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:162:Changed query 
state from QUERYING to PENDING
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]net.c;5:784:Sending packet
0000 0f 01 00 1c 00 00 00 00-21 0f 00 00 00 00 73 65 |........ !.....se|
0010 74 20 72 6f 77 63 6f 75-6e 74 20 31             |t rowcou nt 1|

SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:4532:dbsqlok(BF9AB0)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:334:tdserror(BF9970, 
BF9DD0, 20004, 54)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7782:dbperror(BF9AB0, 
20004, 54)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7835:20004: "Read 
from the server failed"
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:4747:dbdead(BF9AB0) 
[alive]
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7856:"Read from 
the server failed", client returns 2 (INT_CANCEL)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:368:tdserror: client 
library returned TDS_INT_CANCEL(2)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:389:tdserror: 
returning TDS_INT_CANCEL(2)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:162:Changed query 
state from PENDING to DEAD
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:4565:dbsqlok() not 
done, calling tds_process_tokens()
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]token.c;1:495:tds_process_tokens(BF9DD0, 
7ACDFB00, 7ACDFB08, 0x6914)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.TDS]util.c;3:118:logic error: 
cannot change query state from DEAD to READING
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:1243:dbcmd(BF9AB0, 
update INFOTAP)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7782:dbperror(BF9AB0, 
20047, 0)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7835:20047: 
"DBPROCESS is dead or not enabled"
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:4747:dbdead(BF9AB0) 
[dead]
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7856:"DBPROCESS is 
dead or not enabled", client returns 0 (INT_EXIT)
SYS$SYSDEVICE:[FREETDS.FREETDS-0_82.SRC.DBLIB]dblib.c;1:7903:FreeTDS: 
db-lib: exiting because client error handler returned 0 for msgno 20047

-------------- next part --------------
A non-text attachment was scrubbed...
Name: net.c
Type: application/octet-stream
Size: 33893 bytes
Desc: not available
Url : http://lists.ibiblio.org/pipermail/freetds/attachments/20090317/357fd6ba/attachment.obj 


More information about the FreeTDS mailing list