List:Falcon Storage Engine« Previous MessageNext Message »
From:Vladislav Vaintroub Date:April 9 2009 6:48am
Subject:PAGE IO bugs, classified by me
View as plain text  
Category: Read behind the EOF / wrong page type.

http://bugs.mysql.com/bug.php?id=43634 
Bug #43634 Gopher crashes due to pread fails when trying to read beyond
database file

Suspected: 
Page  disappeared from pagecache. It is not found on disk either.
Page number is not exorbitant ,just couple of MB behind the EOF.
Possibly:
- Page was freed and not flushed
- Page was "reused" by something else without flushing . Possibly we do not
set dirty flag
- Page was otherwise lost from pagecache due to some race

Duplicate of this bug : http://bugs.mysql.com/bug.php?id=43474 
Bug #43474 Invalid page number referenced from IndexRootPage::findLeaf()

Possibly related to this bug:
http://bugs.mysql.com/bug.php?id=43496 
Bug #43496 Falcon wrong page type (expected PAGE_btree, got something else) 
Possible causes:
- The page was reused by something else and flushed then
- some page was freed, btree page was allocated and uses the same
pagenumber, btree page disappeared from pagecache,
  disk read returns older, deleted page
Sometimes page type is very wrong (expected 5, got 511). Looks like we can
write garbage to disk. I built in a FATAL against that recently.





Category : assertion (level==0) while doing something with index leaves.

http://bugs.mysql.com/bug.php?id=43765 
Bug #43765 falcon_bug_22173a crashes in IndexPage::findNodeInLeaf 
Duplicate.
  http://bugs.mysql.com/bug.php?id=43954 
  Bug #43954 falcon_bug_22150 sometimes crashes the server 

Reason : my fault, found right now. Will push a fix ASAP.


Category: indexSplit 
http://bugs.mysql.com/bug.php?id=37056
Comment: I coded the fix while in Athens.  Fix turned out to be buggy,
crashed  running the full the test suite and I fail to find the bug in the
bugfix.
Quick, reliable yet ugly fix is to change the loop number in already famous
loop "for(i=0; i< 10;i++)"  to 10000000 or so. Or do infinite loop.
Proposal : I vote for quick and ugly hack, instead of spending 1 more month
fixing a bug in a bugfix.



Category: Unknown, possibly not reproducible. OS/filesystem iteraction

http://bugs.mysql.com/bug.php?id=40133 
Bug #40133 sporadic pushbuild crash in embedded: read error in
falcon_temporary.fts
pwrite returns EBADF.
Suspected : replication closed our file descriptor 

http://bugs.mysql.com/bug.php?id=40402 
Bug #40402 Falcon assertion "write error on page 0 (4096/4096/4)"
Has already been seen in last year here :
http://bugs.mysql.com/bug.php?id=38970 : Bug #38970 Crash in function called
from falcon_init when running test cases 
pwrite returns EIO
Suspected: 
a) we pass invalid buffer . This should not happen on page 0 though.
b) buggy linux.

Thread
Blobs, earlyWrite, and All ThatJim Starkey9 Apr
  • Recovery bugs, classified by meVladislav Vaintroub9 Apr
    • PAGE IO bugs, classified by meVladislav Vaintroub9 Apr
    • Recovery and Page IO bugs classified by VladChristopher Powers11 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
      • Re: Recovery bugs, classified by meJames Day13 Apr
        • Re: Recovery bugs, classified by meKevin Lewis13 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
    • Re: Recovery bugs, classified by meChristopher Powers11 Apr
      • Re: Recovery bugs, classified by meJames Day13 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev11 Apr