| From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
|---|---|
| To: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
| Cc: | Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: select_parallel test failure: gather sometimes losing tuples (maybe during rescans)? |
| Date: | 2018-03-04 09:27:01 |
| Message-ID: | CAEepm=2m-icXU5n3KXsC+bpEFwK76Nbag2g7GPsMGC-KTq8yAQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Sun, Mar 4, 2018 at 5:40 PM, Thomas Munro
<thomas(dot)munro(at)enterprisedb(dot)com> wrote:
> Could shm_mq_detach_internal() need a pg_write_barrier() before it
> writes mq_detached = true, to make sure that anyone who observes that
> can also see the most recent increase of mq_bytes_written?
I can reproduce both failure modes (missing tuples and "lost contact")
in the regression database with the attached Python script on my Mac.
It takes a few minutes and seems to be happen sooner when my machine
is also doing other stuff (playing debugging music...).
I can reproduce it at 34db06ef9a1d7f36391c64293bf1e0ce44a33915
"shm_mq: Reduce spinlock usage." but (at least so far) not at the
preceding commit.
I can fix it with the following patch, which writes XXX out to the log
where it would otherwise miss a final message sent just before
detaching with sufficiently bad timing/memory ordering. This patch
isn't my proposed fix, it's just a demonstration of what's busted.
There could be a better way to structure things than this.
--
Thomas Munro
http://www.enterprisedb.com
| Attachment | Content-Type | Size |
|---|---|---|
| fix.patch | application/octet-stream | 793 bytes |
| test.py | text/x-python-script | 649 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Magnus Hagander | 2018-03-04 09:46:50 | Re: select_parallel test failure: gather sometimes losing tuples (maybe during rescans)? |
| Previous Message | Fabien COELHO | 2018-03-04 09:09:11 | Re: pgbench - allow to specify scale as a size |