Greetings, and thanks so much for the feedback! I watched the build, and it hung on a single step early on for 6h. There is an instability forking children reliably. I've seen this come and go on my machine.
Here is the relevant code, back from several years ago when cygwin was 32bit. The first branch should work unmodified, but posix_spawnp fails with 'no error', hence the ifdef. I have likewise seen the CreateProcess fail, but much less frequently. At the point of failure, the program was trying to run 'ar x libfoo.a' in a child and simply hung. Suggestions? Take care, ============================================================================= #if !defined(__CYGWIN__) int vsystem(char *command) { char *c; const char *x1[]={"/bin/sh","-c",NULL,NULL},*spc=" \n\t",**p1,**pp,**pe; int s; pid_t pid; posix_spawnattr_t attr; posix_spawn_file_actions_t file_actions; extern char **environ; if (strpbrk(command,"\"'$<>")) (p1=x1)[2]=command; else { p1=(void *)FN2; pe=p1+sizeof(FN2)/sizeof(*p1); for (pp=p1,c=command;pp<pe && (*pp=strtok(c,spc));c=NULL,pp++); massert(pp<pe); } massert(!posix_spawn_file_actions_init(&file_actions)); massert(!posix_spawnattr_init(&attr)); massert(!posix_spawnp(&pid, *p1, &file_actions, &attr, (void *)p1, environ)); massert(!posix_spawnattr_destroy(&attr)); massert(!posix_spawn_file_actions_destroy(&file_actions)); massert(pid>0); massert(pid==waitpid(pid,&s,0)); if ((s>>8)&128) emsg("execvp failure when executing '%s': %s\n",command,strerror((s>>8)&0x7f)); return s; } #elif defined(__CYGWIN__) #include <tchar.h> #include <time.h> #include <windows.h> #include <sys/cygwin.h> int vsystem(const char *command) { STARTUPINFO s={0}; PROCESS_INFORMATION p={0}; unsigned int e; char *cmd=NULL,*r; massert((r=strpbrk(command," \n\t"))-command<sizeof(FN2)); memcpy(FN2,command,r-command); FN2[r-command]=0; cygwin_conv_path(CCP_POSIX_TO_WIN_A,FN2,FN3,sizeof(FN3)); massert(snprintf(FN1,sizeof(FN1),"%s %s",FN3,r)>=0); command=FN1; s.cb=sizeof(s); massert(CreateProcess(cmd,(void *)command,NULL,NULL,FALSE,0,NULL,NULL,&s,&p)); massert(!WaitForSingleObject(p.hProcess,INFINITE)); massert(GetExitCodeProcess(p.hProcess,&e)); massert(CloseHandle(p.hProcess)); massert(CloseHandle(p.hThread)); return e; } Brian Inglis <brian.ing...@systematicsw.ab.ca> writes: > It looks like your GH build was cancelled hitting the 6 hour job limit! > > How long did the build take in your VB VM? > > If you look at the bottom of the Summary log page, you can download > the build Artifacts, as well as the log archive from within the build > log window. > > But it looks like your enemy here is time, so you need to look at all > the log timestamps, and do anything you can to increase caching and > parallelism, maybe: > > MAKEOPTS+="-j " # "unlimited" jobs > > I have also had to force that in src_test to speed up massive numbers of > tests: > > MAKEFLAGS+="-j " cygtest # "unlimited" jobs -- Camm Maguire c...@maguirefamily.org ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah