New issue
Advanced search Search tips

Issue 852192 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

"git cl help" takes ~25 seconds on linux (due to "import keyring")

Project Member Reported by agrieve@chromium.org, Jun 13 2018

Issue description

Every "git cl" command I type has a 25 second delay.

I've narrowed it down to upload.py's "import keyring" statement.

A cProfile suggests it's dbus-related:

PYTHONPATH=/usr/local/google/home/agrieve/ssd/git/depot_tools python
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cProfile
>>>
>>> cProfile.run('import git_cl', sort='cumtime')
         687246 function calls (669239 primitive calls) in 26.013 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.003    0.003   26.014   26.014 <string>:1(<module>)
        1    0.021    0.021   26.011   26.011 git_cl.py:8(<module>)
        1    0.005    0.005   25.833   25.833 upload.py:33(<module>)
       19    0.012    0.001   25.731    1.354 __init__.py:1(<module>)
        1    0.001    0.001   25.692   25.692 core.py:3(<module>)
        1    0.000    0.000   25.293   25.293 core.py:62(init_backend)
        1    0.000    0.000   25.278   25.278 __init__.py:19(wrapper)
        1    0.000    0.000   25.278   25.278 backend.py:178(get_all_keyring)
    21/19    0.000    0.000   25.047    1.318 properties.py:23(__get__)
        6    0.000    0.000   25.046    4.174 __init__.py:26(suppress_exceptions)
       18    0.000    0.000   25.046    1.391 backend.py:186(is_class_viable)
        5    0.000    0.000   25.021    5.004 bus.py:186(get_object)
        5    0.000    0.000   25.021    5.004 proxies.py:185(__init__)
        5    0.000    0.000   25.021    5.004 bus.py:171(activate_name_owner)
        6    0.000    0.000   25.021    4.170 connection.py:615(call_blocking)
        6   25.020    4.170   25.020    4.170 {method 'send_message_with_reply_and_block' of '_dbus_bindings.Connection' objects}
        1    0.000    0.000   25.020   25.020 SecretService.py:27(priority)
        1    0.000    0.000   25.020   25.020 collection.py:142(get_all_collections)
        1    0.000    0.000   25.019   25.019 util.py:49(bus_get_object)
        1    0.000    0.000   25.019   25.019 bus.py:257(start_service_by_name)
        1    0.002    0.002    0.393    0.393 backend.py:3(<module>)
        1    0.003    0.003    0.390    0.390 __init__.py:16(<module>)
        2    0.000    0.000    0.279    0.139 __init__.py:3020(_call_aside)

 
Cc: ehmaldonado@chromium.org tandrii@chromium.org
Owner: ----
Status: Available (was: Assigned)
*started* here: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1170391

but there's still a bunch of work to do. In particular, making the tests pass (deleting a bunch of rietveld-specific cases, and converting the other generic ones to assume gerrit instead), and having someone other than me complete the work because I'm on sabbatical.

Sign in to add a comment