FailedAssertion

Started by Yves Weißigover 14 years ago2 messages
#1Yves Weißig
weissig@rbg.informatik.tu-darmstadt.de

Hi together,

I'm currently debugging my developed AM and are running into this problem:

TRAP: FailedAssertion("!(((bool) (((void*)(tid) != ((void *)0)) &&
((tid)->ip_posid != 0))))", File: "indexam.c", Line: 488)

Can anybody explain what it means? I'm having difficulties to understand
what went wrong.

Regards, Yves

#2Nicolas Barbier
nicolas.barbier@gmail.com
In reply to: Yves Weißig (#1)
Re: FailedAssertion

[ Forgot the list. ]

2011/5/12, Yves Weißig <weissig@rbg.informatik.tu-darmstadt.de>:

I'm currently debugging my developed AM and are running into this problem:

TRAP: FailedAssertion("!(((bool) (((void*)(tid) != ((void *)0)) &&
((tid)->ip_posid != 0))))", File: "indexam.c", Line: 488)

Can anybody explain what it means? I'm having difficulties to understand
what went wrong.

Just in case you are wondering about the details of the macro-expansion:

indexam.c:484:

/* Switch to correct buffer if we don't have it already */
prev_buf = scan->xs_cbuf;
scan->xs_cbuf = ReleaseAndReadBuffer(scan->xs_cbuf,
scan->heapRelation,
ItemPointerGetBlockNumber(tid));

I.e., what you see is the expansion of ItemPointerGetBlockNumber,
which is (itemptr.h:69):

AssertMacro(ItemPointerIsValid(pointer)), \
BlockIdGetBlockNumber(&(pointer)->ip_blkid) \

ItemPointerIsValid is (itemptr.h:62):

((bool) (PointerIsValid(pointer) && ((pointer)->ip_posid != 0)))

I.e., ultimately the whole thing checks whether tid is non-null and
its ip_posid member is non-zero ("whether tid is a valid item
pointer").

I hope that helps you to figure out what happens in the context of
what you are doing.

Nicolas

--
A. Because it breaks the logical sequence of discussion.
Q. Why is top posting bad?