Fixed (hacked around) in GIT hash e72f492. Basically
select() no longer works on newer systems (could be due to a malfunction of
some kind, but it doesn't really matter), so instead of busywaiting on
select(), newer systems will busywait on read().
I don't know how much this information helps, but I tested both fish and sftp between
two Trinity systems, one real and one virtual. Both systems using OpenSSH 5.5p1 and
OpenSSL 0.9.8t.
Using sftp worked both ways all the time without any event. Connecting with fish from the
virtual system to the real system was the same.
When trying to connect with fish from the real system to the virtual I always received the
infamous "protocol died unexpectedly error." When I deleted the ksycoca cache
and set KDE_FORK_SLAVES=true, then fish always connected.
In hindsight that makes no sense because the environment variable was changed some time
ago to TDE_FORK_SLAVES. I'm guessing the real issue is something in the ksycoca cache
causes problems for fish.
I'll test again and add more information as possible.
Darrell