prompt-toolkit / prompt-toolkit/python-prompt-toolkit
OSError Bad file descriptor
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 10.6k
- Forks
- 815
- PR merge metrics
- No merged PRs in 30d
Description
Hello,
Encounter OSError when using prompt-toolkit in xonsh:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xonsh/ptk/shortcuts.py", line 108, in prompt
document = cli.run(reset_current_buffer=False)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/interface.py", line 394, in run
self.eventloop.run(self.input, self.create_eventloop_callbacks())
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/eventloop/posix.py", line 93, in run
self.add_reader(self._schedule_pipe[0], None)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/eventloop/posix.py", line 280, in add_reader
self.selector.register(fd)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/eventloop/select.py", line 75, in register
sel.register(fd)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/eventloop/select.py", line 130, in register
self._sel.register(fd, selectors.EVENT_READ, None)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/selectors.py", line 536, in register
self._kqueue.control([kev], 0, 0)
OSError: [Errno 9] Bad file descriptor
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/bin/xonsh", line 3, in <module>
main()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xonsh/main.py", line 276, in main
shell.shell.cmdloop()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xonsh/ptk/shell.py", line 132, in cmdloop
line = self.singleline(auto_suggest=auto_suggest)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xonsh/ptk/shell.py", line 101, in singleline
line = self.prompter.prompt(**prompt_args)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xonsh/ptk/shortcuts.py", line 113, in prompt
eventloop.close()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/prompt_toolkit/eventloop/posix.py", line 270, in close
os.close(schedule_pipe[0])
OSError: [Errno 9] Bad file descriptor
Was running a command like cat foo.json | py -m json.tool. Cannot reproduce it anymore. Could it be an issue on PTK side?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the traceback paths in prompt_toolkit/eventloop/posix.py and prompt_toolkit/eventloop/select.py, then inspect how the schedule pipe is created, registered, and closed during the reported xonsh command. Reproduce the piped cat foo.json | py -m json.tool scenario if possible and determine whether the file descriptor failure is in prompt-toolkit. Done means the failure is explained and covered by a regression test or the report is confirmed unreproducible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100