Re: [sqlsmith] Short reads in hash indexes

Поиск
Список
Период
Сортировка
От Andreas Seltenreich
Тема Re: [sqlsmith] Short reads in hash indexes
Дата
Msg-id 87y3zrzbu5.fsf_-_@ansel.ydns.eu
обсуждение исходный текст
Ответ на Short reads in hash indexes (was: [sqlsmith] Failed assertion in _hash_splitbucket_guts)  (Andreas Seltenreich <seltenreich@gmx.de>)
Ответы Re: [sqlsmith] Short reads in hash indexes  (Amit Kapila <amit.kapila16@gmail.com>)
Re: [HACKERS] [sqlsmith] Short reads in hash indexes  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
Andreas Seltenreich writes:

> Amit Kapila writes:
>
>> On Sat, Dec 3, 2016 at 3:44 PM, Andreas Seltenreich <seltenreich@gmx.de> wrote:
>>> Amit Kapila writes:
>>>
>>>> [2. text/x-diff; fix_hash_bucketsplit_sqlsmith_v1.patch]
>>> Ok, I'll do testing with the patch applied.
>
> Good news: the assertion hasn't fired since the patch is in.

Meh, it fired again today after being silent for 100e6 queries :-/
I guess I need to add some confidence qualification on such statements.
Maybe sigmas as they do at CERN…

> smith=# select * from state_report where sqlstate = 'XX001';
> -[ RECORD 1 ]------------------------------------------------------------------------------
> count    | 10
> sqlstate | XX001
> sample   | ERROR:  could not read block 1173 in file "base/16384/17256": read only 0 of 8192 bytes
> hosts    | {airbisquit,frell,gorgo,marbit,pillcrow,quakken}
>
>> Hmm, I am not sure if this is related to previous problem, but it
>> could be.  Is it possible to get the operation and or callstack for
>> above failure?
>
> Ok, will turn the elog into an assertion to get at the backtraces.

Doing so on top of 4212cb7, I caught the backtrace below.  Query was:

--8<---------------cut here---------------start------------->8---
set max_parallel_workers_per_gather = 0;
select  count(1) from      public.hash_name_heap as ref_2      join public.rtest_emplog as sample_1             on
(ref_2.random= sample_1.who); 
--8<---------------cut here---------------end--------------->8---

I've put the data directory where it can be reproduced here:
   http://ansel.ydns.eu/~andreas/hash_index_short_read.tar.xz (12MB)

regards,
Andreas

TRAP: FailedAssertion("!(!"short read of block")", File: "md.c", Line: 782)
#2  0x00000000007f7f11 in ExceptionalCondition (conditionName=conditionName@entry=0x9a1ae9 "!(!\"short read of
block\")",errorType=errorType@entry=0x83db3d "FailedAssertion", fileName=fileName@entry=0x946a9a "md.c",
lineNumber=lineNumber@entry=782)at assert.c:54 
#3  0x00000000006fb305 in mdread (reln=<optimized out>, forknum=<optimized out>, blocknum=4702, buffer=0x7fe97e7e1280
"\"")at md.c:782 
#4  0x00000000006d0ffa in ReadBuffer_common (smgr=0x2af7408, relpersistence=<optimized out>,
forkNum=forkNum@entry=MAIN_FORKNUM,blockNum=blockNum@entry=4702, mode=RBM_NORMAL, strategy=<optimized out>,
hit=0x7ffde9df11cf"") at bufmgr.c:890 
#5  0x00000000006d1a20 in ReadBufferExtended (reln=0x2fd10d8, forkNum=forkNum@entry=MAIN_FORKNUM, blockNum=4702,
mode=mode@entry=RBM_NORMAL,strategy=strategy@entry=0x0) at bufmgr.c:664 
#6  0x00000000006d1b74 in ReadBuffer (blockNum=<optimized out>, reln=<optimized out>) at bufmgr.c:596
#7  ReleaseAndReadBuffer (buffer=buffer@entry=87109984, relation=<optimized out>, blockNum=<optimized out>) at
bufmgr.c:1540
#8  0x00000000004c047b in index_fetch_heap (scan=scan@entry=0x5313160) at indexam.c:469
#9  0x00000000004c05ee in index_getnext (scan=scan@entry=0x5313160, direction=direction@entry=ForwardScanDirection) at
indexam.c:565
#10 0x00000000005f9b71 in IndexNext (node=node@entry=0x5311c48) at nodeIndexscan.c:105
#11 0x00000000005ec492 in ExecScanFetch (recheckMtd=0x5f9af0 <IndexRecheck>, accessMtd=0x5f9b30 <IndexNext>,
node=0x5311c48)at execScan.c:95 
#12 ExecScan (node=0x5311c48, accessMtd=0x5f9b30 <IndexNext>, recheckMtd=0x5f9af0 <IndexRecheck>) at execScan.c:145
#13 0x00000000005e4da8 in ExecProcNode (node=node@entry=0x5311c48) at execProcnode.c:427
#14 0x00000000006014f9 in ExecNestLoop (node=node@entry=0x53110a8) at nodeNestloop.c:174
#15 0x00000000005e4cf8 in ExecProcNode (node=node@entry=0x53110a8) at execProcnode.c:476
#16 0x0000000000601436 in ExecNestLoop (node=node@entry=0x5310e00) at nodeNestloop.c:123
#17 0x00000000005e4cf8 in ExecProcNode (node=node@entry=0x5310e00) at execProcnode.c:476
#18 0x0000000000601436 in ExecNestLoop (node=node@entry=0x530f698) at nodeNestloop.c:123
#19 0x00000000005e4cf8 in ExecProcNode (node=node@entry=0x530f698) at execProcnode.c:476
#20 0x00000000005e0e9e in ExecutePlan (dest=0x603a4a8, direction=<optimized out>, numberTuples=0, sendTuples=<optimized
out>,operation=CMD_SELECT, use_parallel_mode=<optimized out>, planstate=0x530f698, estate=0x46bc008) at execMain.c:1568 
#21 standard_ExecutorRun (queryDesc=0x3475168, direction=<optimized out>, count=0) at execMain.c:338
#22 0x00000000007029f8 in PortalRunSelect (portal=portal@entry=0x2561e18, forward=forward@entry=1 '\001', count=0,
count@entry=9223372036854775807,dest=dest@entry=0x603a4a8) at pquery.c:946 
#23 0x0000000000703f3e in PortalRun (portal=portal@entry=0x2561e18, count=count@entry=9223372036854775807,
isTopLevel=isTopLevel@entry=1'\001', dest=dest@entry=0x603a4a8, altdest=altdest@entry=0x603a4a8,
completionTag=completionTag@entry=0x7ffde9df18b0"") at pquery.c:787 
#24 0x0000000000700d5b in exec_simple_query (query_string=0x4685258 ) at postgres.c:1094
#25 PostgresMain (argc=<optimized out>, argv=argv@entry=0x256f5a8, dbname=0x256f580 "regression", username=<optimized
out>)at postgres.c:4069 
#26 0x000000000046daf2 in BackendRun (port=0x25645a0) at postmaster.c:4274
#27 BackendStartup (port=0x25645a0) at postmaster.c:3946
#28 ServerLoop () at postmaster.c:1704
#29 0x0000000000699d28 in PostmasterMain (argc=argc@entry=4, argv=argv@entry=0x25425c0) at postmaster.c:1312
#30 0x000000000046ec96 in main (argc=4, argv=0x25425c0) at main.c:228



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Unlogged tables cleanup
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Indirect indexes