From: Date: December 17 2008 5:26pm Subject: bzr commit into mysql-6.0-falcon-team branch (vvaintroub:2942) Bug#41545 List-Archive: http://lists.mysql.com/commits/61884 X-Bug: 41545 Message-Id: <0KC100IR74C6Y890@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7BIT #At file:///G:/bzr/mysql-6.0-falcon-team/ 2942 Vladislav Vaintroub 2008-12-17 Bug #41545 sporadic pushbuild failure: [Falcon] Error: read error on database header Falcon crashes in ASSERT if it cannot read header from tablespace. The actual problem seems to be the lack of diskspace on the pushbuild box. Solution: throw exception instead of ASSERT. Exceptions are caught within plugin initialization code, i.e errors like this are handled gracefully with error message instead of just aborting the server. modified: storage/falcon/IO.cpp === modified file 'storage/falcon/IO.cpp' --- a/storage/falcon/IO.cpp 2008-11-20 17:05:50 +0000 +++ b/storage/falcon/IO.cpp 2008-12-17 16:26:04 +0000 @@ -390,7 +390,9 @@ void IO::readHeader(Hdr * header) n = ::read (fileId, buffer, maxPageSize); if (n < (int) sizeof (Hdr)) - FATAL ("read error on database header"); + throw SQLError(IO_ERROR, + "read error on tablespace header, file %s, read %d bytes at least %d was expected", + fileName.getString(), n, (int)sizeof(Hdr)); Hdr* hdr = (Hdr*) buffer; if (falcon_checksums && hdr->pageSize <= n)