Problem with On-Line ver.5.10.UC1
Posted in 2000
Topics: General Discussion
Sometimes on my console there is this message:
10:20:44 bfcheck: bad page: pg_addr 0 != bp->bf_pagenum 11371c, userp = 300036210:20:44 buffer header:
10:20:44 306964d0: 00000001 00000000 30003698 30424d40 ........ 0.6.0BM@
10:20:44 306964e0: 309f2810 3097ae90 300001b4
00030000 0.(.0... 0.......
10:20:44 306964f0: 97010000 0011371c 36887000 30002824 ......7. 6.p.0.($
10:20:44 30696500: 00000000 00000000 30a48224 04000000 ........ 0..$....
10:20:44 page header:
10:20:44 36887000: 00000000 00000000 00000000 00000000 ........ ........
10:20:44 36887010: 00000000 00000000 ........
10:20:44 slot table and stamp:
10:20:44 36887ffc: 7c25b0f8 |%..
10:20:44 -- Fail Consistency Check -- bfwrite -- pid=63244 user=212 us=3000369210:20:56 buffer header:
10:20:56 30817490: 00000001 00000000 3000406c 304251a0 ........ 0.@l0BQ.
10:20:56 308174a0: 30572e50 3086d490 30815050 00030000 0W.P0... 0.PP....
Is there a method to find the bad table and correct it ?
Someone can help me, please.
Thanks.
Oscar
Oscarillo wrote:
> Sometimes on my console there is this message:
>
> 10:20:44 bfcheck: bad page: pg_addr 0 != bp->bf_pagenum 11371c, userp = 300036210:20:44
This says: The buffer has a page from page address 0x0011371c which disagrees with the page's
header in the buffer:
> buffer header:
> 10:20:44 306964d0: 00000001 00000000 30003698 30424d40 ........ 0.6.0BM@
> 10:20:44 306964e0: 309f2810 3097ae90 300001b4
> 00030000 0.(.0... 0.......
> 10:20:44 306964f0: 97010000 0011371c 36887000 30002824 ......7. 6.p.0.($
This is the buffer header. Notice the page address above.
>
> 10:20:44 30696500: 00000000 00000000 30a48224 04000000 ........ 0..$....
> 10:20:44 page header:
> 10:20:44 36887000: 00000000 00000000 00000000 00000000 ........ ........>
Here is the page header that first set of 8 zeros should contain the page address 001371c, it is NULL.
> 10:20:44 36887010: 00000000 00000000 ........
> 10:20:44 slot table and stamp:
> 10:20:44 36887ffc: 7c25b0f8 |%..
> 10:20:44 -- Fail Consistency Check -- bfwrite -- pid=63244 user=212 us=3000369210:20:56 buffer header:
> 10:20:56 30817490: 00000001 00000000 3000406c 304251a0 ........ 0.@l0BQ.
> 10:20:56 308174a0: 30572e50 3086d490 30815050 00030000 0W.P0... 0.PP....>
> Is there a method to find the bad table and correct it ?
There MAY not be a bad table. It may be an application overwritting the buffer pool through shared
memory. OL5.xx does not protect itself from this as well as 7.xx does. To check for table damage
run oncheck -pe and find a table with an extent that overlaps this address and oncheck -cDI the table.
Also look into your applications and look for uninitialized pointers, mutliple frees of the same address,
freeing static data, mallocs whose results are not verified, etc.
Art S. Kagel