Hi,
On Solaris 10-U2 I have observed some issues with the TCP streams module
interaction with Sybase ASE database server, If any module is pushed in between
tcp and sockfs modules and also tcp fusion is enabled on that box.
More details
I have written a dummy streams module testm (doing nothing) and pushed it on
top of tcp module as follows,
#autopush f /etc/testm.ap ## Content of testm.ap ----
tcp -1 0 testm
As a side effect of pushing this module if I started SybaseASE server,
generating heavy traffic especially new concurrent TCPconnections causes the
ASE to drop some user sessions with thefollowing error,
ct_connect():protocol specific layer: external error: There is a tds protocol
error.Premature end of the datastream was encountered.
In normal conditions without large concurrent TCP open/Close calls everything
works fine.
Please note if I take out the module from tcp stack then everything works fine,
also if I disable the tcp fusion (by setting set ip:do_tcp_fusion = 0x0 in
/etec/system) then ASE works fine.
I have enclosed the driver source below for reference
Regards,
Laxmi
-------------------------------------------------------------------------------
static struct fmodsw fsw = {
"testm", /* module name */
&testm_info, /* streams information */
(D_NEW | D_MP | D_MTQPAIR) /* D_NEW - new-style driver, D_MP - MT Safe
module, */
/* D_MTQPAIR - Inner exclusive perimeter around individual Q Pair */
};
int
_init()
{
return (mod_install(&modlinkage));
}
static int
testmopen(queue_t * q, dev_t * devp, int oflag, int sflag,
cred_t * credp)
{
qprocson(q);
return (0);
}
static int
testmclose(queue_t * q, int flag, cred_t * credp)
{
qprocsoff(q);
return (0);
}
static int
testmwput(register queue_t * q, register mblk_t * mp)
{
(void) putnext(q, mp); /* pass it down the line */
return (0);
}
static int
testmrput(queue_t * q, mblk_t * mp)
{
(void) putnext(q, mp); /* pass it down the line */
return (0);
}
-------------------------------------------------------------------------------
_______________________________________________
networking-discuss mailing list
[email protected]