Hey there! I'm using web2py in production to serve websites. I have two Redis instances: one for cache and one for sessions. Each Redis instance runs in a VPS with 24gb of RAM. A few days ago suddently the Redis instance rejected all write attempts, this is the traceback:
Traceback (most recent call last): File "/var/www/medios/gluon/main.py", line 462, in wsgibase session._try_store_in_db(request, response) File "/var/www/medios/gluon/globals.py", line 1226, in _try_store_in_db record_id = table.insert(**dd) File "/var/www/medios/gluon/contrib/redis_session.py", line 138, in insert newid = str(self.db.r_server.incr(self.serial)) File "/var/www/medios/venv_medios/lib/python2.7/site-packages/redis/client.py", line 651, in incr return self.execute_command('INCRBY', name, amount) File "/var/www/medios/venv_medios/lib/python2.7/site-packages/redis/client.py", line 394, in execute_command return self.parse_response(connection, command_name, **options) File "/var/www/medios/venv_medios/lib/python2.7/site-packages/redis/client.py", line 404, in parse_response response = connection.read_response() File "/var/www/medios/venv_medios/lib/python2.7/site-packages/redis/connection.py", line 316, in read_response raise response ResponseError: OOM command not allowed when used memory > 'maxmemory'. But it doesn't make sense, as the server has plenty of RAM available, checked with command "free -m": total: 23940 used: 1617 free: 21784 shared: 96 buff/cache: 538 available: 22018 Also, Redis memory usage is at normal levels, checked with command "redis-cli info memory": used_memory_human:1.26G used_memory_rss_human:1.33G total_system_memory_human:23.38G maxmemory_human:20.00G maxmemory_policy:allkeys-lru allocator_frag_ratio:1.03 mem_fragmentation_ratio:1.05 I don't use sessions for anything out of the ordinary. Most of the requests don't modify the session and execute session.forget(response). I only use sessions to handle a few logged in users. This is how my app connects to session in models/db.py: sessiondb = RedisSession( session_expiry=172800, # two days redis_conn=RConn( host=REDIS_SESSION_HOST, port=REDIS_SESSION_PORT, password=REDIS_SESSION_PASSWORD, application=request.application)) session.connect(request, response, db=sessiondb) I'm using this web2py version: Version 2.17.1-stable+timestamp.2018.08.06.01.02.56 I know it's old but it's been running so smoothly :) serving ~60 rps. I use virtualenv and this is what I see when I run 'pip freeze | grep "redis"': redis==2.8.0 What could be the reason of the issue? Thanks in advance! Warm regards, Lisandro. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/60520256-5efd-49da-8396-e5278e193adfn%40googlegroups.com.