Re: EINTR error in SunOS

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: EINTR error in SunOS
Дата
Msg-id 200601020114.k021Ei413709@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: EINTR error in SunOS  (Doug McNaught <doug@mcnaught.org>)
Ответы Re: EINTR error in SunOS  (Doug Royer <Doug@Royer.com>)
Список pgsql-hackers
Let me give you a sky-high view of this.  Database reliability requires
that the disk drive be 100% reliable.  If any part of the disk storage
fails (I/O write failure, NFS failure) we have to assume that the disk
storage is corrupt and the database needs to be restored from backup. 
The NFS failure modes seem to suggest that any kind of NFS failure makes
our storage suspect, meaning we want NFS to be as non-failure mode as
possible.  Making PostgreSQL work on NFS system itself is risky, and
allowing it to work on systems that will soft-failure on writes seems
even worse.

---------------------------------------------------------------------------

Doug McNaught wrote:
> Doug Royer <Doug@Royer.com> writes:
> 
> >  From the Linux 'nfs' man page:
> >
> >   intr           If  an  NFS file operation has a major timeout and it is
> >                  hard mounted, then allow signals to  interupt  the  file
> >                  operation  and  cause  it to return EINTR to the calling
> >                  program.  The default is to not allow file operations to
> >                  be interrupted.
> >
> > Solaris 'mount_nfs' man page
> >
> >   intr | nointr
> >                  Allow (do not allow) keyboard interrupts to kill
> >                  a  process  that  is  hung  while  waiting for a
> >                  response on  a  hard-mounted  file  system.  The
> >                  default  is  intr,  which  makes it possible for
> >                  clients to interrupt applications  that  may  be
> >                  waiting for a remote mount.
> >
> > The Solaris and Linux defaults seem to be the opposite of each other.
> 
> Actually they're the same, though differently worded.  "Major timeout"
> means the server has not responded for N milliseconds, not that the
> client has decided to time out the request.  If 'hard' is set, the
> client will keep trying indefinitely, though you can interrupt it if
> you've specified 'intr'.
> 
> > So I think we are saying the same thing.
> >
> > You can get EINTR with hard+intr mounts.
> 
> Yes, *only* if the user specifically decides to send a signal, or if
> it uses SIGALRM or whatever.  I agree that if you expect 'intr' to be
> used, your code needs to handle EINTR.
> 
> > I am not sure what you get with soft mounts on a timeout.
> 
> The Linux manpage implies you get EIO.
> 
> -Doug
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Doug McNaught
Дата:
Сообщение: Re: EINTR error in SunOS
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Add a "Known Issues" section