#33795: Django sync_to_async takes infinite time with asgiref 3.5.1+
-------------------------------------+-------------------------------------
     Reporter:  parfeniukink         |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  HTTP handling        |                  Version:  3.2
     Severity:  Normal               |               Resolution:
     Keywords:  asgiref              |             Triage Stage:
  sync_to_async                      |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

 * cc: Andrew Godwin, Carlton Gibson (added)
 * component:  Uncategorized => HTTP handling


Comment:

 Maybe it's probably not related but I noticed that
 `test_request_lifecycle_signals_dispatched_with_thread_sensitive` crashes
 on the `stable/3.2.x` branch with `asgiref` 3.5.1+:

 {{{
 ======================================================================
 ERROR: test_request_lifecycle_signals_dispatched_with_thread_sensitive
 (asgi.tests.ASGITest)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/django/tests/asgi/tests.py", line 240, in
 test_request_lifecycle_signals_dispatched_with_thread_sensitive
     target_thread =
 next(iter(SyncToAsync.single_thread_executor._threads))
 StopIteration

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/usr/lib/python3.8/unittest/case.py", line 60, in testPartExecutor
     yield
   File "/usr/lib/python3.8/unittest/case.py", line 676, in run
     self._callTestMethod(testMethod)
   File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
     method()
   File "/.virtualenvs/django-test-3.8/lib/python3.8/site-
 packages/asgiref/sync.py", line 213, in __call__
     return call_result.result()
   File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in
 result
     return self.__get_result()
   File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in
 __get_result
     raise self._exception
   File "/.virtualenvs/django-test-3.8/lib/python3.8/site-
 packages/asgiref/sync.py", line 279, in main_wrap
     result = await self.awaitable(*args, **kwargs)
 RuntimeError: coroutine raised StopIteration
 }}}

 As far as I'm aware these issues are caused by
 
[https://github.com/django/asgiref/commit/add576498d1e0a7eea8d70b08418d77fecd92f56
 asgiref/add57649], however we will not backport
 36fa071d6ebd18a61c4d7f1b5c9d17106134bd44 so I would restrict supported
 version:
 {{{#!diff
 diff --git a/setup.cfg b/setup.cfg
 index 0f96cf325d..2b6f9b82ef 100644
 --- a/setup.cfg
 +++ b/setup.cfg
 @@ -42,7 +42,7 @@ scripts = django/bin/django-admin.py
  include_package_data = true
  zip_safe = false
  install_requires =
 -    asgiref >= 3.3.2, < 4
 +    asgiref >= 3.3.2, < 3.5.1
      pytz
      sqlparse >= 0.2.2


 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/33795#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070181857e7c68-68b234ac-94a0-4ebd-b03e-84de6d183924-000000%40eu-central-1.amazonses.com.

Reply via email to