Обсуждение: [PATCH] make -jN check fails / unset MAKEFLAGS in pg_regress.c
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
Вложения
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
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
> 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
Вложения
Andres Freund <andres@2ndquadrant.com> writes: > Trivially updated patch attached. Applied, thanks. regards, tom lane