paramiko / paramiko/paramiko

Infinite loop on client after issuing the command reboot --force

Open
#1,215 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
9.9k
Forks
2.1k
PR merge metrics
No merged PRs in 30d

Description

while doing select on stdout channel for reboot execution the client gets into an infinite loop
`_, _stdout, _ = _session.exec_command("sudo reboot --force" )

while not _stdout._channel.closed or
_stdout._channel.recv_ready() or
_stdout._channel.recv_stderr_ready():
rl, _, _ = select.select([self._stdout.channel], [], [], 0.0)
...`

the loop identified in packet.py:~253 at Packetizer.read_all after a timeout is identified but the channel is not closed and no rekey is needed but still n>0

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the sudo reboot --force execution through the _stdout channel, then inspect the loop in packet.py around Packetizer.read_all near line 253. Trace the timeout, channel-closed, and rekey state transitions; done means the client exits the loop instead of spinning indefinitely after the reboot command.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.