From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [94.100.177.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 513764696C0 for ; Fri, 13 Dec 2019 10:05:20 +0300 (MSK) From: Ilya Kosarev Date: Fri, 13 Dec 2019 10:05:08 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH 0/3] Safe allocation on truncation and deletion List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org Cc: v.shpilevoy@tarantool.org space:truncate() and space:delete() could fail on memory allocations when reaching memtx_memory limit. As far as it is quite an ill behaviour, it is fixed in this patchset through denial of extra memory reservation and unconstrained allocation of service tuples in BOX_TRUNCATE_ID space. Branch: https://github.com/tarantool/tarantool/tree/i.kosarev/gh-3807-safe-alloc-on-truncation Issue: https://github.com/tarantool/tarantool/issues/3807 Ilya Kosarev (3): b-tree: return NULL on matras_alloc fail memtx: don't reserve extra memory if not needed tuple: use calloc for service truncation tuples src/box/memtx_engine.c | 50 ++++++++++++++++++++++++++-------------- src/box/memtx_engine.h | 2 +- src/box/memtx_space.c | 34 ++++++++++++++++++++------- src/box/tuple.c | 16 +++++++++---- src/box/tuple.h | 2 +- src/box/tuple_format.c | 1 + src/box/tuple_format.h | 10 +++++++- src/box/vy_stmt.c | 3 ++- src/lib/salad/bps_tree.h | 2 ++ 9 files changed, 87 insertions(+), 33 deletions(-) -- 2.17.1