[AppleWin][Cygwin Perl][EWS] preprocessor.pm is occasionally failing to spawn a child process EWS are observing AppleWin binding generation errors like: > Processing document /home/buildbot/worker/Windows-EWS/build/Source/WebCore/svg/SVGAltGlyphDefElement.idl did not generate anything at /home/buildbot/worker/Windows-EWS/build/Source/WebCore/bindings/scripts/CodeGenerator.pm line 247. > Could NOT find interface definition for Node in ./dom/Node.idl at /home/buildbot/worker/Windows-EWS/build/Source/WebCore/bindings/scripts/CodeGenerator.pm line 502. Bug 84274 is the past attempt to fix the issue. AppleWin should use Win32 Perl as well as WinCairo does.
make_names.pl failed today. https://ews-build.webkit.org/#/builders/10/builds/4744 https://bugs.webkit.org/attachment.cgi?id=388672&action=prettypatch https://bugs.webkit.org/show_bug.cgi?id=206416 > xlinkattrs.in > Generating ../../DerivedSources/WebCore/XMLNSNames.cpp, ../../DerivedSources/WebCore/XMLNSNames.h > Failed to read names from file: C:/cygwin/home/buildbot/worker/Windows-EWS/build/Source/WebCore/xml/xmlnsattrs.in at C:/cygwin/home/buildbot/worker/Windows-EWS/build/Source/WebCore/dom/make_names.pl line 331. It also invoke cc to preprocess. https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/dom/make_names.pl This seems a variant of this issue.
I haven't observed the issue after the fix (, while observing issues of Bug 206565). Closed.
<rdar://problem/59016784>
(In reply to Fujii Hironori from comment #2) Oops. My bad. This is a comment for Bug 206399. Reopened this ticket.
It's still failing today. > Could NOT find interface definition for SVGGradientElement in ./svg/SVGGradientElement.idl at /home/buildbot/worker/Windows-EWS/build/Source/WebCore/bindings/scripts/CodeGenerator.pm line 502. https://ews-build.webkit.org/#/builders/10/builds/7486
It's still failing today. > Processing document /home/buildbot/worker/Windows-EWS/build/Source/WebCore/svg/SVGSwitchElement.idl did not generate anything at /home/buildbot/worker/Windows-EWS/build/Source/WebCore/bindings/scripts/CodeGenerator.pm line 247. https://ews-build.webkit.org/#/builders/10/builds/29815/steps/22/logs/stdio
(In reply to Fujii Hironori from comment #0) > AppleWin should use Win32 Perl as well as WinCairo does. Or, how about using 64bit Cygwin? It seems that EWS is using 32bit cygwin.
(In reply to Fujii Hironori from comment #7) > (In reply to Fujii Hironori from comment #0) > > AppleWin should use Win32 Perl as well as WinCairo does. > > Or, how about using 64bit Cygwin? It seems that EWS is using 32bit cygwin. I think we're using 64-bit Cygwin, if I am not mistaken?
I thought it's 32bit just because the log has C:\cygwin not C:\cygwin64, and CygwinDownloader downloads setup-x86.exe.
Seems like 64-bit. buildbot@ews215 ~$ uname -m x86_64 See: https://stackoverflow.com/a/22689191
(In reply to Fujii Hironori from comment #9) > I thought it's 32bit just because the log has C:\cygwin not C:\cygwin64, and > CygwinDownloader downloads setup-x86.exe. I think we just kept the Cygwin folder name when upgrading to 64-bit, since I believe Win EWS on Cygwin depends on this.
This issue is still happening. https://ews-build.webkit.org/#/builders/10/builds/36343 > Processing document /home/buildbot/worker/Windows-EWS/build/Source/WebCore/Modules/webaudio/PannerNode.idl did not generate anything. at /home/buildbot/worker/Windows-EWS/build/Source/WebCore/bindings/scripts/CodeGenerator.pm line 196. I'm going to try some ideas. * Use cl.exe to preprocess even for Cygwin * Sleep random seconds before retrying process spawning
I realized GENERATE_DOM_NAMES is already using CMAKE_CXX_COMPILER to preprocess. CMAKE_CXX_COMPILER is cl.exe in AppleWin Cygwin builds. However, looking at Comment 1 failure, spawning cl.exe also failed.
It seems that GENERATE_BINDINGS is also using cl.exe for preprocessing in AppleWin Cygwin builds. Umm, is this a problem of spawning a win32 process in Cygwin? Can using Cygwin gcc solve the issue?
Another idea: * No so many files are using preprocessor directives nowadays. Skip spawning a process for files which doesn't have "#if" by grepping "#if" in preprocessor.pm.
r267101 stops cygpath process spawning. I'm going to watch AppleWin EWS for a week. Bug 216527 – preprocessor.pm: Use Cygwin::win_to_posix_path and Cygwin::posix_to_win_path instead of cygpath command
I've observed no failures since r267101. Closed.