Hi, the new hash index code on 11003eb failed an assertion yesterday:
TRAP: FailedAssertion("!(bucket == obucket)", File: "hashpage.c", Line: 1037) Statement was update public.hash_i4_heap set seqno = public.hash_i4_heap.random; It can be reproduced with the data directory (Debian stretch amd64) I've put here: http://ansel.ydns.eu/~andreas/_hash_splitbucket_guts.tar.xz (12 MB) Backtrace below. The cluster hasn't suffered any crashes before this incident. regards, Andreas Core was generated by `postgres: smith regression [local] UPDATE '. Program terminated with signal SIGABRT, Aborted. (gdb) bt #0 0x00007f49c40cc198 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007f49c40cd61a in __GI_abort () at abort.c:89 #2 0x00000000007f55c1 in ExceptionalCondition (conditionName=conditionName@entry=0x84f890 "!(bucket == obucket)", errorType=errorType@entry=0x83665d "FailedAssertion", fileName=fileName@entry=0x84f86a "hashpage.c", lineNumber=lineNumber@entry=1037) at assert.c:54 #3 0x00000000004a3d41 in _hash_splitbucket_guts (rel=rel@entry=0x1251ff8, metabuf=metabuf@entry=1703, obucket=obucket@entry=37, nbucket=nbucket@entry=549, obuf=obuf@entry=3082, nbuf=nbuf@entry=1754, htab=0x0, maxbucket=549, highmask=1023, lowmask=511) at hashpage.c:1037 #4 0x00000000004a5627 in _hash_splitbucket (lowmask=511, highmask=1023, maxbucket=549, nbuf=1754, obuf=3082, nbucket=549, obucket=37, metabuf=1703, rel=0x1251ff8) at hashpage.c:894 #5 _hash_expandtable (rel=0x1251ff8, metabuf=1703) at hashpage.c:768 #6 0x00000000004a1f71 in _hash_doinsert (rel=rel@entry=0x1251ff8, itup=itup@entry=0x26dc830) at hashinsert.c:236 #7 0x00000000004a01c3 in hashinsert (rel=0x1251ff8, values=<optimized out>, isnull=<optimized out>, ht_ctid=0x26dc6fc, heapRel=<optimized out>, checkUnique=<optimized out>) at hash.c:247 #8 0x00000000005ded1b in ExecInsertIndexTuples (slot=slot@entry=0x26dbd10, tupleid=tupleid@entry=0x26dc6fc, estate=estate@entry=0x2530028, noDupErr=noDupErr@entry=0 '\000', specConflict=specConflict@entry=0x0, arbiterIndexes=arbiterIndexes@entry=0x0) at execIndexing.c:388 #9 0x00000000005fddaa in ExecUpdate (tupleid=tupleid@entry=0x7ffcaa7c9e40, oldtuple=oldtuple@entry=0x0, slot=slot@entry=0x26dbd10, planSlot=planSlot@entry=0x26db278, epqstate=epqstate@entry=0x26dac98, estate=estate@entry=0x2530028, canSetTag=1 '\001') at nodeModifyTable.c:1030 #10 0x00000000005fe49c in ExecModifyTable (node=node@entry=0x26dabf0) at nodeModifyTable.c:1516 #11 0x00000000005e3a18 in ExecProcNode (node=node@entry=0x26dabf0) at execProcnode.c:396 #12 0x00000000005dfabe in ExecutePlan (dest=0x1c2ecd0, direction=<optimized out>, numberTuples=0, sendTuples=<optimized out>, operation=CMD_UPDATE, use_parallel_mode=<optimized out>, planstate=0x26dabf0, estate=0x2530028) at execMain.c:1567 #13 standard_ExecutorRun (queryDesc=0x1c2ed68, direction=<optimized out>, count=0) at execMain.c:338 #14 0x0000000000701b94 in ProcessQuery (plan=<optimized out>, sourceText=0xfff228 "update public.hash_i4_heap set \n seqno = public.hash_i4_heap.random\nreturning \n (select option_value from information_schema.foreign_server_options limit 1 offset 2)\n as c0", params=0x0, dest=0x1c2ecd0, completionTag=0x7ffcaa7ca020 "") at pquery.c:185 #15 0x0000000000701e0b in PortalRunMulti (portal=portal@entry=0x25c52b0, isTopLevel=isTopLevel@entry=1 '\001', setHoldSnapshot=setHoldSnapshot@entry=1 '\001', dest=dest@entry=0x1c2ecd0, altdest=0xca30e0 <donothingDR>, completionTag=completionTag@entry=0x7ffcaa7ca020 "") at pquery.c:1299 #16 0x00000000007020f9 in FillPortalStore (portal=portal@entry=0x25c52b0, isTopLevel=isTopLevel@entry=1 '\001') at pquery.c:1045 #17 0x0000000000702bcd in PortalRun (portal=portal@entry=0x25c52b0, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=1 '\001', dest=dest@entry=0x199f248, altdest=altdest@entry=0x199f248, completionTag=completionTag@entry=0x7ffcaa7ca3d0 "") at pquery.c:782 #18 0x0000000000700379 in exec_simple_query (query_string=0xfff228 "update public.hash_i4_heap set \n seqno = public.hash_i4_heap.random\nreturning \n (select option_value from information_schema.foreign_server_options limit 1 offset 2)\n as c0") at postgres.c:1094 #19 PostgresMain (argc=<optimized out>, argv=argv@entry=0xfad1d8, dbname=<optimized out>, username=<optimized out>) at postgres.c:4069 #20 0x000000000046d6c9 in BackendRun (port=0xfa8c60) at postmaster.c:4271 #21 BackendStartup (port=0xfa8c60) at postmaster.c:3945 #22 ServerLoop () at postmaster.c:1701 #23 0x0000000000698ab9 in PostmasterMain (argc=argc@entry=4, argv=argv@entry=0xf765d0) at postmaster.c:1309 #24 0x000000000046e88d in main (argc=4, argv=0xf765d0) at main.c:228 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers