Comments (10)
@carltongibson as far as I can tell, #348 is resolved, because when I un-xfail
the test_receive_cancel
and test_message_expiry__group_send__one_channel_expires_message
tests, and run pytest tests/test_core.py
with Python 3.11.3 (and redis-py 4.5.4), then all tests pass.
However, in this issue, the test I included still fails with Python 3.11.3 and redis-py 4.5.4, which makes me think that this issue is different from #348. (I'm still not sure I understand #348 though.)
from channels_redis.
redis-py 4.5.5 was released today and both tests above pass when using that version of redis-py. 🎉
from channels_redis.
Hey @dcki. You could open a PR removing those xfails if you like... 🙂 -- it would be good it that has been resolved. (You'd also get the attention of the folks on that issue commenting there.)
I need to have a play to be able to say more, but please do keep digging.
from channels_redis.
Even more confirmation about asyncio.shield()
, from contributor chayim who put it in:
Now getting back to this you're bang on the asyncio.shield change is absolutely a bandaid, in order to get things secure, and out. It's not ideal - but at the time, with what was known, I felt (perhaps incorrectly) that this was the right move forward.
That was a week ago, April 23rd, and that PR looks pretty active, so it seems like a fix for this issue here in channels_redis
might be on the way.
One action that might be good to take now would be to just put in my test, above, with xfails
. Assuming that test does use channels_redis
in a way that is intended to be supported. I'd like to create a PR for that if that seems like a good idea.
from channels_redis.
Hi @dcki — thanks for this. A lot to look at there.
Take a look at #348, and the linked discussions there. It seems related to that I think (at initial read through)
from channels_redis.
Thanks @carltongibson. I think this issue is different, but I'm not sure I understand #348.
Reading that did make me wonder if Python 3.11.3 might help, since it sounds like it has an update related to channels_redis
, but the test in the code snippet above still passes and fails in the same ways on Python 3.11.3 (fails unless a 5 second sleep is added or a particular asyncio.shield()
is commented out, as described above).
from channels_redis.
Unrelated to your last message about xfails:
Looking at the last couple comments in this redis-py issue, apparently there is at least one person that claims to know what they're talking about, that says asyncio.shield()
should be removed. So maybe this is all a redis-py issue. I'm not sure what channels_redis
should do to handle that in the meantime...
from channels_redis.
@dcki It would certainly be worth a PR, so that it's easy to play with. 👍
from channels_redis.
That's great @dcki.
Were there any tests you still wanted to add to the test suite here?
from channels_redis.
#377 added explicit testing against multiple redis-py versions:
redis46: redis>=4.6,<4.7
redis50: redis>=5.0,<5.1
redismain: https://github.com/redis/redis-py/archive/master.tar.gz
Any of those should work. Please open a new issue if you hit problems with one of those versions.
from channels_redis.
Related Issues (20)
- Cannot import BACKEND 'channels_redis.RedisPubSubChannelLayer' specified for default HOT 1
- redis-py >=4.4.0 breaking changes HOT 11
- Redis dependency discrepancy HOT 4
- channel_layer.group_add with already existing group removes the group HOT 1
- Reuse redis connection HOT 1
- Group_Send gets indefinitely stuck HOT 3
- TimeoutError with pytest-asyncio when `group_discard` is used HOT 1
- In channels-redis==4.1.0, Cannot import BACKEND 'channels_redis.core.RedisChannelLayer' specified for default #2005 HOT 1
- Failing test caused other tests to fail with RuntimeError: Event loop is closed on pytest HOT 5
- FYI: New Relic Python instrumentation breaks the PubSub layer with async consumers HOT 1
- Connection is None causing TypeError: object NoneType can't be used in 'await' expression HOT 1
- TypeError: AbstractConnection.__init__() got an unexpected keyword argument 'ssl_cert_reqs' HOT 2
- Inconsistent group_send behavior in RedisChannelLayer when called in consumer disconnect() HOT 1
- Connection reset by peer when upgrading redis-py to v5 HOT 6
- Serverless AWS Redis results in `redis.exceptions.ResponseError: Lua scripts without any input keys are not supported.` HOT 2
- Unable to configure AWS elasticache redis with channel_redis HOT 1
- redis.exceptions.ResponseError: unknown command 'BZPOPMIN'
- support microsoft entra id for authentication with azure cache for redis HOT 1
- Use group_send() when group is empty. (Outside Of Consumers) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from channels_redis.