From: Justus Winter <justus@sequoia-pgp.org>
To: David Bremner <david@tethera.net>, "W. Trevor King" <wking@tremily.us>
Cc: notmuch@notmuchmail.org
Subject: Re: Crash with Python bindings
Date: Fri, 16 Mar 2018 13:12:26 +0100 [thread overview]
Message-ID: <87r2ok8bit.fsf@europa.jade-hamburg.de> (raw)
In-Reply-To: <87k1ucp6xb.fsf@tethera.net>
[-- Attachment #1: Type: text/plain, Size: 1177 bytes --]
David Bremner <david@tethera.net> writes:
> "W. Trevor King" <wking@tremily.us> writes:
>
>> you can avoid the abort (which happens when q.__del__ is called after
>> db.__del__). We could make that sort of cleanup easier with context
>> managers for Query objects (we have them for databases since [3]), and
>> they look like the only object that keep an internal database
>> reference:
>>
>> with Database() as db:
>> with Query(db, "*") as q:
>> # do something with q
>> db.close()
So while this shouldn't crash of course, this code is wrong. The
context manager closes the database, so doing db.close() at the end of
the block is superfluous.
> I'm reminded [1] that this problem still exists. If noone has any idea
> of a fix, should we document one of the workarounds?
I don't remember the details, but the different semantics of garbage
collection and talloc was problematic. In essence, every wrapping
Python object must keep a reference to its parent (as in parent in the
talloc hierarchy).
The bug report [1] sounds like that the crash happens at interpreter
shutdown, where iirc the objects destructors are called in arbitrary
order.
Justus
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
next prev parent reply other threads:[~2018-03-16 12:12 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-12 9:41 Crash with Python bindings Konrad Hinsen
2016-01-12 13:11 ` David Bremner
2016-01-12 14:21 ` Konrad Hinsen
2016-01-12 15:26 ` David Bremner
2016-01-12 19:03 ` David Bremner
2016-01-12 19:13 ` Binding access to ~/.notmuch-config (was: Crash with Python bindings) W. Trevor King
2016-01-13 11:25 ` Binding access to ~/.notmuch-config Konrad Hinsen
2016-01-13 12:25 ` David Bremner
2016-01-13 17:23 ` W. Trevor King
[not found] ` <20160112102329.4269.20741@thinkbox.jade-hamburg.de>
2016-01-12 14:23 ` Crash with Python bindings Konrad Hinsen
2016-01-12 18:51 ` W. Trevor King
2018-03-16 11:59 ` David Bremner
2018-03-16 12:12 ` Justus Winter [this message]
2018-03-16 18:30 ` Floris Bruynooghe
2018-03-16 22:40 ` Daniel Kahn Gillmor
2018-03-18 8:01 ` Floris Bruynooghe
2018-03-21 10:16 ` New Python bindings (was: Crash with Python bindings) Justus Winter
2018-03-25 17:40 ` pytest integration for the notmuch test suite David Bremner
2018-03-25 17:40 ` [PATCH 1/3] configure: check for pytest binary David Bremner
2018-03-26 20:55 ` Floris Bruynooghe
2018-03-25 17:40 ` [PATCH 2/3] test: add new test_expect_pytest_success David Bremner
2018-03-25 17:40 ` [PATCH 3/3] test: add example test using pytest David Bremner
2018-03-25 19:14 ` pytest integration for the notmuch test suite Tomi Ollila
2018-03-26 11:31 ` David Bremner
2018-03-26 21:01 ` Floris Bruynooghe
2018-03-26 21:25 ` David Bremner
2018-03-26 20:47 ` New Python bindings (was: Crash with Python bindings) Floris Bruynooghe
2018-03-27 22:29 ` New Python bindings Justus Winter
2018-03-28 22:07 ` Floris Bruynooghe
2018-03-28 7:20 ` New Python bindings (was: Crash with Python bindings) Brian May
2018-03-28 13:42 ` David Bremner
2018-03-28 22:15 ` Floris Bruynooghe
2018-03-28 22:37 ` Brian May
2018-03-28 23:13 ` David Bremner
2018-04-04 22:37 ` Brian May
2018-04-05 1:09 ` Pypi David Bremner
2018-03-28 22:10 ` New Python bindings (was: Crash with Python bindings) Floris Bruynooghe
2016-01-12 18:08 ` Crash with Python bindings W. Trevor King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r2ok8bit.fsf@europa.jade-hamburg.de \
--to=justus@sequoia-pgp.org \
--cc=david@tethera.net \
--cc=notmuch@notmuchmail.org \
--cc=wking@tremily.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).