fix memory leave and hang when handle_error

This commit is contained in:
Rongsong Shen 2025-11-18 15:22:33 +08:00
parent e3946383f4
commit 26e3c21c87
4 changed files with 12 additions and 4 deletions

View file

@ -414,7 +414,7 @@ static int handle_output(endpoint_t* ep)
static int handle_error(endpoint_t* ep)
{
iomgr_t* iomgr = (iomgr_t*)ep->owner;
iomgr_t* iomgr = (iomgr_t*)ep->iomgr;
if (iomgr != NULL) {
iomgr_unmonitor(iomgr, ep);

View file

@ -11,6 +11,11 @@
#include "utils.h"
#include "xce/types.h"
#define REQUEST_FROM(req) \
((req)->from == NULL) \
? "Unknown" \
: (((req)->from->name == NULL) ? "Unknown" : (req->from->name))
int xce_encode(xce_request_t* req, io_packet_t* pkt)
{
struct capn c;
@ -19,7 +24,8 @@ int xce_encode(xce_request_t* req, io_packet_t* pkt)
Request_ptr rp;
int rc;
TRACE("%s request op %d seq %ld", __func__, req->opcode, req->seq);
TRACE("%s request op %d seq %ld from %s", __func__, req->opcode, req->seq,
REQUEST_FROM(req));
capn_init_malloc(&c);
cs = capn_root(&c).seg;
@ -58,7 +64,8 @@ int xce_decode(io_packet_t* pkt, xce_request_t* req)
decode_Request(req, &rq);
TRACE("%s request opcode %d seq %ld", __func__, req->opcode, req->seq);
TRACE("%s request op %d seq %ld from %s", __func__, req->opcode, req->seq,
REQUEST_FROM(req));
capn_free(&c);
free_packet(pkt);