Re: How to shoot yourself in the foot: kill -9 postmaster - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: How to shoot yourself in the foot: kill -9 postmaster
Date
Msg-id Pine.LNX.4.30.0103062011230.778-100000@peter.localdomain
Whole thread Raw
In response to Re: How to shoot yourself in the foot: kill -9 postmaster  (Alfred Perlstein <bright@wintelcom.net>)
Responses Re: How to shoot yourself in the foot: kill -9 postmaster  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: How to shoot yourself in the foot: kill -9 postmaster  (ncm@zembu.com (Nathan Myers))
List pgsql-hackers
Alfred Perlstein writes:

> Seriously, there's some dispute on the type that 'shm_nattch' is,
> under Solaris it's "shmatt_t" (unsigned long afaik), under FreeBSD
> it's 'short' (i should fix this. :)).

What I don't like is that my /usr/include/sys/shm.h (through other
headers) has:

typedef unsigned long int shmatt_t;

/* Data structure describing a set of semaphores.  */
struct shmid_ds {   struct ipc_perm shm_perm;           /* operation permission struct */   size_t shm_segsz;
       /* size of segment in bytes */   __time_t shm_atime;                 /* time of last shmat() */   unsigned long
int__unused1;   __time_t shm_dtime;                 /* time of last shmdt() */   unsigned long int __unused2;
__time_tshm_ctime;                 /* time of last change by shmctl() */   unsigned long int __unused3;   __pid_t
shm_cpid;                  /* pid of creator */   __pid_t shm_lpid;                   /* pid of last shmop */
shmatt_tshm_nattch;                /* number of current attaches */   unsigned long int __unused4;   unsigned long int
__unused5;};
 

whereas /usr/src/linux/include/shm.h has:

struct shmid_ds {       struct ipc_perm         shm_perm;       /* operation perms */       int
shm_segsz;     /* size of segment (bytes) */       __kernel_time_t         shm_atime;      /* last attach time */
__kernel_time_t        shm_dtime;      /* last detach time */       __kernel_time_t         shm_ctime;      /* last
changetime */       __kernel_ipc_pid_t      shm_cpid;       /* pid of creator */       __kernel_ipc_pid_t
shm_lpid;      /* pid of last operator */       unsigned short          shm_nattch;     /* no. of current attaches */
   unsigned short          shm_unused;     /* compatibility */       void                    *shm_unused2;   /* ditto -
usedby DIPC */       void                    *shm_unused3;   /* unused */
 
};


Not only note the shm_nattch type, but also shm_segsz, and the "unused"
fields in between.  I don't know a thing about the Linux kernel sources,
but this doesn't seem right.

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/



pgsql-hackers by date:

Previous
From: Lamar Owen
Date:
Subject: Re: How to shoot yourself in the foot: kill -9 postmaster
Next
From: Alfred Perlstein
Date:
Subject: Re: How to shoot yourself in the foot: kill -9 postmaster