Re: SSI bug?

Поиск
Список
Период
Сортировка
От yamt@mwd.biglobe.ne.jp (YAMAMOTO Takashi)
Тема Re: SSI bug?
Дата
Msg-id 20110221234236.4635E19D574@mail.netbsd.org
обсуждение исходный текст
Ответ на Re: SSI bug?  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Ответы Re: SSI bug?  (yamt@mwd.biglobe.ne.jp (YAMAMOTO Takashi))
Список pgsql-hackers
hi,

> "Kevin Grittner" wrote:
>  
>> I'm proceeding on this basis.
>  
> Result attached. I found myself passing around the tuple xmin value
> just about everywhere that the predicate lock target tag was being
> passed, so it finally dawned on me that this logically belonged as
> part of the target tag. That simplified the changes, and the net
> result of following Heikki's suggestion here is the reduction of
> total lines of code by 178 while adding coverage for missed corner
> cases and fixing bugs.
>  
> Thanks again, Heikki!
>  
> I will test this some more tomorrow.  So far I haven't done more than
> ensure it passes the standard regression tests and the isolation
> tests added for SSI.  The latter took awhile because the hash_any
> function was including uninitialized bytes past the length of the tag
> in its calculations.  We should probably either fix that or document
> it.  I had to add another couple bytes to the tag to get it to a four
> byte boundary to fix it.  Easy once you know that's how it works...
>  
> The attached patch can also be viewed here:
>  
>
http://git.postgresql.org/gitweb?p=users/kgrittn/postgres.git;a=commitdiff;h=46fd5ea6728b566c521ec83048bc00a207289dd9
>  
> If this stands up to further testing, the only issue I know of for
> the 9.1 release is to update the documentation of shared memory usage
> to include the new structures.
>  
> -Kevin

i tested ede45e90dd1992bfd3e1e61ce87bad494b81f54d + ssi-multi-update-1.patch
with my application and got the following assertion failure.

YAMAMOTO Takashi

Core was generated by `postgres'.
Program terminated with signal 6, Aborted.
#0  0xbbba4cc7 in _lwp_kill () from /usr/lib/libc.so.12
(gdb) bt
#0  0xbbba4cc7 in _lwp_kill () from /usr/lib/libc.so.12
#1  0xbbba4c85 in raise (s=6) at /siro/nbsd/src/lib/libc/gen/raise.c:48
#2  0xbbba445a in abort () at /siro/nbsd/src/lib/libc/stdlib/abort.c:74
#3  0x0833d9f2 in ExceptionalCondition (   conditionName=0x8493f6d "!(locallock != ((void *)0))",
errorType=0x8370451"FailedAssertion", fileName=0x8493ec3 "predicate.c",    lineNumber=3657) at assert.c:57
 
#4  0x0827977e in CheckTargetForConflictsIn (targettag=0xbfbfce78)   at predicate.c:3657
#5  0x0827bd74 in CheckForSerializableConflictIn (relation=0x99b5bad4,    tuple=0xbfbfcf78, buffer=234) at
predicate.c:3772
#6  0x080a5be8 in heap_update (relation=0x99b5bad4, otid=0xbfbfd038,    newtup=0x99a0aa08, ctid=0xbfbfd03e,
update_xmax=0xbfbfd044,cid=1,    crosscheck=0x0, wait=1 '\001') at heapam.c:2593
 
#7  0x081c81ca in ExecModifyTable (node=0x99a0566c) at nodeModifyTable.c:624
#8  0x081b2153 in ExecProcNode (node=0x99a0566c) at execProcnode.c:371
#9  0x081b0f82 in standard_ExecutorRun (queryDesc=0x99b378f0,    direction=ForwardScanDirection, count=0) at
execMain.c:1247
#10 0xbbaaf352 in pgss_ExecutorRun (queryDesc=0x99b378f0,    direction=ForwardScanDirection, count=0) at
pg_stat_statements.c:541
#11 0xbbab5ee5 in explain_ExecutorRun (queryDesc=0x99b378f0,    direction=ForwardScanDirection, count=0) at
auto_explain.c:201
#12 0x08288ae3 in ProcessQuery (plan=0x99bb404c,    sourceText=0x99b3781c "UPDATE file SET ctime = $1 WHERE fileid =
$2",   params=<value optimized out>, dest=0x84d1f38, completionTag=0xbfbfd2f0 "")   at pquery.c:197
 
#13 0x08288d0a in PortalRunMulti (portal=0x99b3f01c,    isTopLevel=<value optimized out>, dest=dwarf2_read_address:
CorruptedDWARF expression.
 
) at pquery.c:1268
#14 0x0828984a in PortalRun (portal=0x99b3f01c, count=2147483647,    isTopLevel=1 '\001', dest=0x99b07428,
altdest=0x99b07428,   completionTag=0xbfbfd2f0 "") at pquery.c:822
 
#15 0x08286c22 in PostgresMain (argc=2, argv=0xbb9196a4,    username=0xbb9195f8 "takashi") at postgres.c:2004
#16 0x082413f6 in ServerLoop () at postmaster.c:3590
#17 0x082421a8 in PostmasterMain (argc=3, argv=0xbfbfe594) at postmaster.c:1110
#18 0x081e0d09 in main (argc=3, argv=0xbfbfe594) at main.c:199
(gdb) fr 4
#4  0x0827977e in CheckTargetForConflictsIn (targettag=0xbfbfce78)   at predicate.c:3657
3657                                            Assert(locallock != NULL);
(gdb) list
3652
3653                                            locallock = (LOCALPREDICATELOCK *)
3654                                                    hash_search_with_hash_value(LocalPredicateLockHash,
3655
targettag,targettaghash,
 
3656
HASH_FIND,NULL);
 
3657                                            Assert(locallock != NULL);
3658                                            Assert(locallock->held);
3659                                            locallock->held = false;
3660
3661                                            if (locallock->childLocks == 0)
(gdb) 


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

Предыдущее
От: Cédric Villemain
Дата:
Сообщение: Re: pg_resetxlog display bogosity
Следующее
От: Merlin Moncure
Дата:
Сообщение: Re: Void binary patch