Bug 53591 - print-vse-failure-logs: "Found 0 VSE Build Logs" and "WebKit/WebKitBuild/obj" is not there
Summary: print-vse-failure-logs: "Found 0 VSE Build Logs" and "WebKit/WebKitBuild/obj"...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows XP
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 53590
Blocks:
  Show dependency treegraph
 
Reported: 2011-02-02 06:42 PST by A. Farber
Modified: 2011-03-16 09:26 PDT (History)
6 users (show)

See Also:


Attachments
Patched print-vse-failure-logs (5.51 KB, patch)
2011-02-21 11:07 PST, Felipe
no flags Details | Formatted Diff | Diff
For compatibility with former patch (24.86 KB, patch)
2011-02-21 11:27 PST, Felipe
no flags Details | Formatted Diff | Diff
*This* is the patch (3.53 KB, patch)
2011-02-22 16:33 PST, Felipe
eric: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description A. Farber 2011-02-02 06:42:51 PST
Hello,

I'm trying to build with VC++ 2005 Express and WinXP SP3 PC 
(actually I've tried using 2 different PCs).

After I fix the path to the print-vse-failure-logs
(please see the other bug reported by me:
https://bugs.webkit.org/show_bug.cgi?id=53590 )
the build still fails, but I don't see why:

afarber@AFARBER-DT:~> ./WebKit/Tools/Scripts/build-webkit
WebKitSupportLibrary is up-to-date.
Building results into: /home/afarber/WebKit/WebKitBuild
WEBKITOUTPUTDIR is set to: C:\cygwin\home\afarber\WebKit\WebKitBuild
WEBKITLIBRARIESDIR is set to: C:\cygwin\home\afarber\WebKit\WebKitLibraries\win
/cygdrive/c/Program Files/Microsoft Visual Studio
8/Common7/IDE/VCExpress.exe win\WebKit.vcproj\WebKit.sln /build
Release
Found 0 Visual Studio Express Build Logs:
===== BUILD FAILED ======
Please ensure you have run WebKit/Tools/Scripts/update-webkit to
install dependencies.
You can view build errors by checking the BuildLog.htm files located at:
/home/afarber/WebKit/WebKitBuild/obj/<project>/<config>.

afarber@AFARBER-DT:~> ll /home/afarber/WebKit/WebKitBuild/obj/
ls: cannot access /home/afarber/WebKit/WebKitBuild/obj/: No such file
or directory

I've been suggested by aroben@apple.com on the mailing list
to submit this situation as bug report.

At the same time, I've been able to build WebKit on Mac.
So it must be something related to WinXP + VC++ 2005 Express

Regards
Alex
Comment 1 A. Farber 2011-02-02 06:48:30 PST
At the same time
C:\cygwin\home\afarber\WebKit\WebKitBuild\Release\obj\WebKit\BuildLog.htm
says:

    Performing Pre-Build Event...
/usr/bin/bash
Project : error PRJ0002 : Error result 1 returned from 'C:\WINDOWS\system32\cmd.exe'.
Project : warning PRJ0018 : The following environment variables were not found:
$(PRODUCTION)

so there is a build failure, but
print-vse-failure-logs fails to report it
Comment 2 Adam Roben (:aroben) 2011-02-02 07:09:52 PST
I think print-vse-failure-logs needs to be updated now that the layout of WebKitBuild has changed.
Comment 3 Felipe 2011-02-18 12:35:04 PST
I tried to execute print-vse-failure-logs (after tried to build webkit) and got this error:

Traceback (most recent call last):
  File "WebKit/Tools/Scripts/print-vse-failure-logs", line 113, in <module>
    PrintVisualStudioExpressLogs().main()
  File "WebKit/Tools/Scripts/print-vse-failure-logs", line 102, in main
    build_log_paths = self._sort_buildlogs(self._find_buildlogs(self._obj_directory()))
  File "WebKit/Tools/Scripts/print-vse-failure-logs", line 67, in _sort_buildlogs
    build_order = self._build_order()
  File "WebKit/Tools/Scripts/print-vse-failure-logs", line 60, in _build_order
    sln_path = os.path.join(scm.find_checkout_root(), "WebKit", "win", "WebKit.vcproj", "WebKit.sln")
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 50, in find_checkout_root
    scm_system = default_scm()
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 66, in default_scm
    scm_system = detect_scm_system(cwd, patch_directories)
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 86, in detect_scm_system
    if Git.in_working_directory(absolute_path):
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 632, in in_working_directory
    return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true"
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/system/executive.py", line 101, in run_command
    return Executive().run_command(*args, **kwargs)
  File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/system/executive.py", line 354, in run_command
    close_fds=self._should_close_fds())
  File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
Comment 4 Adam Roben (:aroben) 2011-02-18 12:47:56 PST
(In reply to comment #3)
>     return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true"

It's trying to execute git. Felipe, do you have git installed? Is it in your path?

This seems like a different issue from the one the reporter described.
Comment 5 Felipe 2011-02-18 15:29:06 PST
(In reply to comment #4)
> (In reply to comment #3)
> >     return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true"
> 
> It's trying to execute git. Felipe, do you have git installed? Is it in your path?
> 
> This seems like a different issue from the one the reporter described.

OK, I installed git now and run print-vse-failure-logs again, and got:

The current directory (/home/Felipe) is not a WebKit checkout, using /home/Felipe/WebKit
Found 0 Visual Studio Express Build Logs:

I think it seems now the same "issue from the one the reporter described".
Thank you.
Comment 6 Felipe 2011-02-20 08:54:48 PST
A. Farber,

You are sure:  there's no a  Webkit/WebKitBuild/obj  directory.  The possible directories you'll find are  WebKit/WebKitBuild/Release/obj  or  WebKit/WebKitBuild/Debug/obj, depending the options passed to build-webkit (--release  (default) or  --debug).

Happens that build-webkit doesn't pass this option to print-vse-failure-logs (as well as print-vse-failure-logs doesn't read such an option).  So there's no way to print-vse-failure-logs know correctly in what directory it should search for logs.
Comment 7 Felipe 2011-02-21 11:07:29 PST
Created attachment 83192 [details]
Patched print-vse-failure-logs

Patch for print-vse-failure-logs accept now options "--debug" or "--release".  Lines 114-128 read this possible option, printing help if an error occurs.  Class  PrintVisualStudioExpressLogs  now take one argument "mode", wich can be "--debug" or "--release" or "" (default is "") and is stored as a new attribute  self._mode , so the constructor of the class was changed (lines 47, 49) as well as the call to the class in line 129.  Options "--configuration" (instead of "--top-level") and  self._mode  are passed to the script webkit-build-directory in line 86.  A "# NOTE:" in method "_obj_directory" was removed, since it's obsolete.

New copyright line was added.
Comment 8 WebKit Review Bot 2011-02-21 11:10:27 PST
Attachment 83192 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files']" exit_code: 1

Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 9 Felipe 2011-02-21 11:27:42 PST
Created attachment 83196 [details]
For compatibility with former patch

This patch for build-webkit is for compatibility with the patched print-vse-failure-logs.  Now it takes the $configuration (line 582) and pass the correct option to print-vse-failure-logs, depending on $configuration (lines 586-590).  Also line 596 was changed to show the correct directory for build logs.
Comment 10 WebKit Review Bot 2011-02-21 11:31:40 PST
Attachment 83196 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files']" exit_code: 1

Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 11 Felipe 2011-02-22 16:33:38 PST
Created attachment 83414 [details]
*This* is the patch

Sorry, I was not attempt in how to create a patch.
This file contains the desired patches, and I marked old files as obsolete.
Comment 12 Adam Roben (:aroben) 2011-02-23 07:58:36 PST
Comment on attachment 83414 [details]
*This* is the patch

Can we make print-vse-failure-logs respect the current configuration? I.e., this:

set-webkit-configuration --debug
print-vse-failure-logs

…should cause the Debug logs to be printed.
Comment 13 Eric Seidel (no email) 2011-02-24 02:55:06 PST
Comment on attachment 83414 [details]
*This* is the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=83414&action=review

How do we test this?  We have unit testing for Python and perl, seems we should use it.

> Tools/Scripts/build-webkit:590
> +            if ($configuration eq 'Debug') {
> +                system(File::Spec->catfile($scriptDir, "print-vse-failure-logs"), '--debug');
> +            } else {
> +                system(File::Spec->catfile($scriptDir, "print-vse-failure-logs"), '--release');
> +            }

I'm pretty sure that wkdirs.pm has a function for returning --debug or --release from the $configuration information.

> Tools/Scripts/print-vse-failure-logs:126
> +    elif len(sys.argv) == 2:
> +        if sys.argv[1] != "--release" and sys.argv[1] != "--debug":
> +            usage()
> +        option = sys.argv[1]

Seems we should consider using optparse.  It's very easy to do.
Comment 14 Eric Seidel (no email) 2011-02-24 02:55:21 PST
Thanks for the patch, btw!
Comment 15 Felipe 2011-02-24 18:00:44 PST
>Can we make print-vse-failure-logs respect the current configuration? I.e., this:
>
>set-webkit-configuration --debug
>print-vse-failure-logs

I didn't find a module that could catch the default configuration and pass it to a python script. The only way I see to make print-vse-failure-logs respect the current configuration is making it find "manually" the configuration file, without using a module for it.

>I'm pretty sure that wkdirs.pm has a function for returning --debug or --release from the $configuration information.

Yes, I find a function argumentsForConfiguration, from webkitdirs.pm, that returns an array with configuration options. '--debug' or '--release' is the first element.

>Seems we should consider using optparse.  It's very easy to do.

I'm implementing it.
Comment 16 zy.zorro 2011-03-15 23:22:42 PDT
(In reply to comment #15)
> >Can we make print-vse-failure-logs respect the current configuration? I.e., this:
> >
I tried to compile webkit on win7 32bit with  VC++ 2005 Express  after patching the two patches from 53590 and 53591. But I still got failure, following is the output.

$ ./build-webkit --debug
WebKitSupportLibrary is up-to-date.
Building results into: /home/Administrator/WebKit/WebKitBuild
WEBKITOUTPUTDIR is set to: C:\cygwin\home\Administrator\WebKit\WebKitBuild
WEBKITLIBRARIESDIR is set to: C:\cygwin\home\Administrator\WebKit\WebKitLibrarie
s\win
/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe wi
n\WebKit.vcproj\WebKit.sln /build Debug
      3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to
 remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren
t: 0x2F0000 != 0x3C0000
      3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to
 remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren
t: 0x2F0000 != 0x3C0000
Stack trace:
Frame     Function  Args
0022A528  6102792B  (0022A528, 00000000, 00000000, 00000000)
0022A818  6102792B  (6117DC60, 00008000, 00000000, 6117F977)
0022B848  61004F3B  (611A6FAC, 6124CABC, 002F0000, 003C0000)
End of stack trace
      2 [main] python 8020 fork: child 7512 - died waiting for dll loading, errn
o 11
      2 [main] python 8020 fork: child 7512 - died waiting for dll loading, errn
o 11
Traceback (most recent call last):
  File "Tools/Scripts/print-vse-failure-logs", line 130, in <module>
    PrintVisualStudioExpressLogs(option).main()
  File "Tools/Scripts/print-vse-failure-logs", line 104, in main
    build_log_paths = self._sort_buildlogs(self._find_buildlogs(self._obj_direct
ory()))
  File "Tools/Scripts/print-vse-failure-logs", line 87, in _obj_directory
    build_directory = os.path.dirname(self._executive.run_command([build_directo
ry_script_path, "--configuration", self._mode]).rstrip())
  File "/home/Administrator/WebKit/Tools/Scripts/webkitpy/common/system/executiv
e.py", line 354, in run_command
    close_fds=self._should_close_fds())
  File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1049, in _execute_child
    self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable


===== BUILD FAILED ======

Please ensure you have run Tools/Scripts/update-webkit to install dependencies.

You can view build errors by checking the BuildLog.htm files located at:
/home/Administrator/WebKit/WebKitBuild/Debug/obj/<project>.
Comment 17 Adam Roben (:aroben) 2011-03-16 09:26:19 PDT
(In reply to comment #16)
>       3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to
>  remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren
> t: 0x2F0000 != 0x3C0000
>       3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to
>  remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren
> t: 0x2F0000 != 0x3C0000
> Stack trace:
> Frame     Function  Args
> 0022A528  6102792B  (0022A528, 00000000, 00000000, 00000000)
> 0022A818  6102792B  (6117DC60, 00008000, 00000000, 6117F977)
> 0022B848  61004F3B  (611A6FAC, 6124CABC, 002F0000, 003C0000)
> End of stack trace

This is a Cygwin issue, not an issue with the script. Follow these instructions: http://trac.webkit.org/wiki/BuildingOnWindows#ErrorlaunchingApachefromrun-webkit-testsonVista7orothererrorsthatmentionthewordremap