Re: bad btree node
Posted in 1992
In article <1992Jun15.160318.3347@anasaz> naomi@anasaz (Naomi Walker) writes:
>
...
>
>This problem is occuring on 4.0 Online on a Tandem machine. We would dearly
>love to install 4.1, but it is not yet available.
>
>Just on the off chance that someone may know this, has anyone ever heard of
>a tbstat, launched by cron, causing this sort of problem? I know, it sounds
>ridiculous, but the coincidence is phenomenal. When we turn on a cron script,
>to run tbstat's every fifteen minutes, the crap starts. We get pages of
>bizarre error messages, which stop immediately when we turn off the script.
>Furthermore, for days afterwards, we get btree node errors (as above).
>
...
>
>19:29:44 bfcheck: bad page: pg_flags 4 != type 10, userp = 40401284, pid = 18286, uid = 102
>19:29:44 buffer header:
>19:29:44 404a63a4: 00000000 00000000 00000000 404a54a4 ........ ....@JT.
>19:29:44 404a63b4: 404ad264 404a3fe4 404a4de4 00020000 @J.d@J?. @JM.....
>19:29:44 404a63c4: 1a050000 00211420 40512000 40401284 .....!. @Q .@@..
>19:29:44 404a63d4: 00000000 00000000 404b3c1c 02000000 ........ @K<.....
>19:29:44 page header:
>19:29:44 40512000: 00211420 031d306e 00000004 001807e4 .!. ..0n ........
>19:29:44 40512010: 00000000 00000000 ........
>19:29:44 slot table and stamp:
>19:29:44 405127fc: 031d306e ..0n
>19:29:44 -- Fail Consistency Check -- btusearch:bad btree node -- pid=18286 user=102 us=40401284
You've probably got a bad index. Here's how to find out what table is the
problem.
1. The first 4 bytes of the page header contain the chunk and page within
the chunk. The first 12 bits are the chunk, and the remaining 20 bits
are the page. So from your output above:
>19:29:44 page header:
>19:29:44 40512000: 00211420 031d306e 00000004 001807e4 .!. ..0n ........
002 11420
^^^ ^^^^^
| | page
|>>>> chunk
2. You can use tbcheck to dump the page:
tbcheck -pp 2 0x11420
Note that tbcheck expects arguments in decimal and the output in the
log file is hex so you have to proceed the arguments with 0x. This may
or may not tell you much.
3. Determine which table contains the bad page by creating an extents
report with tbcheck -pe. The extent report will have a range of pages
for every table, simply determine which table 11420 belongs to.
4. Check the index on the table in question with tbcheck -cI ...
If tbcheck detects an index problem it will allow you to rebuild it.
mark
--
mark jeske (informix consulting)
mark@infmx.com
708-699-5850