2.1.1 Release Notes¶
Channels 2.1.1 is a bugfix release for an important bug in the new async authentication code.
Bugfixes & Small Changes¶
Previously, the object in
scope["user"] was one of Django’s
SimpleLazyObjects, which then called our
get_user async function via
This worked fine when called from SyncConsumers, but because
async environments do not run attribute access in an async fashion, when
the body of an async consumer tried to call it, the
flagged an error where the code was trying to call a synchronous function
during a async context.
To fix this, the User object is now loaded non-lazily on application startup. This introduces a blocking call during the synchronous application constructor, so the ASGI spec has been updated to recommend that constructors for ASGI apps are called in a threadpool and Daphne 2.1.1 implements this and is recommended for use with this release.
Backwards Incompatible Changes¶