From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Write Ahead Logging for Hash Indexes |
Date: | 2016-09-12 01:30:38 |
Message-ID: | CAMkU=1xRt8jBBB7g_7K41W00=br9UrxMVn_rhWhKPLaHfEdM5A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Sep 8, 2016 at 12:09 PM, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
> I plan to do testing using my own testing harness after changing it to
> insert a lot of dummy tuples (ones with negative values in the pseudo-pk
> column, which are never queried by the core part of the harness) and
> deleting them at random intervals. I think that none of pgbench's built in
> tests are likely to give the bucket splitting and squeezing code very much
> exercise.
>
I've implemented this, by adding lines 197 through 202 to the count.pl
script. (I'm reattaching the test case)
Within a few minutes of testing, I start getting Errors like these:
29236 UPDATE XX000 2016-09-11 17:21:25.893 PDT:ERROR: buffer 2762 is not
owned by resource owner Portal
29236 UPDATE XX000 2016-09-11 17:21:25.893 PDT:STATEMENT: update foo set
count=count+1 where index=$1
In one test, I also got an error from my test harness itself indicating
tuples are transiently missing from the index, starting an hour into a test:
child abnormal exit update did not update 1 row: key 9555 updated 0E0 at
count.pl line 194.\n at count.pl line 208.
child abnormal exit update did not update 1 row: key 8870 updated 0E0 at
count.pl line 194.\n at count.pl line 208.
child abnormal exit update did not update 1 row: key 8453 updated 0E0 at
count.pl line 194.\n at count.pl line 208.
Those key values should always find exactly one row to update.
If the tuples were permanently missing from the index, I would keep getting
errors on the same key values very frequently. But I don't get that, the
errors remain infrequent and are on different value each time, so I think
the tuples are in the index but the scan somehow misses them, either while
the bucket is being split or while it is being squeezed.
This on a build without enable-asserts.
Any ideas on how best to go about investigating this?
Cheers,
Jeff
Attachment | Content-Type | Size |
---|---|---|
count.pl | application/octet-stream | 8.8 KB |
crash_REL10.patch | application/octet-stream | 12.9 KB |
do.sh | application/x-sh | 4.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2016-09-12 01:57:48 | Re: Add support for restrictive RLS policies |
Previous Message | Robert Haas | 2016-09-12 01:30:35 | Re: Add support for restrictive RLS policies |