Dan,

of course InnoDB could catch the error and send the error
message to the client. But the problem is that we have to
get NFS to flush the files, otherwise we may very easily get
database corruption in case of a crash.

MyISAM does not call f(data)sync at all, but then you may have
to run repair if it crashes.

I looked at FreeBSD manuals at www.freebsd.org and did not
find any notice that fdatasync would not work for NFS.
Presumably with some settings it should work, or maybe
there is a bug in the OS/hardware combination.

Regards,

Heikki

-----Original Message-----
From: Dan Nelson <[EMAIL PROTECTED]>
To: Heikki Tuuri <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Friday, June 15, 2001 8:57 PM
Subject: Re: mysql died with innodb


>In the last episode (Jun 15), Heikki Tuuri said:
>> Sven,
>> 
>> line 637 in mysql/innobase/os/os0file.c asserts that
>> 
>> TRUE == os_file_flush(file)
>> 
>> If you look at about line 557, you see how InnoDB does
>> the file flush: the default is to call fdatasync.
>>
>> To solve the problem we should look at the NFS manuals about what
>> Unix functions are available in it. Maybe there is some special
>> NFS_fsync?
>
>When fsync() is called on an NFS filehandle, the system flushes any
>dirty buffers on the client, and if over an NFSv3 mount, commits the
>writes.
>
>Sven: did you get any "nfs server timeout" messages in /var/log/messages?
>
>Heikki: how hard would it be to send the errno back to the client if
>filesystem calls fail?  On regular MYISAM tables, the user sees an
>error message (or something gets dumped to the error log) and the
>server doesn't assert().
>
>-- 
> Dan Nelson
> [EMAIL PROTECTED]


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to