electron / libchromiumcontent

Shared library build of Chromium’s Content module
MIT License
485 stars 183 forks source link

Various gsutil cp steps fail with Your "Oauth 2.0 User Account" credentials are invalid. #498

Closed vulture closed 5 years ago

vulture commented 6 years ago

The errors, building for x86 Windows:

________ running 'C:\Electron184\electron\depot_tools\win_tools-2_7_6_bin\python\bin\python.exe src/build/get_syzygy_binaries.py --output-dir=src/third_party/syzygy/binaries --revision=b8aa6a6d09dadd385a1afed5e71c3bb3514a4c0f --overwrite --copy-dia-binaries' in 'C:\LCC184\libchromiumcontent'
INFO:get_syzygy_binaries.py:Installing revision b8aa6a6d09da Syzygy binaries.
Your "Oauth 2.0 User Account" credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").
Failure: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed.

And a subsequent one when I downloaded that one manually somehow else (side note, was not able to download this other one manually, so not able to get past this second error) (also reran this with both python 2.7.6 from depot_tools as well as very recent python 2.7.13 from official python website) (also reran this command with -DD to get more debugging info, though tbh I don't think it was terribly useful) :

***************************** WARNING *****************************
*** You are running gsutil with debug output enabled.
*** Be aware that debug output includes authentication credentials.
*** Make sure to remove the value of the Authorization header for
*** each HTTP request printed to the console prior to posting to
*** a public medium such as a forum post or Stack Overflow.
***************************** WARNING *****************************
gsutil version: 4.13
checksum: 141a3e09b42e1b0b6033108aa24c2286 (OK)
boto version: 2.38.0
python version: 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
OS: Windows 8.1
multiprocessing available: True
using cloud sdk: False
config path: C:\Users\username\.boto
gsutil path: c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gsutil
compiled crcmod: False
installed via package manager: False
editable install: False
Command being run: c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gsutil -o GSUtil:software_update_check_period=0 -DD cp gs://chromium-browser-clang/Linux_x64/llvmgold-299960-1.tgz llvmgold-299960-1.tgz
config_file_list: ['C:\\Users\\username\\.boto']
config: [('debug', '0'), ('working_dir', '/mnt/pyami'), ('https_validate_certificates', 'True'), ('debug', '0'), ('working_dir', '/mnt/pyami'), ('content_language', 'en'), ('default_api_version', '2'), ('default_project_id', 'lcc-boto-testing'), ('software_update_check_period', '0')]
DEBUG 0326 09:21:26.923000 oauth2_client.py] GetAccessToken: checking cache for key ddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEBUG 0326 09:21:26.923000 oauth2_client.py] FileSystemTokenCache.GetToken: key=ddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx not present (cache_file=c:\users\username\appdata\local\temp\oauth2_client-tokencache._.ddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
DEBUG 0326 09:21:26.923000 oauth2_client.py] GetAccessToken: token from cache: None
DEBUG 0326 09:21:26.923000 oauth2_client.py] GetAccessToken: fetching fresh access token...
INFO 0326 09:21:26.923000 client.py] Refreshing access_token
Your "Oauth 2.0 User Account" credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").
process count: 1
thread count: 1
DEBUG: Exception stack trace:
    Traceback (most recent call last):
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\__main__.py", line 524, in _RunNamedCommandAndHandleExceptions
        debug_level, parallel_operations)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\command_runner.py", line 277, in RunNamedCommand
        return_code = command_inst.RunCommand()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\commands\cp.py", line 923, in RunCommand
        fail_on_error=(not self.continue_on_error))
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\command.py", line 1148, in Apply
        arg_checker, should_return_results, fail_on_error)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\command.py", line 1194, in _SequentialApply
        args = args_iterator.next()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\plurality_checkable_iterator.py", line 60, in _PopulateHead
        e = self.base_iterator.next()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\name_expansion.py", line 246, in __iter__
        for (names_container, blr) in post_step3_iter:
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\plurality_checkable_iterator.py", line 60, in _PopulateHead
        e = self.base_iterator.next()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\name_expansion.py", line 464, in __iter__
        for (names_container, blr) in self.tuple_iter:
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\plurality_checkable_iterator.py", line 60, in _PopulateHead
        e = self.base_iterator.next()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\name_expansion.py", line 428, in __iter__
        for blr in self.blr_iter:
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\plurality_checkable_iterator.py", line 60, in _PopulateHead
        e = self.base_iterator.next()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\wildcard_iterator.py", line 449, in IterAll
        expand_top_level_buckets=expand_top_level_buckets):
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\wildcard_iterator.py", line 166, in __iter__
        fields=get_fields)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\cloud_api_delegator.py", line 201, in GetObjectMetadata
        return self._GetApi(provider).GetObjectMetadata(
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\cloud_api_delegator.py", line 96, in _GetApi
        self._LoadApi(provider, api_selector)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\cloud_api_delegator.py", line 119, in _LoadApi
        debug=self.debug))
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\gcs_json_api.py", line 152, in __init__
        loaded_credentials = self._CheckAndGetCredentials(logger)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\gcs_json_api.py", line 245, in _CheckAndGetCredentials
        user_creds = self._GetOauth2UserAccountCreds()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\gslib\gcs_json_api.py", line 292, in _GetOauth2UserAccountCreds
        boto.config).GetCredentials()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_client.py", line 578, in GetCredentials
        access_token = self.GetAccessToken()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_client.py", line 316, in GetAccessToken
        access_token = self.FetchAccessToken()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\retry-decorator\retry_decorator\retry_decorator.py", line 20, in f_retry
        return f(*args, **kwargs)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\gcs-oauth2-boto-plugin\gcs_oauth2_boto_plugin\oauth2_client.py", line 599, in FetchAccessToken
        credentials.refresh(http)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\oauth2client\oauth2client\client.py", line 598, in refresh
        self._refresh(http.request)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\oauth2client\oauth2client\client.py", line 769, in _refresh
        self._do_refresh_request(http_request)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\oauth2client\oauth2client\client.py", line 800, in _do_refresh_request
        self.token_uri, method='POST', body=body, headers=headers)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py", line 1570, in request
        (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py", line 1317, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py", line 1252, in _conn_request
        conn.connect()
      File "c:\LCC184\libchromiumcontent\vendor\depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py", line 1044, in connect
        raise SSLHandshakeError(e)
    SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

I do regular clean builds of Electron to pull in the latest security patches/etc, and everything used to work (this problem just started up recently). I reran the gsutil credential setup and I still get this error (was a suggested fix I found googling). I also tried reverting to our previously working Electron 1.8.2 build from a few weeks ago, and that no longer works (same error).

The latest failed step I hadn't been able to get past was: c:\LCC184\libchromiumcontent\vendor\depot_tools\gsutil.py cp gs://chromium-browser-clang/Linux_x64/llvmgold-299960-1.tgz llvmgold-299960-1.tgz which is slightly weird since I'm building for Windows 32-bit, but it does seem to be a required step nonetheless for the build to continue.

vulture commented 6 years ago

Deleted my %appdata%.boto file entirely (rather than trying to re-configure it) seems to have worked.

Also needed to install system-wide tar.exe and gzip.exe to get past the .tgz extraction step (can the build script be changed to skip that on Windows though???).

MarshallOfSound commented 5 years ago

Hey there,

It's been a long time coming but the libchromiumcontent repository is being archived as it is no longer used in the Electron build system (🎉 this is a good thing).

If your issue is still relevant to Electron in it's current build system (please verify first) then you should probably raise a similar issue on electron/electron.

Thanks 😄