This issue is trying to address few issues in the SFTP filesystem, and especially in SFTPConnectionPool:
- all channels for a given connectionInfo are removed from the pool instead of only the selected channel.
- Closed connections are added back into the pool. They should be filtered out.
- The SFTPInputStream is closing the stream instead of returning it into the pool.
- Some connection leak could happen in some cases
As a result, if you have multiple threads sharing the pool, the SFTP filesystem is underperforming by untimely re-establishing SSH connections.