From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp60.i.mail.ru (smtp60.i.mail.ru [217.69.128.40]) (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 CD68F45C304 for ; Fri, 27 Nov 2020 14:08:41 +0300 (MSK) From: imeevma@tarantool.org Date: Fri, 27 Nov 2020 14:08:35 +0300 Message-Id: <02c5e808b917dae58d18f471f526fb1aa36ebcf5.1606475303.git.imeevma@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v1 1/1] temporary: locate missing diag in VDBE List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: korablev@tarantool.org Cc: tarantool-patches@dev.tarantool.org --- src/box/sql/vdbe.c | 7 +++++++ src/box/sql/vdbeInt.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c index 724bc188b..0c24a7bce 100644 --- a/src/box/sql/vdbe.c +++ b/src/box/sql/vdbe.c @@ -862,6 +862,7 @@ int sqlVdbeExec(Vdbe *p) } #endif for(pOp=&aOp[p->pc]; 1; pOp++) { + p->pOp = pOp; /* Errors are detected by individual opcodes, with an immediate * jumps to abort_due_to_error. */ @@ -5364,6 +5365,12 @@ abort_due_to_error: /* This is the only way out of this procedure. */ vdbe_return: + if (p->is_aborted) { + if (diag_is_empty(&fiber()->diag)) { + assert(0); + abort(); + } + } testcase( nVmStep>0); p->aCounter[SQL_STMTSTATUS_VM_STEP] += (int)nVmStep; assert(rc == 0 || rc == -1 || rc == SQL_ROW || rc == SQL_DONE); diff --git a/src/box/sql/vdbeInt.h b/src/box/sql/vdbeInt.h index 2c50b6768..24915bcf5 100644 --- a/src/box/sql/vdbeInt.h +++ b/src/box/sql/vdbeInt.h @@ -411,6 +411,7 @@ struct Vdbe { */ Op *aOp; /* Space to hold the virtual machine's program */ + Op *pOp; Mem *aMem; /* The memory locations */ Mem **apArg; /* Arguments to currently executing user function */ /** SQL metadata for DML/DQL queries. */ -- 2.25.1