From 3f3523e6a73f6edd7afb29f64c853fec43f48508 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 18 Jan 2016 12:45:12 +0000 Subject: [PATCH] Re: talloc_abort in notmuch_thread_get_tags () when db has been modified --- 7c/11c5540a70ed733306a10684edeecc8c9bef16 | 125 ++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 7c/11c5540a70ed733306a10684edeecc8c9bef16 diff --git a/7c/11c5540a70ed733306a10684edeecc8c9bef16 b/7c/11c5540a70ed733306a10684edeecc8c9bef16 new file mode 100644 index 000000000..2cd79b172 --- /dev/null +++ b/7c/11c5540a70ed733306a10684edeecc8c9bef16 @@ -0,0 +1,125 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id D21946DE180F + for ; Mon, 18 Jan 2016 04:45:18 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: -0.474 +X-Spam-Level: +X-Spam-Status: No, score=-0.474 tagged_above=-999 required=5 tests=[AWL=0.227, + DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, + RCVD_IN_MSPIKE_H2=-0.001] autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id u9s4eK6XP4gY for ; + Mon, 18 Jan 2016 04:45:16 -0800 (PST) +Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com + [209.85.217.176]) + by arlo.cworth.org (Postfix) with ESMTPS id 641E26DE17FD + for ; Mon, 18 Jan 2016 04:45:16 -0800 (PST) +Received: by mail-lb0-f176.google.com with SMTP id oh2so346791488lbb.3 + for ; Mon, 18 Jan 2016 04:45:16 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gaute-vetsj-com.20150623.gappssmtp.com; s=20150623; + h=date:from:subject:to:references:in-reply-to:user-agent:message-id + :mime-version:content-type:content-transfer-encoding; + bh=5RIPm81YJN5IkfS93qM2SKR2k6BhzT8aviQQtD1TUI4=; + b=X+tbsk40GV6VJ+aPEm4HOvPIBEKJU+NkSYQdPXHTVRaeep7ieBa0KzqrsmHz48kMt1 + vBWYmtjHWG1wxx6jVaPGCjO/RyA7APYC1sfhxabzTy+rVx1NME1adDAZlYJw1eS+plug + K61+yL/Lb09Y5b8LudCf2bEx+DEjcT4BSj4vGizhPHvWVL3nljnf4+3Oo3tCcKnHjxon + Jl+WiA1OMKAY9xYM9SA4BH1R9z8YIMScRJjoudYFx/4RQaYCtYZrNtcrTtxWJQId6S3E + chP7JPzAL4O48dU7AQpdIbYL/nFjL7VeCpT2PYEgMuzD5rry1xonho68LEJRxIT9IrRM + mmrQ== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:date:from:subject:to:references:in-reply-to + :user-agent:message-id:mime-version:content-type + :content-transfer-encoding; + bh=5RIPm81YJN5IkfS93qM2SKR2k6BhzT8aviQQtD1TUI4=; + b=f0wLqCVnW9Q/Y55f3uKE6m2uGTG3ZTBE1JlNZXnv+K0m+xdny78z+bxvbfxvuFxfyA + UxPkojioyKWP/KcU338ws6zHQQ+PqdDa7nlRUccWkrYlGWfJOQYeL36chyZVhdq2Qg3Z + 2x18Mo0dsCjNDE/gzGSky6zSsyWc/xWyXr66YdeZbmpjUjcsBsLUmH/bzllyXzSkT4cZ + CXfTnAP2z0vdDwG3bYf8o+HNiaBpLg2ZHOIb2ldVIdymduDMmZWR8S84vHiHUYoDjsGC + iKjf+u1EGbMDKu1AP/AH3Qeu8BNEZbKFHipFo6WaRxssykxeVjOj6+XC0rCsJeh1lwnO + FvXA== +X-Gm-Message-State: ALoCoQnR6/qwHjWqKJIlL9P/fkNBkdj3XqVnW74gkR6maYxEiAbS1ZXqER8YwFNuNHKhPH0abpfi4/Y8x9105A4uxsF6G31cbg== +X-Received: by 10.112.14.102 with SMTP id o6mr8090856lbc.87.1453121114129; + Mon, 18 Jan 2016 04:45:14 -0800 (PST) +Received: from localhost ([128.39.46.106]) + by smtp.gmail.com with ESMTPSA id nv8sm3159577lbb.7.2016.01.18.04.45.13 + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Mon, 18 Jan 2016 04:45:13 -0800 (PST) +Date: Mon, 18 Jan 2016 12:45:12 +0000 +From: Gaute Hope +Subject: Re: talloc_abort in notmuch_thread_get_tags () when db has been + modified +To: David Bremner , notmuch@notmuchmail.org +References: +In-Reply-To: +User-Agent: astroid/vv0.4-213-g53abb3e2 (https://github.com/gauteh/astroid) +Message-Id: <1453121100-astroid-2-c62fwcrm91-18877@strange> +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8; format=flowed +Content-Transfer-Encoding: quoted-printable +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.20 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Mon, 18 Jan 2016 12:45:19 -0000 + +David Bremner writes on January 18, 2016 13:25: +> The most likely cause of such a crash looks to me like nm_thread is NULL +> or corrupted when passed in to get_tags. It's used without checking as a +> talloc context, and that call to talloc never returns. +> + +Ok, I'll check some further. I am checking whether nm_thread is NULL +though, the preceding code is as follows +(astroid/src/modes/thread_index/thread_index.cc:258): + +``` + for (; + notmuch_threads_valid (threads); + notmuch_threads_move_to_next (threads)) { + + notmuch_thread_t * thread; + thread =3D notmuch_threads_get (threads); + + if (thread =3D=3D NULL) { + log << error << "ti: error: could not get thread." << endl; + throw database_error ("ti: could not get thread (is NULL)"); + } + + /* test for revision discarded */ + const char * ti =3D notmuch_thread_get_thread_id (thread); + if (ti =3D=3D NULL) { + log << error << "ti: revision discarded, trying to reopen." << endl= +; + reopen_tries++; + refresh (all, current_thread + count, false); + return; + } + + + NotmuchThread *t =3D new NotmuchThread (thread); // get_tags is insid= +e here + + notmuch_thread_destroy (thread); + +``` + +(note that there is a bit of code there trying to determine whether the +db is still valid, or needs to be re-opened) + +- g += -- 2.26.2