[tarantool-patches] [PATCH] Iproto call won't leak if transaction isn't committed

Maria Khaydich maria.khaydich at tarantool.org
Wed Aug 28 17:32:35 MSK 2019


In case of throwing client error because of unfinished
transaction we did not destroy used port. It could possibly
cause huge memory leaks as could be seen with top or its
analogues when performing net.box test run in a loop.

Closes #4388
---
Issue:
https://github.com/tarantool/tarantool/issues/4388
Branch:
https://github.com/tarantool/tarantool/tree/eljashm/gh-4388-uncommitted-iproto-leaks-not

 src/box/call.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/box/call.c b/src/box/call.c
index ac2bf3004..169210767 100644
--- a/src/box/call.c
+++ b/src/box/call.c
@@ -132,6 +132,7 @@ box_process_call(struct call_request *request, struct port *port)
 
 	if (txn != NULL) {
 		diag_set(ClientError, ER_FUNCTION_TX_ACTIVE);
+		port_destroy(port);
 		txn_rollback(txn);
 		fiber_gc();
 		return -1;
-- 
2.20.1 (Apple Git-117)





More information about the Tarantool-patches mailing list