("table 0x%lx(0x%lx) in list '%s' 0x%lx(0x%lx) is incorrect linked, prev table 0x%lx(0x%lx) refered as next to 0x%lx(0x%lx) (check from 0x%lx(0x%lx))",
(ulong)table,(ulong)table->block(),name,
(ulong)root,(ulong)root->block(),
(ulong)table->prev,(ulong)table->prev->block(),
(ulong)table->prev->next,
(ulong)table->prev->next->block(),
(ulong)point,(ulong)point->block()));
//back trace
for(;table!=point;table=table->next)
DBUG_PRINT("error",("back trace 0x%lx(0x%lx)",
(ulong)table,(ulong)table->block()));
result=1;
gotoerr1;
}
table=table->prev;
}while(table!=root&&table!=point);
if(table!=root)
{
DBUG_PRINT("error",
("table 0x%lx(0x%lx) (0x%lx(0x%lx)<-->0x%lx(0x%lx)) not owned by list '%s' 0x%lx(0x%lx)",
(ulong)table,(ulong)table->block(),
(ulong)table->prev,(ulong)table->prev->block(),
(ulong)table->next,(ulong)table->next->block(),
name,(ulong)root,(ulong)root->block()));
return1;
}
err1:
// forward
table=point;
do
{
dump_node(table,name,"list element >> ");
if(table->next->prev!=table)
{
DBUG_PRINT("error",
("table 0x%lx(0x%lx) in list '%s' 0x%lx(0x%lx) is incorrect linked, next table 0x%lx(0x%lx) refered as prev to 0x%lx(0x%lx) (check from 0x%lx(0x%lx))",