Channels Redis/channelfull spam without any ws connections.

217 views
Skip to first unread message

dave.mcal...@gmail.com

unread,
Apr 7, 2017, 9:22:22 AM4/7/17
to Django users
1491540549.292837 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.343335 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.343373 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.393917 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.393954 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.444425 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.444463 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.494980 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.495016 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.545484 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.545521 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.595958 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.595993 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.646517 [0 unix:/var/run/redis/redis.sock] "EVALSHA" "3640886a0c8901ca9188f5f7a5f7a346145b9c5f" "1" "asgi:daphne.response.tJbmVMXFGX!"
1491540549.646554 [0 lua] "LPOP" "asgi:daphne.response.tJbmVMXFGX!"
My redis gets spammed by this while running 2 daphne workers, without anything connected over websocket.

This leads to asgiref.base_layer.ChannelFull and redis.exceptions.ResponseError: full spam:

Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 143, in inner
    message.channel_layer.send(wait_channel, message.content)
  File "/venv/lib/python3.5/site-packages/asgi_redis/core.py", line 177, in send
    raise self.ChannelFull
asgiref.base_layer.ChannelFull

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/channels/worker.py", line 119, in run
    consumer(message, **kwargs)
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 78, in inner
    return func(*args, **kwargs)
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 147, in inner
    "full __wait__ channel for socket %s" % message.reply_channel.name
asgiref.base_layer.ChannelFull: Cannot add unordered message to already full __wait__ channel for socket daphne.response.GFPKnFFpIJ!bEgDPXUyqb
2017-04-07 03:57:26,015 - ERROR - worker - Error processing message with consumer stats.consumers.ws_receive:
Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/asgi_redis/core.py", line 162, in send
    client=connection,
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 2694, in __call__
    return client.evalsha(self.sha, len(keys), *args)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 1944, in evalsha
    return self.execute_command('EVALSHA', sha, numkeys, *keys_and_args)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 573, in execute_command
    return self.parse_response(connection, command_name, **options)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 585, in parse_response
    response = connection.read_response()
  File "/venv/lib/python3.5/site-packages/redis/connection.py", line 582, in read_response
    raise response
redis.exceptions.ResponseError: full

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 143, in inner
    message.channel_layer.send(wait_channel, message.content)
  File "/venv/lib/python3.5/site-packages/asgi_redis/core.py", line 177, in send
    raise self.ChannelFull
asgiref.base_layer.ChannelFull

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/channels/worker.py", line 119, in run
    consumer(message, **kwargs)
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 78, in inner
    return func(*args, **kwargs)
  File "/venv/lib/python3.5/site-packages/channels/sessions.py", line 147, in inner
    "full __wait__ channel for socket %s" % message.reply_channel.name
asgiref.base_layer.ChannelFull: Cannot add unordered message to already full __wait__ channel for socket daphne.response.GFPKnFFpIJ!bEgDPXUyqb
2017-04-07 03:57:26,255 - ERROR - worker - Error processing message with consumer stats.consumers.ws_receive:
Traceback (most recent call last):
  File "/venv/lib/python3.5/site-packages/asgi_redis/core.py", line 162, in send
    client=connection,
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 2694, in __call__
    return client.evalsha(self.sha, len(keys), *args)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 1944, in evalsha
    return self.execute_command('EVALSHA', sha, numkeys, *keys_and_args)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 573, in execute_command
    return self.parse_response(connection, command_name, **options)
  File "/venv/lib/python3.5/site-packages/redis/client.py", line 585, in parse_response
    response = connection.read_response()
  File "/venv/lib/python3.5/site-packages/redis/connection.py", line 582, in read_response
    raise response
redis.exceptions.ResponseError: full

Everything is updated to latest.

What's going on here?

Andrew Godwin

unread,
Apr 7, 2017, 9:28:05 AM4/7/17
to django...@googlegroups.com
The first part is normal Redis traffic for Daphne. It polls Redis in a pretty tight loop in synchronous mode (and this is, annoyingly, faster than the slow poll in Twisted-native mode).

The second part is an unrelated error that appears to be from handling a WebSocket that was incoming - is it reproduceable? If so, could you file an issue on the Channels GitHub with versions and steps to reproduce?

Andrew

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9339c18f-52be-43a6-8555-5b07105763d0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages