feactor debug log
This commit is contained in:
parent
a0e8b11d0d
commit
3df82b4dd1
|
@ -300,6 +300,8 @@ int transSendResponse(const STransMsg* msg);
|
||||||
int transRegisterMsg(const STransMsg* msg);
|
int transRegisterMsg(const STransMsg* msg);
|
||||||
int transSetDefaultAddr(void* shandle, const char* ip, const char* fqdn);
|
int transSetDefaultAddr(void* shandle, const char* ip, const char* fqdn);
|
||||||
|
|
||||||
|
int transGetSockDebugInfo(struct sockaddr* sockname, char* dst);
|
||||||
|
|
||||||
int64_t transAllocHandle();
|
int64_t transAllocHandle();
|
||||||
|
|
||||||
void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, void* fp, void* shandle);
|
void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, void* fp, void* shandle);
|
||||||
|
|
|
@ -37,12 +37,11 @@ typedef struct SCliConn {
|
||||||
uint32_t port;
|
uint32_t port;
|
||||||
|
|
||||||
SDelayTask* task;
|
SDelayTask* task;
|
||||||
|
|
||||||
// debug and log info
|
// debug and log info
|
||||||
char src[32];
|
char src[32];
|
||||||
char dst[32];
|
char dst[32];
|
||||||
|
|
||||||
// struct sockaddr addr;
|
|
||||||
// struct sockaddr localAddr;
|
|
||||||
} SCliConn;
|
} SCliConn;
|
||||||
|
|
||||||
typedef struct SCliMsg {
|
typedef struct SCliMsg {
|
||||||
|
@ -775,11 +774,11 @@ void cliConnCb(uv_connect_t* req, int status) {
|
||||||
int addrlen = sizeof(peername);
|
int addrlen = sizeof(peername);
|
||||||
|
|
||||||
uv_tcp_getpeername((uv_tcp_t*)pConn->stream, &peername, &addrlen);
|
uv_tcp_getpeername((uv_tcp_t*)pConn->stream, &peername, &addrlen);
|
||||||
sockDebugInfo(&peername, pConn->dst);
|
transGetSockDebugInfo(&peername, pConn->dst);
|
||||||
|
|
||||||
addrlen = sizeof(sockname);
|
addrlen = sizeof(sockname);
|
||||||
uv_tcp_getsockname((uv_tcp_t*)pConn->stream, &sockname, &addrlen);
|
uv_tcp_getsockname((uv_tcp_t*)pConn->stream, &sockname, &addrlen);
|
||||||
sockDebugInfo(&sockname, pConn->src);
|
transGetSockDebugInfo(&sockname, pConn->src);
|
||||||
|
|
||||||
tTrace("%s conn %p connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn);
|
tTrace("%s conn %p connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn);
|
||||||
assert(pConn->stream == req->handle);
|
assert(pConn->stream == req->handle);
|
||||||
|
|
|
@ -102,7 +102,14 @@ void transFreeMsg(void* msg) {
|
||||||
}
|
}
|
||||||
taosMemoryFree((char*)msg - sizeof(STransMsgHead));
|
taosMemoryFree((char*)msg - sizeof(STransMsgHead));
|
||||||
}
|
}
|
||||||
|
int transGetSockDebugInfo(struct sockaddr* sockname, char* dst) {
|
||||||
|
struct sockaddr_in addr = *(struct sockaddr_in*)sockname;
|
||||||
|
|
||||||
|
char buf[20] = {0};
|
||||||
|
int r = uv_ip4_name(&addr, (char*)buf, sizeof(buf));
|
||||||
|
sprintf(dst, "%s:%d", buf, ntohs(addr.sin_port));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
int transInitBuffer(SConnBuffer* buf) {
|
int transInitBuffer(SConnBuffer* buf) {
|
||||||
transClearBuffer(buf);
|
transClearBuffer(buf);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -43,9 +43,13 @@ typedef struct SSvrConn {
|
||||||
SSvrRegArg regArg;
|
SSvrRegArg regArg;
|
||||||
bool broken; // conn broken;
|
bool broken; // conn broken;
|
||||||
|
|
||||||
ConnStatus status;
|
ConnStatus status;
|
||||||
struct sockaddr_in addr;
|
|
||||||
struct sockaddr_in localAddr;
|
uint32_t clientIp;
|
||||||
|
uint16_t port;
|
||||||
|
|
||||||
|
char src[32];
|
||||||
|
char dst[32];
|
||||||
|
|
||||||
int64_t refId;
|
int64_t refId;
|
||||||
int spi;
|
int spi;
|
||||||
|
@ -247,15 +251,11 @@ static void uvHandleReq(SSvrConn* pConn) {
|
||||||
if (pConn->status == ConnNormal && pHead->noResp == 0) {
|
if (pConn->status == ConnNormal && pHead->noResp == 0) {
|
||||||
transRefSrvHandle(pConn);
|
transRefSrvHandle(pConn);
|
||||||
|
|
||||||
tGTrace("%s conn %p %s received from %s:%d, local info:%s:%d, msg size:%d", transLabel(pTransInst), pConn,
|
tGTrace("%s conn %p %s received from %s, local info:%s, msg size:%d", transLabel(pTransInst), pConn,
|
||||||
TMSG_INFO(transMsg.msgType), taosInetNtoa(pConn->addr.sin_addr), ntohs(pConn->addr.sin_port),
|
TMSG_INFO(transMsg.msgType), pConn->dst, pConn->src, transMsg.contLen);
|
||||||
taosInetNtoa(pConn->localAddr.sin_addr), ntohs(pConn->localAddr.sin_port), transMsg.contLen);
|
|
||||||
} else {
|
} else {
|
||||||
tGTrace("%s conn %p %s received from %s:%d, local info:%s:%d, msg size:%d, resp:%d, code:%d",
|
tGTrace("%s conn %p %s received from %s:%d, local info:%s:%d, msg size:%d, resp:%d, code:%d",
|
||||||
transLabel(pTransInst), pConn, TMSG_INFO(transMsg.msgType), taosInetNtoa(pConn->addr.sin_addr),
|
transLabel(pTransInst), pConn, pConn->dst, pConn->src, transMsg.contLen, pHead->noResp, transMsg.code);
|
||||||
ntohs(pConn->addr.sin_port), taosInetNtoa(pConn->localAddr.sin_addr), ntohs(pConn->localAddr.sin_port),
|
|
||||||
transMsg.contLen, pHead->noResp, transMsg.code);
|
|
||||||
// no ref here
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// pHead->noResp = 1,
|
// pHead->noResp = 1,
|
||||||
|
@ -277,14 +277,13 @@ static void uvHandleReq(SSvrConn* pConn) {
|
||||||
|
|
||||||
// set up conn info
|
// set up conn info
|
||||||
SRpcConnInfo* pConnInfo = &(transMsg.info.conn);
|
SRpcConnInfo* pConnInfo = &(transMsg.info.conn);
|
||||||
pConnInfo->clientIp = (uint32_t)(pConn->addr.sin_addr.s_addr);
|
pConnInfo->clientIp = pConn->clientIp;
|
||||||
pConnInfo->clientPort = ntohs(pConn->addr.sin_port);
|
pConnInfo->clientPort = pConn->port;
|
||||||
tstrncpy(pConnInfo->user, pConn->user, sizeof(pConnInfo->user));
|
tstrncpy(pConnInfo->user, pConn->user, sizeof(pConnInfo->user));
|
||||||
|
|
||||||
transReleaseExHandle(transGetRefMgt(), pConn->refId);
|
transReleaseExHandle(transGetRefMgt(), pConn->refId);
|
||||||
|
|
||||||
(*pTransInst->cfp)(pTransInst->parent, &transMsg, NULL);
|
(*pTransInst->cfp)(pTransInst->parent, &transMsg, NULL);
|
||||||
// uv_timer_start(&pConn->pTimer, uvHandleActivityTimeout, pRpc->idleTime * 10000, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
|
void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
|
||||||
|
@ -417,9 +416,8 @@ static void uvPrepareSendData(SSvrMsg* smsg, uv_buf_t* wb) {
|
||||||
|
|
||||||
STrans* pTransInst = pConn->pTransInst;
|
STrans* pTransInst = pConn->pTransInst;
|
||||||
STraceId* trace = &pMsg->info.traceId;
|
STraceId* trace = &pMsg->info.traceId;
|
||||||
tGTrace("%s conn %p %s is sent to %s:%d, local info:%s:%d, msglen:%d", transLabel(pTransInst), pConn,
|
tGTrace("%s conn %p %s is sent to %s, local info:%s, msglen:%d", transLabel(pTransInst), pConn,
|
||||||
TMSG_INFO(pHead->msgType), taosInetNtoa(pConn->addr.sin_addr), ntohs(pConn->addr.sin_port),
|
TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, len);
|
||||||
taosInetNtoa(pConn->localAddr.sin_addr), ntohs(pConn->localAddr.sin_port), len);
|
|
||||||
pHead->msgLen = htonl(len);
|
pHead->msgLen = htonl(len);
|
||||||
|
|
||||||
wb->base = msg;
|
wb->base = msg;
|
||||||
|
@ -645,20 +643,26 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) {
|
||||||
uv_fileno((const uv_handle_t*)pConn->pTcp, &fd);
|
uv_fileno((const uv_handle_t*)pConn->pTcp, &fd);
|
||||||
tTrace("conn %p created, fd:%d", pConn, fd);
|
tTrace("conn %p created, fd:%d", pConn, fd);
|
||||||
|
|
||||||
int addrlen = sizeof(pConn->addr);
|
struct sockaddr peername, sockname;
|
||||||
if (0 != uv_tcp_getpeername(pConn->pTcp, (struct sockaddr*)&pConn->addr, &addrlen)) {
|
int addrlen = sizeof(peername);
|
||||||
|
if (0 != uv_tcp_getpeername(pConn->pTcp, (struct sockaddr*)&peername, &addrlen)) {
|
||||||
tError("conn %p failed to get peer info", pConn);
|
tError("conn %p failed to get peer info", pConn);
|
||||||
transUnrefSrvHandle(pConn);
|
transUnrefSrvHandle(pConn);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
transGetSockDebugInfo(&peername, pConn->dst);
|
||||||
|
|
||||||
addrlen = sizeof(pConn->localAddr);
|
addrlen = sizeof(sockname);
|
||||||
if (0 != uv_tcp_getsockname(pConn->pTcp, (struct sockaddr*)&pConn->localAddr, &addrlen)) {
|
if (0 != uv_tcp_getsockname(pConn->pTcp, (struct sockaddr*)&sockname, &addrlen)) {
|
||||||
tError("conn %p failed to get local info", pConn);
|
tError("conn %p failed to get local info", pConn);
|
||||||
transUnrefSrvHandle(pConn);
|
transUnrefSrvHandle(pConn);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
transGetSockDebugInfo(&sockname, pConn->src);
|
||||||
|
struct sockaddr_in addr = *(struct sockaddr_in*)&sockname;
|
||||||
|
|
||||||
|
pConn->clientIp = addr.sin_addr.s_addr;
|
||||||
|
pConn->port = ntohs(addr.sin_port);
|
||||||
uv_read_start((uv_stream_t*)(pConn->pTcp), uvAllocRecvBufferCb, uvOnRecvCb);
|
uv_read_start((uv_stream_t*)(pConn->pTcp), uvAllocRecvBufferCb, uvOnRecvCb);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue