Subject: bug#19636: [TRAMP] global minor mode hangs connection when accessing files in :lighter

From: Philippe Vaucher <[email-masked]>
Date: Sun, 25 Jan 2015 22:47:25 +0100

> Out of the Tramp problem, do you know `locate-dominating-file'? It's
> designed for that purpose; see for example how it is used in `vc-find-root'.

Yes, actually they implement their own version, see
https://github.com/bbatsov/projectile/blob/master/projectile.el#L583
The issue that I'm trying to solve is
https://github.com/bbatsov/projectile/issues/523

There's many problems with the current implementation, namely that
they call `file-truename' way too much.

I'll follow your suggestion and take a look at `vc-find-root', maybe I
can propose a rewrite that is much simpler and TRAMP friendly.

> In the current Tramp design, there can be only up to 2 parallel
> connections. The primary one is always used for all file operations, and
> the second one is used exclusively for `start-file-process'. So we must
> teach `file-truename' and friends to use only the primary connection,
> and not the one which is just active.

Okay, good to know.

>> - Fix TRAMP so it better handles multiple connections, but it's likely
>> to involve quite some work. Maybe a simple idea would be that calls to
>> `file-truename` always use the most recent connection? I'm not sure I
>> make sense so feel free to ignore it :)
>
> I will think about. Not sure, whether there will be results very soon.

No worries. Understanding the problem helps a lot already, now I know
what can/should be done when we refactor this package.

Thanks,
Philippe