Thread

  1. [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c

    Andres Freund <andres@2ndquadrant.com> — 2012-11-29T13:50:57Z

    Hi,
    
    Currently "make -jN check" fails during "creating temporary installation"
    with:
    make[1]: *** read jobs pipe: Invalid argument.  Stop.
    make[1]: *** Waiting for unfinished jobs....
    make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
    in install.log.
    
    This is due to pg_regress invoking make while being invoked by make
    itself. gnu make internally sets the MAKEFLAGS environment variable to
    remember arguments. The problem in this case is that it contains
    "--jobserver-fds=4,5" which makes the pg_regress invoked make think its
    running as a make child process.
    
    Now the problem obviously can be worked around by using "make -jN &&
    make check" instead of "make -j16 check" but I several times now have
    spent time trying to figure out what I broke so it sees sensible to
    "fix" this.
    
    Any arguments against doing so?
    
    The attached patch also resets the MAKELEVEL environment variable for
    good measure. I haven't seen any indication that its needed, but it
    feelds safer ;)
    
    Greetings,
    
    Andres Freund
    
    -- 
     Andres Freund	                   http://www.2ndQuadrant.com/
     PostgreSQL Development, 24x7 Support, Training & Services
    
  2. Re: [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c

    Robert Haas <robertmhaas@gmail.com> — 2012-11-30T19:41:14Z

    On Thu, Nov 29, 2012 at 8:50 AM, Andres Freund <andres@2ndquadrant.com> wrote:
    > Hi,
    >
    > Currently "make -jN check" fails during "creating temporary installation"
    > with:
    > make[1]: *** read jobs pipe: Invalid argument.  Stop.
    > make[1]: *** Waiting for unfinished jobs....
    > make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
    > in install.log.
    >
    > This is due to pg_regress invoking make while being invoked by make
    > itself. gnu make internally sets the MAKEFLAGS environment variable to
    > remember arguments. The problem in this case is that it contains
    > "--jobserver-fds=4,5" which makes the pg_regress invoked make think its
    > running as a make child process.
    >
    > Now the problem obviously can be worked around by using "make -jN &&
    > make check" instead of "make -j16 check" but I several times now have
    > spent time trying to figure out what I broke so it sees sensible to
    > "fix" this.
    >
    > Any arguments against doing so?
    >
    > The attached patch also resets the MAKELEVEL environment variable for
    > good measure. I haven't seen any indication that its needed, but it
    > feelds safer ;)
    
    Seems reasonable to me.
    
    But shouldn't the comment in the patch say "to be certain the child
    DOESN'T notice the make above us"?
    
    -- 
    Robert Haas
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise PostgreSQL Company
    
    
    
  3. Re: [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c

    Andres Freund <andres@2ndquadrant.com> — 2012-11-30T23:58:05Z

    On 2012-11-30 14:41:14 -0500, Robert Haas wrote:
    > On Thu, Nov 29, 2012 at 8:50 AM, Andres Freund <andres@2ndquadrant.com> wrote:
    > > Hi,
    > >
    > > Currently "make -jN check" fails during "creating temporary installation"
    > > with:
    > > make[1]: *** read jobs pipe: Invalid argument.  Stop.
    > > make[1]: *** Waiting for unfinished jobs....
    > > make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
    > > in install.log.
    > >
    > > This is due to pg_regress invoking make while being invoked by make
    > > itself. gnu make internally sets the MAKEFLAGS environment variable to
    > > remember arguments. The problem in this case is that it contains
    > > "--jobserver-fds=4,5" which makes the pg_regress invoked make think its
    > > running as a make child process.
    > >
    > > Now the problem obviously can be worked around by using "make -jN &&
    > > make check" instead of "make -j16 check" but I several times now have
    > > spent time trying to figure out what I broke so it sees sensible to
    > > "fix" this.
    > >
    > > Any arguments against doing so?
    > >
    > > The attached patch also resets the MAKELEVEL environment variable for
    > > good measure. I haven't seen any indication that its needed, but it
    > > feelds safer ;)
    >
    > Seems reasonable to me.
    >
    > But shouldn't the comment in the patch say "to be certain the child
    > DOESN'T notice the make above us"?
    
    Yes. obviously. Stupid, errr, fingers.
    
    Thanks for spotting.
    
    Andres Freund
    
    --
     Andres Freund	                   http://www.2ndQuadrant.com/
     PostgreSQL Development, 24x7 Support, Training & Services
    
    
    
  4. Re: [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c

    Andres Freund <andres@2ndquadrant.com> — 2012-12-01T00:00:37Z

    > Yes. obviously. Stupid, errr, fingers.
    
    This time round it really was fatfingering the wrong key after having
    been climbing for 4h. Really.
    
    Trivially updated patch attached.
    
    -- 
     Andres Freund	                   http://www.2ndQuadrant.com/
     PostgreSQL Development, 24x7 Support, Training & Services
    
  5. Re: [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c

    Tom Lane <tgl@sss.pgh.pa.us> — 2012-12-01T22:24:59Z

    Andres Freund <andres@2ndquadrant.com> writes:
    > Trivially updated patch attached.
    
    Applied, thanks.
    
    			regards, tom lane