diff -r 02782e6e2c38 -r 066e6a9d52bb mercurial/sshpeer.py --- a/mercurial/sshpeer.py Mon Feb 19 13:20:17 2018 -0800 +++ b/mercurial/sshpeer.py Wed Feb 21 13:08:55 2018 -0800 @@ -65,8 +65,11 @@ (This will only wait for data if the setup is supported by `util.poll`) """ - if getattr(self._main, 'hasbuffer', False): # getattr for classic pipe - return (True, True) # main has data, assume side is worth poking at. + if (isinstance(self._main, util.bufferedinputpipe) and + self._main.hasbuffer): + # Main has data. Assume side is worth poking at. + return True, True + fds = [self._main.fileno(), self._side.fileno()] try: act = util.poll(fds)