memcpy SEGV on AIX 5.3

From: Seneca Cunningham <scunning(at)ca(dot)afilias(dot)info>
To: pgsql-hackers(at)postgresql(dot)org
Cc: pgsql-ports(at)postgresql(dot)org
Subject: memcpy SEGV on AIX 5.3
Date: 2005-10-24 22:17:04
Message-ID: 435D5D60.7040800@ca.afilias.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-ports

On an powerPC AIX 5.3 box, initdb from 8.1beta4 segfaults at
src/backend/utils/hash/dynahash.c:673. No segfaults occur and all 98
regression tests pass if a test is added to see if keycopy is memcpy and
if it is, go through a loop memcpying one byte at a time instead of
memcpying everything at once.

Configuration details:
-bash-2.05b$ gcc -v
Using built-in specs.
Target: powerpc-ibm-aix5.3.0.0
Configured with: /opt/src/gcc4/gcc-4.0.1/configure
--prefix=/opt/dbs/gcc4 --enable-languages=c,c++
Thread model: aix
gcc version 4.0.1
-bash-2.05b$ oslevel -r
5300-03
./configure --prefix=/opt/dbs/pgsql81b4-afilias-AIX53-2005-10-24
--with-includes=/opt/freeware/include --enable-debug
--enable-thread-safety --with-libraries=/opt/freeware/lib --enable-casert

InitPostgres
`-> RelationCacheInitialize
`-> formrdesc
`-> RelationCacheInsert
`-> hash_search
`-> keycopy (keycopy == memcpy)

--- dynahash.c.orig 2005-10-14 22:49:33.000000000 -0400
+++ dynahash.c 2005-10-24 18:00:51.785106864 -0400
@@ -670,7 +670,14 @@

/* copy key into record */
currBucket->hashvalue = hashvalue;
- hashp->keycopy(ELEMENTKEY(currBucket), keyPtr, keysize);
+ if (hashp->keycopy == memcpy)
+ {
+ int tempfoo;
+ for (tempfoo = 0; tempfoo < keysize; tempfoo++)
+ memcpy(ELEMENTKEY(currBucket)+tempfoo,
keyPtr+tempfoo, 1);
+ }
+ else
+ hashp->keycopy(ELEMENTKEY(currBucket), keyPtr, keysize);

/* caller is expected to fill the data field on return */

--
Seneca Cunningham
scunning(at)ca(dot)afilias(dot)info

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2005-10-24 22:24:32 Re: sort_mem statistics ...
Previous Message Simon Riggs 2005-10-24 22:05:10 Re: Seeing context switch storm with 10/13 snapshot of

Browse pgsql-ports by date

  From Date Subject
Next Message Bruce Momjian 2005-10-24 22:30:41 Re: AIX FAQ update for 5.3 socket address size issue
Previous Message Chris Browne 2005-10-20 16:27:41 AIX FAQ update for 5.3 socket address size issue