New submission from Manoj C <manojc...@gmail.com>:

I have been using asyncio to run subprocess calls in a separate thread. For 
this purpose I start an event loop in my main thread as per the recommendation 
- 
https://docs.python.org/3/library/asyncio-subprocess.html#subprocess-and-threads
 .

Now when I use a normal subprocess call in the main thread, I start getting 
following file descriptor error after few iterations:

```
Exception ignored when trying to write to the signal wakeup fd:
BlockingIOError: [Errno 11] Resource temporarily unavailable
```

I have reproduced the problem in a small script and am seeing that the error 
goes away if I do not start the even loop in the main thread.

```
import asyncio
import subprocess
import time


def try_error():
    for i in range(1,500):
        print(i)
        try:
            subprocess.run(["ls", "-l"], check=True, stdout=subprocess.PIPE, 
stderr=subprocess.PIPE)
        except subprocess.CalledProcessError as e:
            print(f"Exception raised {e.stderr}\nOutput {e.stdout}")



def definite_error():
    w = asyncio.get_child_watcher()
    l = asyncio.get_event_loop()
    try_error()


if __name__ == "__main__":
    definite_error()
```

This is the smallest subset of the code which can reproduce the error. In the 
original code, I run a asyncio.create_subprocess_exec in a parallel thread. The 
normal subprocess call is part of third party code which call from the main 
thread and hence cannot modify it.

----------
components: asyncio
messages: 351795
nosy: Manoj C, asvetlov, yselivanov
priority: normal
severity: normal
status: open
title: File descriptor error when subprocess call is used with event loop 
enabled in main thread
type: crash
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38104>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to