Re: [HACKERS] ipc-daemon

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Jason Tishler <jason(at)tishler(dot)net>, pgsql-cygwin(at)postgresql(dot)org, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] ipc-daemon
Date: 2002-11-04 19:43:01
Message-ID: 29845.1036438981@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-cygwin pgsql-hackers

Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> Jason Tishler writes:
>> 1. If ipc-daemon is not running, then cygipc's shmget() will return
>> EACCES.
>> 2. This causes PostgreSQL's InternalIpcMemoryCreate() to return
>> NULL.
>> 3. This causes PostgreSQL's PGSharedMemoryCreate() to spin looking
>> for accessible shared memory which it will never find.

> To me, this is a bug in PostgreSQL.

I disagree: just because cygipc returns error codes chosen at random
doesn't mean that we should neglect the clear meaning of an error code.
If a normal Unix system were to return EACCES here, the clear
implication would be that there is an existing segment that we do not
have permission to access. I don't see how "cygipc isn't running"
can reasonably be translated into "permission denied".

>> After reading the shmget() man page, I choose to return ENOSPC. Is
>> there a better choice? Such as ENOMEM?

> My first thought was ENOSYS (system call not implemented -- what BSD
> kernels tend to return if you didn't compile them with SysV IPC support),
> but that isn't a clearly superior choice either.

If you can detect that cygipc is not running, then ENOSYS seems the
best choice for reporting that. (ENOSPC would be misleading too.)

If it's impractical to fix cygipc then I'd grudgingly go along with

if (errno == EEXIST
#ifndef __CYWGIN__ /* cygipc is broken */
|| errno == EACCES
#endif
#ifdef EIDRM
|| errno == EIDRM
#endif
)
return NULL;

regards, tom lane

In response to

Responses

Browse pgsql-cygwin by date

  From Date Subject
Next Message Jason Tishler 2002-11-04 19:48:28 Re: Problem configuring Postgres under Cygwin
Previous Message Peter Eisentraut 2002-11-04 19:25:00 Re: ipc-daemon

Browse pgsql-hackers by date

  From Date Subject
Next Message Alessio Bragadini 2002-11-04 19:46:34 Re: Request for supported platforms
Previous Message Tom Lane 2002-11-04 19:30:10 Re: Is my Internet connection slow