Issue #1397 resolved

overlay icon server hangs - folder overlays show "?"

Mark Mikofski
created an issue

System: windows XP SP3 (32bit) Version: tortoiseHg 2.2 (mercurial 2.0 x86)

What causes problem? Clone a repository from remote to local, make changes to local repository and commit, or click update icons, however all folders show questions marks, and overlay icon server system tray icon is continuously green.

What was expected? Overlay icon server should eventually turn gray after file overlay icons are updated, and then folder icons should turn to green check marks to show that they are unmodified.

Other info: This issue does //not// occur with TortoiseHg 2.1.4 on Windows XP SP3.

Comments (30)

  1. Anonymous

    I'm also seeing this issue on Windows XP (both 32 and 64 bit) with THG 2.2

    I took a quick look at the logs and there isn't much

    - Start server [11/10/11 15:21:37] TortoiseHg Overlay Icon Server, Version 2.2 [11/10/11 15:21:37] Logging to file started [11/10/11 15:21:37] PipeServer.SvcDoRun

    - Click to update the icons on a repo using the context menu [11/10/11 15:21:46] Removing D:\Documents\Kestrel\Programming\JSB280Controller

    - Server icon stays green at this point, icons not updated - Exit server [11/10/11 15:22:01] MainWindow.exit_application [11/10/11 15:22:01] MainWindow.stop_pipe_server [11/10/11 15:22:01] PipeServer.SvcStop [11/10/11 15:22:01] Traceback (most recent call last): File "TortoiseHgOverlayServer.py", line 204, in stop_pipe_server error: (2, 'CallNamedPipe', 'The system cannot find the file specified.')

    [11/10/11 15:22:01] MainWindow.OnDestroy [11/10/11 15:22:01] Goodbye

    I'm willing to run further tests if you have any suggestions

    Gavin

  2. Anonymous

    Sorry, the editor messed up the formatting

    - Start server [11/10/11 15:21:37] TortoiseHg Overlay Icon Server, Version 2.2

    [11/10/11 15:21:37] Logging to file started

    [11/10/11 15:21:37] PipeServer.SvcDoRun

    - Click to update the icons on a repo using the context menu

    [11/10/11 15:21:46] Removing D:\Documents\Kestrel\Programming\JSB280Controller

    - Server icon stays green at this point, icons not updated

    - Exit server

    [11/10/11 15:22:01] MainWindow.exit_application

    [11/10/11 15:22:01] MainWindow.stop_pipe_server

    [11/10/11 15:22:01] PipeServer.SvcStop

    [11/10/11 15:22:01] Traceback (most recent call last):

    File "TortoiseHgOverlayServer.py", line 204, in stop_pipe_server

    error: (2, 'CallNamedPipe', 'The system cannot find the file specified.')

    [11/10/11 15:22:01] MainWindow.OnDestroy

    [11/10/11 15:22:01] Goodbye

  3. Anonymous

    I'm also seeing this issue on Windows XP 32 bit with the most recent version of tortoiseHg.

    [11/10/11 07:34:48] TortoiseHg Overlay Icon Server, Version 2.2

    [11/10/11 07:34:48] Logging to file started

    [11/10/11 07:34:50] PipeServer.SvcDoRun

    [11/10/11 07:48:21] MainWindow.exit_application

    [11/10/11 07:48:21] MainWindow.stop_pipe_server

    [11/10/11 07:48:21] PipeServer.SvcStop

    [11/10/11 07:48:21] Traceback (most recent call last):

    File "TortoiseHgOverlayServer.py", line 204, in stop_pipe_server

    error: (2, 'CallNamedPipe', 'The system cannot find the file specified.')

    [11/10/11 07:48:21] MainWindow.OnDestroy

    [11/10/11 07:48:21] Goodbye

  4. Anonymous

    After installing TortoiseHg 2.2 with Mercurial 2.0 on Windows 7, I see a similar problem:

    For any new repository, created as per TortoiseHg v2.1.0 documentation, I see that the taskbar icon is always turn green and the directory icons of the new repository is always showing a question mark.

    For existing repositories the directory icons are as expected.

  5. Kit Roed

    I'm having similar trouble with the overlay server icon staying green on newly cloned repos. my error message from the OverlayServerLog.txt appears to be:

    [11/11/11 10:48:58] **** Error: uninitialized handlers: notinrepo
    
  6. Anonymous

    The same problem is here (Windows 7 x64 SP1). After rollback to TortoiseHg 2.1.4 everything works fine.

  7. Anonymous

    Also had this problem. I've noticed that this problem goes away, if you add missing file ".hg\thgstatus"

  8. Anonymous

    I manually created a .hg\thgstatus file and after killing the icon service the icons started to reappear. Then I selected "update icons" from context menu and thgstatus file was missing again.

  9. Anonymous

    Using "Update Icons" TWICE I can destroy ANY existing repo.

    After first "Update Icons" the thgstatus file becomes a zero-size file -- after second "Update Icons" it is gone.

  10. Anonymous

    It is not only a problem with TortoiseHG but also with Mercurial itself as the thgstatus file - which's absence seems to cause the effect - is ignored by hg clone

  11. David Golub

    I can confirm this bug on Windows 7 Professional x64 with THg 2.2 and Mercurial 2.0. I was not experiencing the issue until I upgraded to the latest THg and Mercurial versions.

  12. Anonymous

    Similar problem here. In my case the new repository folderw iconw is nomarkup. Windows 7 32 bits

  13. David Golub

    When I run TortoiseHgOverlayServer.py from the command line, I get the following traceback:

    Traceback (most recent call last): File "C:\Python27\lib\threading.py", line 552, in bootstrap_inner self.run() File "D:\mercurial\thg\TortoiseHgOverlayServer.py", line 402, in run dispatch(req, cmd, args, self.hwnd) File "D:\mercurial\thg\TortoiseHgOverlayServer.py", line 381, in dispatch update(args, hwnd) File "D:\mercurial\thg\TortoiseHgOverlayServer.py", line 355, in update update_batch(batch) File "D:\mercurial\thg\TortoiseHgOverlayServer.py", line 270, in update_batch if shlib.update_thgstatus(_ui, r, wait=False): File "D:\mercurial\thg\tortoisehg\util\shlib.py", line 142, in update_thgstatus f.rename() AttributeError: 'atomictempfile' object has no attribute 'rename'

    The variable f gets its value from repo.opener. I'm guessing that there was a changing from Mercurial 1.9 to 2.0 that broke compatibility. I'll see about tracking it down.

  14. David Golub

    Yes, they renamed rename() to become close(), and what used to be called close() is now called discard. I'll do a patch to handle this appropriately for both Mercurial versions.

  15. Steve Borho

    shlib: call close() instead of rename() on Mercurial 2.0+ (fixes #1397)

    The function rename() was renamed close() in the transition from Mercurial 1.9 to 2.0, breaking compatibility and causing the overlay server to crash when it attempted to update thgstatus.

    7c8ecf007c30

  16. Anonymous

    Yes, this is really a terrible bug.

    Will there be a patch soon?

    I am addicted to Hg :-)

    Greetz, Wolfram

  17. Anonymous

    It seems the problem is fixed in the new release, 2.2.1. Thanks, it was pretty annoying.

  18. Anonymous

    Still have a this bug with 64-bit windows, with 2.2 and 2.2.1 version. 32-bit works OK with 2.2.1.

  19. Log in to comment