buildinspace / peru

a generic package manager, for including other people's code in your projects
MIT License
1.11k stars 69 forks source link

Exception from get_tree on Windows #69

Closed edbrannin closed 9 years ago

edbrannin commented 9 years ago

I'm getting this error when I try to peru sync my dotfiles on my Windows PC:

C:\dev\dotfiles>\Python34\Scripts\peru.exe sync
hg plugin exited with error code 1.
Fields:
    rev: edcdb7620f4d4a82d2c936131d319e62198a6e05
    url: ssh://hg@bitbucket.org/durin42/hg-git
Output:
hg pull ssh://hg@bitbucket.org/durin42/hg-git
*** failed to import extension hgbb from $HOME/dev/dotfiles/hg/hgbb/hgbb.py: No module named httprepo
abort: repository default not found!
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resources\plugins\hg\hg_plugin.py", line 108, in <module>
    plugin_fetch()
  File "C:\Python34\lib\site-packages\peru\resources\plugins\hg\hg_plugin.py", line 89, in plugin_fetch
    hg_pull(URL, CACHE_PATH)
  File "C:\Python34\lib\site-packages\peru\resources\plugins\hg\hg_plugin.py", line 67, in hg_pull
    hg('pull', hg_dir=repo_path)
  File "C:\Python34\lib\site-packages\peru\resources\plugins\hg\hg_plugin.py", line 35, in hg
    output))
RuntimeError: Command exited with error code 255:
$ hg --repository C:\dev\dotfiles\.peru\cache\plugins\hg\a7567368584c40ffdd77a772380733a662a5e9b6 pull
None
Exception ignored in: <generator object get_tree at 0x02B21D28>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpm8hm78ys'
Exception ignored in: <generator object get_tree at 0x02B21148>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmphb5ydz9c'
Exception ignored in: <generator object get_tree at 0x02B21A30>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpyfd112fc'
Exception ignored in: <generator object get_tree at 0x02B21210>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpz1jcypzs'
Exception ignored in: <generator object get_tree at 0x02B213C8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp8ph5ic9c'
Exception ignored in: <generator object get_tree at 0x02B21BC0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp4vuorn6z'
Exception ignored in: <generator object get_tree at 0x02B21B98>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpms15tmqg'
Exception ignored in: <generator object get_tree at 0x02B21C60>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpq4bpije2'
Exception ignored in: <generator object get_tree at 0x02B21BE8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpksdlx_uf'
Exception ignored in: <generator object get_tree at 0x02B21CB0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpifd5l99w'
Exception ignored in: <generator object get_tree at 0x02A95F80>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\resolver.py", line 21, in get_tree
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 36, in get_tree

C:\dev\dotfiles>\Python34\Scripts\peru.exe synchg --repository C:\dev\dotfiles\.peru\cache\plugins\hg\a7567368584c40ffdd

After running that hg command manually, it completed fine and peru sync started working normally again except for this warning:

C:\dev\dotfiles>\Python34\Scripts\peru.exe sync --force
RuntimeError: <_overlapped.Overlapped object at 0x029D9E38> still has pending operation at deallocation, the process may
 crash
edbrannin commented 9 years ago

I'm getting a similar error when running peru reup:

(sorry if I should be dumping this output into a gist or something instead)

C:\dev\dotfiles>\Python34\Scripts\peru.exe reup
Traceback (most recent call last):
  File "C:\Python34\Scripts\peru-script.py", line 9, in <module>
    load_entry_point('peru==0.1.1', 'console_scripts', 'peru')()
  File "C:\Python34\lib\site-packages\peru\main.py", line 160, in main
    Main().run(argv, env)
  File "C:\Python34\lib\site-packages\peru\main.py", line 78, in run
    async.run_task(matching_command(self))
  File "C:\Python34\lib\site-packages\peru\async.py", line 20, in run_task
    return asyncio.get_event_loop().run_until_complete(coro)
  File "C:\Python34\lib\asyncio\base_events.py", line 208, in run_until_complete
    return future.result()
  File "C:\Python34\lib\asyncio\futures.py", line 243, in result
    raise self._exception
  File "C:\Python34\lib\asyncio\tasks.py", line 279, in _step
    result = coro.throw(exc)
  File "C:\Python34\lib\site-packages\peru\main.py", line 98, in do_reup
    yield from async.stable_gather(*futures)
  File "C:\Python34\lib\asyncio\futures.py", line 348, in __iter__
    yield self  # This tells Task to wait for completion.
  File "C:\Python34\lib\asyncio\tasks.py", line 332, in _wakeup
    value = future.result()
  File "C:\Python34\lib\asyncio\futures.py", line 243, in result
    raise self._exception
  File "C:\Python34\lib\asyncio\tasks.py", line 281, in _step
    result = coro.send(value)
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
    runtime.display.get_handle(self.name))
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
    fields = yaml.safe_load(output_file) or {}
  File "C:\Python34\lib\site-packages\yaml\__init__.py", line 94, in safe_load
    return load(stream, SafeLoader)
  File "C:\Python34\lib\site-packages\yaml\__init__.py", line 72, in load
    return loader.get_single_data()
  File "C:\Python34\lib\site-packages\yaml\constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "C:\Python34\lib\site-packages\yaml\composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "C:\Python34\lib\site-packages\yaml\composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "C:\Python34\lib\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "C:\Python34\lib\site-packages\yaml\composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "C:\Python34\lib\site-packages\yaml\composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "C:\Python34\lib\site-packages\yaml\parser.py", line 98, in check_event
    self.current_event = self.state()
  File "C:\Python34\lib\site-packages\yaml\parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "C:\Python34\lib\site-packages\yaml\scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "C:\Python34\lib\site-packages\yaml\scanner.py", line 224, in fetch_more_tokens
    return self.fetch_alias()
  File "C:\Python34\lib\site-packages\yaml\scanner.py", line 611, in fetch_alias
    self.tokens.append(self.scan_anchor(AliasToken))
  File "C:\Python34\lib\site-packages\yaml\scanner.py", line 925, in scan_anchor
    % ch, self.get_mark())
yaml.scanner.ScannerError: while scanning an alias
  in "C:\dev\dotfiles\.peru\tmp\tmp29sptmuu\reup_output", line 1, column 6
expected alphabetic or numeric character, but found '*'
  in "C:\dev\dotfiles\.peru\tmp\tmp29sptmuu\reup_output", line 1, column 7
Exception ignored in: <generator object reup at 0x02B61D50>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpshi9e_ub'
Exception ignored in: <generator object reup at 0x02A9A0A8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpm_04oo_b'
Exception ignored in: <generator object reup at 0x02A9A0D0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpr480__g1'
Exception ignored in: <generator object reup at 0x02A9A058>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp_w75_wkr'
Exception ignored in: <generator object reup at 0x02B61F08>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpg0hbho2v'
Exception ignored in: <generator object reup at 0x02B61DF0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpr3iwo56w'
Exception ignored in: <generator object reup at 0x02B61FA8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp77gf1eav'
Exception ignored in: <generator object reup at 0x02B61FD0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpawvecxrj'
Exception ignored in: <generator object reup at 0x02B61D00>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpgv0o5n3s'
Exception ignored in: <generator object reup at 0x02B61EE0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpe4of8mks'
Exception ignored in: <generator object reup at 0x02B61F58>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp7tf14ni_'
Exception ignored in: <generator object reup at 0x02B61E90>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp5ja_hkm3'
Exception ignored in: <generator object reup at 0x02B61F30>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpca8h8t7u'
Exception ignored in: <generator object reup at 0x02B61EB8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp0tyql_38'
Exception ignored in: <generator object reup at 0x02B61C10>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp5rrttcyd'
Exception ignored in: <generator object reup at 0x02B61DC8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpltr_7r1v'
Exception ignored in: <generator object reup at 0x02B61E40>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpjp6qe4ix'
Exception ignored in: <generator object reup at 0x02B61D78>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpcuu9qe53'
Exception ignored in: <generator object reup at 0x02B61E18>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpzdztgjiw'
Exception ignored in: <generator object reup at 0x02B61DA0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmphil5ntmr'
Exception ignored in: <generator object reup at 0x02B610F8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpcjrwzgii'
Exception ignored in: <generator object reup at 0x02B61CD8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpkai1ym3j'
Exception ignored in: <generator object reup at 0x02B61C88>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp6rd5iacj'
Exception ignored in: <generator object reup at 0x02B61D28>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp8ossyh8f'
Exception ignored in: <generator object reup at 0x02B61CB0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmph8q_mjsa'
Exception ignored in: <generator object reup at 0x02B61BE8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp7bbxrqnr'
Exception ignored in: <generator object reup at 0x02B61C60>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpttxrcuu7'
Exception ignored in: <generator object reup at 0x02B61B98>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmp2r33vfah'
Exception ignored in: <generator object reup at 0x02B61C38>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpdwng20l4'
Exception ignored in: <generator object reup at 0x02B61BC0>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpl85meino'
Exception ignored in: <generator object reup at 0x02B613C8>
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\peru\remote_module.py", line 44, in reup
  File "C:\Python34\lib\site-packages\peru\plugin.py", line 53, in plugin_get_reup_fields
  File "C:\Python34\lib\tempfile.py", line 687, in __exit__
  File "C:\Python34\lib\tempfile.py", line 693, in cleanup
  File "C:\Python34\lib\shutil.py", line 477, in rmtree
  File "C:\Python34\lib\shutil.py", line 359, in _rmtree_unsafe
  File "C:\Python34\lib\shutil.py", line 357, in _rmtree_unsafe
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\dev\\dotfiles\\.peru\\tmp\\tmpzx05ly_v'

C:\dev\dotfiles>
oconnor663 commented 9 years ago

I won't have much time at my computer for a few days, but I'll look at this as soon as I'm back. Thanks for the report.

oconnor663 commented 9 years ago

Hmm, I'm a bit of an hg noob (it's a miracle the hg plugin works at all :) ), but it looks like you're trying to use peru to pull down hg extensions.

Unfortunately, peru is going to call hg to accomplish that. That means that your .hgrc is referring to plugins that don't exist at the time that hg is invoked. I think that's causing your error. As an immediate workaround, you could try running peru sync before you link/copy your .hgrc file to your home directory.

This is arguably a bug in peru. Ideally, peru's hg plugin should be invoking hg in such a way that it ignores most of your configs. Since peru is only ever going to use hg to clone and pull, there's really no reason for us to load user extensions. We could just invoke hg in a way that ignores your .hgrc entirely, but I'm not sure it's that simple. Some users are on networks that require a proxy to talk to outside servers, for example, and configs like that usually live in .hgrc.

[Note that when we use git in the deep internals of peru, we suppress user configs. But not in the git plugin itself. This is a little confusing; you can take a look at the architecture doc for more context. I wouldn't be surprised if we started seeing similar issues there.]

@olson-sean-k, do you have any thoughts on how to handle this? Anyone else more familiar with hg than I am?

olson-sean-k commented 9 years ago

I'm also an hg noob. Would it be possible to disable the hgbb extension in this specific repository? What if you created .hg/hgrc with these contents:

[extensions]
hgbb=!

I would expect that to disable hgbb, allowing hg to fetch it without errors. Maybe. But it wouldn't be that simple, since you can't commit .hg/hgrc...

oconnor663 commented 9 years ago

@olson-sean-k, I don't think hg is actually running in this dotfiles repository when the problem happens. If I understand correctly, it's running in a temp dir and reading configs from @edbrannin's home dir. There's not really an opportunity to edit the .hg/hgrc in that temp dir.

edbrannin commented 9 years ago

Whatever's going wrong, broken extension imports isn't it:

Ed-Brannins-MacBook-Pro:dotfiles ed$ peru sync
Ed-Brannins-MacBook-Pro:dotfiles ed$ ls hg
hg-git      hg-prompt   hgbb
Ed-Brannins-MacBook-Pro:dotfiles ed$ mv hg hg-missing
Ed-Brannins-MacBook-Pro:dotfiles ed$ peru sync
Ed-Brannins-MacBook-Pro:dotfiles ed$
Ed-Brannins-MacBook-Pro:dotfiles ed$ ls hg hg-missing/
hg:
hg-git      hg-prompt   hgbb

hg-missing/:
hg-git      hg-prompt   hgbb
Ed-Brannins-MacBook-Pro:dotfiles ed$

That seems to have worked just fine.

I've gone for months with a broken extension-import, and the main impact was I ignored the warning it printed every time I ran hg.

oconnor663 commented 9 years ago

@edbrannin, I think the reason your experiment doesn't hit an error is that, once you've done one successful sync, peru has all your files cached and no longer bothers to talk to hg. Try the following test instead:

mv hg hg-missing
rm -rf .peru/cache
peru sync

Or for more of a sledgehammer:

git clean -dffx  # make sure you're not about to lose any work
peru sync

For a hot-off-the-presses explanation of how our caching works, take a look at https://github.com/buildinspace/peru/blob/master/docs/architecture.md.

edbrannin commented 9 years ago

Good point, I'll give that a shot:

Ed-Brannins-MacBook-Pro:dotfiles ed$ hg stat
M vim/spell/en.utf-8.add
? vim/spell/en.utf-8.add.spl
Ed-Brannins-MacBook-Pro:dotfiles ed$ mv hg hg-missing
Ed-Brannins-MacBook-Pro:dotfiles ed$ hg stat vim
*** failed to import extension hgbb from $HOME/dev/dotfiles/hg/hgbb/hgbb.py: [Errno 2] No such file or directory: '/Users/ed/dev/dotfiles/hg/hgbb/hgbb.py'
*** failed to import extension prompt from $HOME/dev/dotfiles/hg/hg-prompt/prompt.py: [Errno 2] No such file or directory: '/Users/ed/dev/dotfiles/hg/hg-prompt/prompt.py'
M vim/spell/en.utf-8.add
? vim/spell/en.utf-8.add.spl
Ed-Brannins-MacBook-Pro:dotfiles ed$ rm -rf .peru/
Ed-Brannins-MacBook-Pro:dotfiles ed$ peru sync --force
Ed-Brannins-MacBook-Pro:dotfiles ed$ hg stat vim
M vim/spell/en.utf-8.add
? vim/spell/en.utf-8.add.spl

This time I remembered to demonstrate that the hg folder I moved was indeed the currently-active one. :)

(Not shown: a peru sync that warned me to use --force for everything in my vim folder.)

oconnor663 commented 9 years ago

Ah ok, in trying to repro this, I just realized that the failed to import extension errors are not fatal. So it can't be that. Right now I'm struggling with Mercurial and ssh:// on Windows, and starting to suspect something about cached ssh creds...

oconnor663 commented 9 years ago

Ok, if I replace all the ssh://hg@ with https:// in your peru.yaml, and then delete the hostfingerprints config from your linked hgrc file (because it seems to be out of date?), peru sync starts working fine as far as I can tell. So I'm thinking it looks like something wrong with hg+ssh. Still trying to figure out exactly what.

Out of curiosity, any particular reason you're using ssh:// instead of https://?

edbrannin commented 9 years ago

That's... a good point. I think I set that up on OS X where it worked fine, and also usually works well enough on my work PC (because hg's ssh works with Putty/Pageant SSH keys). I'll see if that helps a bit later.

Are you getting the same set of errors I was with ssh://, or were you getting a different message?

oconnor663 commented 9 years ago

I'm going to close this for now, unless it's still an issue for you @edbrannin. We could consider implementing something where the hg/git plugins notice SSH urls and fail with a helpful error message. But I think some people are going to be in environments where they really need SSH, and if they're willing to jump through the hoops to make it Just Work then I don't want to stop them.