Parallel make problem with git master

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Parallel make problem with git master
Date: 2011-03-05 23:33:52
Message-ID: 201103052333.p25NXqd21689@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I am seeing the following compile problem with gmake -j2:

/bin/sh ../../../config/install-sh -c -d '/usr/local/pgsql/lib'
/bin/sh ../../../../config/install-sh -c -m 644 ./plpgsql.control '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -m 644 ./plperl.control '/usr/local/pgsql/share/extension'
/bin/sh ../../../../config/install-sh -c -m 644 ./plpgsql--1.0.sql '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -m 644 ./plperl--1.0.sql '/usr/local/pgsql/share/extension'
/bin/sh ../../../../config/install-sh -c -m 644 ./plpgsql--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -m 644 ./plperl--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
/bin/sh ../../../../config/install-sh -c -d '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -m 644 ./plperlu.control '/usr/local/pgsql/share/extension'
mkdir: /usr/local/pgsql/share/extension: File exists
/bin/sh ../../../config/install-sh -c -m 644 ./plperlu--1.0.sql '/usr/local/pgsql/share/extension'
mkdir: /usr/local/pgsql/share/extension: File exists
gmake[3]: *** [installdirs] Error 1
gmake[3]: Leaving directory `/usr/var/local/src/gen/pgsql/postgresql/src/pl/plpgsql/src'
gmake[2]: *** [install] Error 2
gmake[2]: Leaving directory `/usr/var/local/src/gen/pgsql/postgresql/src/pl/plpgsql'
gmake[1]: *** [install-plpgsql-recurse] Error 2
gmake[1]: *** Waiting for unfinished jobs....
/bin/sh ../../../config/install-sh -c -m 644 ./plperlu--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -d '/usr/local/pgsql/share/extension'
/bin/sh ../../../config/install-sh -c -m 755 plperl.so '/usr/local/pgsql/lib/plperl.so'
mkdir: /usr/local/pgsql/share/extension: File exists
mkdir: /usr/local/pgsql/share/extension: File exists
gmake[2]: *** [installdirs] Error 1
gmake[2]: Leaving directory `/usr/var/local/src/gen/pgsql/postgresql/src/pl/plperl'
gmake[1]: *** [install-plperl-recurse] Error 2
gmake[1]: Leaving directory `/usr/var/local/src/gen/pgsql/postgresql/src/pl'
gmake: *** [install-pl-recurse] Error 2

This only happens with parallel gmake and I think is caused by the
assumption that "mkdir extension" will happen before any files are
installed, which doesn't happen with parallel gmake.

I have fixed the bug with the attached, applied patch which moves
'installdirs' to a dependency of the extension directory file install,
rather than a more top-level target so the parallel gmake always creates
the directory first.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

Attachment Content-Type Size
/rtmp/parellel.diff text/x-diff 2.7 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2011-03-06 02:15:05 fix for pg_upgrade
Previous Message Andres Freund 2011-03-05 22:49:24 Re: Alpha4 release blockers (was Re: wrapping up this CommitFest)