{"action":"opened","issue":{"url":"https://api.github.com/repos/pantsbuild/pex/issues/120","labels_url":"https://api.github.com/repos/pantsbuild/pex/issues/120/labels{/name}","comments_url":"https://api.github.com/repos/pantsbuild/pex/issues/120/comments","events_url":"https://api.github.com/repos/pantsbuild/pex/issues/120/events","html_url":"https://github.com/pantsbuild/pex/issues/120","id":87093410,"number":120,"title":"pex 1.0.0 fails to resolve deps that appear in multiple resolve rounds when using the cache","user":{"login":"jsirois","id":157586,"avatar_url":"https://avatars.githubusercontent.com/u/157586?v=3","gravatar_id":"","url":"https://api.github.com/users/jsirois","html_url":"https://github.com/jsirois","followers_url":"https://api.github.com/users/jsirois/followers","following_url":"https://api.github.com/users/jsirois/following{/other_user}","gists_url":"https://api.github.com/users/jsirois/gists{/gist_id}","starred_url":"https://api.github.com/users/jsirois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsirois/subscriptions","organizations_url":"https://api.github.com/users/jsirois/orgs","repos_url":"https://api.github.com/users/jsirois/repos","events_url":"https://api.github.com/users/jsirois/events{/privacy}","received_events_url":"https://api.github.com/users/jsirois/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pantsbuild/pex/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-10T20:19:18Z","updated_at":"2015-06-10T20:19:18Z","closed_at":null,"body":"I discovered this trying to upgrade pants from the 0.8 pex series to 1.0.0.\r\nA minimal repro using twitter.common.collections which has a single dependency on twitter.common.lang follows:\r\n\r\nThe failing case with 1st resolve round including [twitter.common.collections, twitter.common.lang] and the second round including [twitter.common.lang]:\r\n```console\r\njsirois@gill ~ $ pex --version\r\npex 1.0.0\r\njsirois@gill ~ $ rm -rf ~/.pex/\r\njsirois@gill ~ $ pex -vvv twitter.common.collections twitter.common.lang -o example.pex\r\n/home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)                                                                                                                                                                                                                                                                                                                                                         \r\npex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving distributions                                                                                                                                                                                                                                                  /home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)                                                                                                             \r\npex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)\r\npex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)                                                                                                                              \r\npex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)\r\nCould not satisfy all requirements for twitter.common.lang: /tmp/tmpq6cetK/twitter.common.lang-0.3.3.tar.gz into distribution :: Packaging twitter.common.lang :: Installing /tmp/tmpbxXozQ           \r\n    twitter.common.lang, twitter.common.lang==0.3.3(from: twitter.common.collections)\r\n^jsirois@gill ~ $\r\n```\r\n\r\nAs opposed to 2 round that do not have overlapping deps, ie round 1 [twitter.common.collections], round 2 [twitter.common.lang]:\r\n```console\r\njsirois@gill ~ $ rm -rf ~/.pex/\r\njsirois@gill ~ $ pex -vvv twitter.common.collections -o example.pex\r\n/home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)                                                                                                                                                                                                                                                                                                                                                         \r\npex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving distributions                                                                                                                                                                                                                                                  /home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)                                                                                                             \r\npex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)\r\npex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)                                                                                                                              \r\npex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)\r\n  twitter.common.lang 0.3.3ing distributions :: Translating /tmp/tmpKIVBtn/twitter.common.lang-0.3.3.tar.gz into distribution :: Packaging twitter.common.lang :: Installing /tmp/tmpnIAgGX           \r\n  twitter.common.collections 0.3.3\r\npex: Building pex: 1294.3ms                                                                                                                                                                \r\npex:   Resolving interpreter: 653.6ms\r\npex:     Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python: 653.6ms\r\npex:       Interpreter cache resolving wheel<0.25.0,>=0.24.0: 403.1ms\r\npex:         Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd'): 270.4ms\r\npex:           Fetching https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd: 269.0ms\r\npex:         Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd'): 132.5ms\r\npex:           Installing /tmp/tmpiaylJN: 124.5ms\r\npex:   Resolving distributions: 636.5ms\r\npex:     Fetching https://pypi.python.org/packages/source/t/twitter.common.collections/twitter.common.collections-0.3.3.tar.gz#md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f: 64.1ms\r\npex:     Fetching file:///home/jsirois/.pex/build/twitter.common.collections-0.3.3.tar.gz: 0.3ms\r\npex:       Fetching file:///home/jsirois/.pex/build/twitter.common.collections-0.3.3.tar.gz: 0.1ms\r\npex:     Translating /tmp/tmpEs5eu8/twitter.common.collections-0.3.3.tar.gz into distribution: 114.4ms\r\npex:       Packaging twitter.common.collections: 111.2ms\r\npex:         Installing /tmp/tmp3PLIYG: 109.2ms\r\npex:     Fetching https://pypi.python.org/packages/source/t/twitter.common.lang/twitter.common.lang-0.3.3.tar.gz#md5=d4f9ad4fc0f1974570d575f25713ebe6: 55.5ms\r\npex:     Fetching file:///home/jsirois/.pex/build/twitter.common.lang-0.3.3.tar.gz: 0.6ms\r\npex:       Fetching file:///home/jsirois/.pex/build/twitter.common.lang-0.3.3.tar.gz: 0.2ms\r\npex:     Translating /tmp/tmpKIVBtn/twitter.common.lang-0.3.3.tar.gz into distribution: 109.1ms\r\npex:       Packaging twitter.common.lang: 104.9ms\r\npex:         Installing /tmp/tmpnIAgGX: 104.0ms\r\nSaving PEX file to example.pex\r\n```\r\n\r\nNote though that the multi-round with repeated dep case does work with the cache turned off:\r\n```console\r\njsirois@gill ~ $ rm -rf ~/.pex/\r\njsirois@gill ~ $ pex -vvv --disable-cache twitter.common.collections twitter.common.lang -o example.pex\r\n/home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befapex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)                                                                                                                                                                                                                                                                                                                                                         \r\npex: Validated wheel-0.24.0.tar.gz (md5=3b0d66f0d127ea8befaa5d11453107fd)\r\npex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving interpreter :: Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python :: Interpreter cache resolving wheel<0.25.0,>=0.24.0 :: Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8bepex: Building pex :: Resolving distributions                                                                                                                                                                                                                                                  /home/jsirois/.pyenv/versions/pex/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n  InsecurePlatformWarning\r\npex: Building pex :: Resolving distributions :: Fetching https://pypi.python.org/packages/source/t/twitter.common.collections/twitter.common.collections-0.3.3.tar.gz#md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f :: Fetching https://pypi.python.org/packages/source/t/twitter.common.collections/twpex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)                                                                                                                                                                                                                                                                           \r\npex: Validated twitter.common.collections-0.3.3.tar.gz (md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f)\r\npex: Building pex :: Resolving distributions :: Fetching https://pypi.python.org/packages/source/t/twitter.common.lang/twitter.common.lang-0.3.3.tar.gz#md5=d4f9ad4fc0f1974570d575f25713ebe6 :: Fetching https://pypi.python.org/packages/source/t/twitter.common.lang/twitter.common.lang-0.3pex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)                                                                                                                                                                                                                                                      \r\npex: Validated twitter.common.lang-0.3.3.tar.gz (md5=d4f9ad4fc0f1974570d575f25713ebe6)\r\n  twitter.common.lang 0.3.3ing distributions :: Translating /tmp/tmpQ1eZhv/twitter.common.lang-0.3.3.tar.gz into distribution :: Packaging twitter.common.lang :: Installing /tmp/tmpg5vN8z\r\n  twitter.common.collections 0.3.3\r\npex: Building pex: 1349.9ms                                                                                                                                                                \r\npex:   Resolving interpreter: 712.8ms\r\npex:     Setting up interpreter /home/jsirois/.pyenv/versions/pex/bin/python: 712.8ms\r\npex:       Interpreter cache resolving wheel<0.25.0,>=0.24.0: 403.7ms\r\npex:         Fetching SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd'): 270.9ms\r\npex:           Fetching https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd: 269.6ms\r\npex:         Installing SourcePackage(u'https://pypi.python.org/packages/source/w/wheel/wheel-0.24.0.tar.gz#md5=3b0d66f0d127ea8befaa5d11453107fd'): 132.5ms\r\npex:           Installing /tmp/tmpBB31J4: 124.4ms\r\npex:   Resolving distributions: 632.6ms\r\npex:     Fetching https://pypi.python.org/packages/source/t/twitter.common.collections/twitter.common.collections-0.3.3.tar.gz#md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f: 62.5ms\r\npex:       Fetching https://pypi.python.org/packages/source/t/twitter.common.collections/twitter.common.collections-0.3.3.tar.gz#md5=902ebdb7e3daa5d6a5c33f5cc6ea5f8f: 62.1ms\r\npex:     Translating /tmp/tmpDgFCAa/twitter.common.collections-0.3.3.tar.gz into distribution: 108.6ms\r\npex:       Packaging twitter.common.collections: 104.9ms\r\npex:         Installing /tmp/tmpACpPAa: 103.9ms\r\npex:     Fetching https://pypi.python.org/packages/source/t/twitter.common.lang/twitter.common.lang-0.3.3.tar.gz#md5=d4f9ad4fc0f1974570d575f25713ebe6: 52.3ms\r\npex:       Fetching https://pypi.python.org/packages/source/t/twitter.common.lang/twitter.common.lang-0.3.3.tar.gz#md5=d4f9ad4fc0f1974570d575f25713ebe6: 52.0ms\r\npex:     Translating /tmp/tmpQ1eZhv/twitter.common.lang-0.3.3.tar.gz into distribution: 104.6ms\r\npex:       Packaging twitter.common.lang: 101.8ms\r\npex:         Installing /tmp/tmpg5vN8z: 100.9ms\r\nSaving PEX file to example.pex\r\n```"}}