mirror of
https://github.com/gigablast/open-source-search-engine.git
synced 2024-10-04 04:07:13 +03:00
emergency fixes for out of sockets core and
get proxy request timing out causing spider to hang bug.
This commit is contained in:
parent
487c6e0037
commit
8bb3545b71
@ -59,7 +59,7 @@ bool HttpServer::init ( short port,
|
||||
//m_maxOpenSockets = 1000000;
|
||||
|
||||
//well, not infinite
|
||||
m_maxOpenSockets = g_conf.m_httpMaxSockets;
|
||||
//m_maxOpenSockets = g_conf.m_httpMaxSockets;
|
||||
|
||||
m_uncompressedBytes = m_bytesDownloaded = 1;
|
||||
|
||||
@ -79,7 +79,7 @@ bool HttpServer::init ( short port,
|
||||
getMsgPiece ,
|
||||
port ,
|
||||
//&g_conf.m_httpMaxSockets ) ) return false;
|
||||
&m_maxOpenSockets ) ) return false;
|
||||
&g_conf.m_httpMaxSockets ) ) return false;
|
||||
//g_conf.m_httpMaxReadBufSize ,
|
||||
//g_conf.m_httpMaxSendBufSize ) ) return false;
|
||||
// set our secure TcpServer class
|
||||
@ -424,6 +424,8 @@ bool HttpServer::getDoc ( long ip,
|
||||
// . callback will be called on completion of transaction
|
||||
// . be sure to free "req/reqSize" in callback() somewhere
|
||||
|
||||
// MDW: THIS IS RETURNING TRUE SOMEHOW w/o setting g_errno
|
||||
|
||||
if ( ! tcp->sendMsg ( ip ,
|
||||
port ,
|
||||
req ,
|
||||
@ -440,6 +442,7 @@ bool HttpServer::getDoc ( long ip,
|
||||
states[n] = NULL;
|
||||
callbacks[n] = NULL;
|
||||
s_numOutgoingSockets--;
|
||||
log("http: sendmsg returned true!: %s",mstrerror(g_errno));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -787,7 +787,7 @@ void downloadTheDocForReals2 ( Msg13Request *r ) {
|
||||
NULL ,
|
||||
r , // state data
|
||||
gotProxyHostReplyWrapper ,
|
||||
10 )){// 10 sec timeout
|
||||
9999999 )){// 9999999 sec timeout
|
||||
// sanity check
|
||||
if ( ! g_errno ) { char *xx=NULL;*xx=0; }
|
||||
// report it
|
||||
@ -809,7 +809,7 @@ void gotProxyHostReplyWrapper ( void *state , UdpSlot *slot ) {
|
||||
if ( g_errno ) {
|
||||
// note it
|
||||
log("sproxy: got proxy request error: %s",mstrerror(g_errno));
|
||||
g_udpServer.sendErrorReply(slot,g_errno);
|
||||
g_udpServer.sendErrorReply(r->m_udpSlot,g_errno);
|
||||
return;
|
||||
}
|
||||
//
|
||||
@ -823,7 +823,7 @@ void gotProxyHostReplyWrapper ( void *state , UdpSlot *slot ) {
|
||||
if ( replySize != sizeof(ProxyReply) ) {
|
||||
log("sproxy: bad 54 reply size of %li != %li",
|
||||
replySize,(long)sizeof(ProxyReply));
|
||||
g_udpServer.sendErrorReply(slot,g_errno);
|
||||
g_udpServer.sendErrorReply(r->m_udpSlot,g_errno);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -594,6 +594,7 @@ bool TcpServer::sendMsg ( long ip ,
|
||||
// . adds socket to array for us and sets the fd non-blocking, etc.
|
||||
s = getNewSocket ( );
|
||||
// return true if s is NULL and g_errno was set by getNewSocket()
|
||||
// might set g_errno to EOUTOFSOCKETS
|
||||
if ( ! s ) { mfree ( sendBuf , sendBufSize,"TcpServer"); return true; }
|
||||
// set up the new TcpSocket for connecting
|
||||
s->m_state = state;
|
||||
@ -764,7 +765,7 @@ TcpSocket *TcpServer::getNewSocket ( ) {
|
||||
long now = getTimeLocal();
|
||||
static long s_last = 0;
|
||||
static long s_count = 0;
|
||||
if ( now - s_last < 5 )
|
||||
if ( now - s_last < 5 && s_last )
|
||||
s_count++;
|
||||
else {
|
||||
log("tcp: Out of sockets. Max sockets = %li. "
|
||||
@ -779,6 +780,8 @@ TcpSocket *TcpServer::getNewSocket ( ) {
|
||||
// send email alert
|
||||
g_pingServer.sendEmailMsg ( &s_lastTime ,
|
||||
"out of sockets on https");
|
||||
// in case sendEmailMsg resets g_errno somehow
|
||||
g_errno = EOUTOFSOCKETS;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -877,7 +880,7 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) {
|
||||
long now = getTimeLocal();
|
||||
static long s_last = 0;
|
||||
static long s_count = 0;
|
||||
if ( now - s_last < 5 )
|
||||
if ( now - s_last < 5 && s_last )
|
||||
s_count++;
|
||||
else {
|
||||
log("tcp: Out of sockets. Max sockets = %li. "
|
||||
@ -892,6 +895,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) {
|
||||
// send email alert
|
||||
g_pingServer.sendEmailMsg ( &s_lastTime ,
|
||||
"out of sockets on https");
|
||||
// in case sendEmailMsg resets g_errno somehow
|
||||
g_errno = EOUTOFSOCKETS;
|
||||
return NULL;
|
||||
}
|
||||
// sanity check
|
||||
@ -903,6 +908,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) {
|
||||
// send email alert
|
||||
g_pingServer.sendEmailMsg ( &s_lastTime ,
|
||||
"out of sockets on https2");
|
||||
// in case sendEmailMsg resets g_errno somehow
|
||||
g_errno = EOUTOFSOCKETS;
|
||||
return NULL;
|
||||
}
|
||||
// alloc a new TcpSocket
|
||||
@ -922,6 +929,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) {
|
||||
g_pingServer.sendEmailMsg ( &s_lastTime ,
|
||||
"out of sockets on https3");
|
||||
//sleep(10000);
|
||||
// in case sendEmailMsg resets g_errno somehow
|
||||
g_errno = EOUTOFSOCKETS;
|
||||
return NULL;
|
||||
}
|
||||
// save this i guess
|
||||
|
Loading…
Reference in New Issue
Block a user