redis-py - MISCONF Redis is configured to save RDB snapshots, ...
어느 순간, 테스트 서버에서 호스팅 중인 컨테이너에서 각종 오류들이 쏟아졌습니다. ^^; 가령, redis 호출에 대해서는 이런 오류 메시지가 나오고,
Traceback (most recent call last):
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
...[생략]...
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/d/workshop2/python-agent/testprj/latest_flask/pybo/views/main_views.py", line 190, in redis_test
client.set('my_db', 5)
File "/home/testusr/.local/lib/python3.11/site-packages/redis/commands/core.py", line 1453, in set
return self.execute_command('SET', *pieces, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...[생략]...
File "/home/testusr/.local/lib/python3.11/site-packages/redis/client.py", line 1071, in execute_command
return conn.retry.call_with_retry(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/redis/retry.py", line 32, in call_with_retry
return do()
^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/redis/client.py", line 1072, in <lambda>
lambda: self._send_command_parse_response(conn,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/redis/client.py", line 1051, in _send_command_parse_response
return self.parse_response(conn, command_name, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/redis/client.py", line 1084, in parse_response
response = connection.read_response()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/redis/connection.py", line 765, in read_response
raise response
redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
Mongo DB 호출은 이렇게 나오고,
Traceback (most recent call last):
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
...[생략]...
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/d/workshop2/python-agent/testprj/latest_flask/pybo/views/main_views.py", line 215, in pymongotest
db2.users.delete_many({'y': 1})
...[생략]...
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/collection.py", line 1451, in delete_many
self._delete_retryable(
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/collection.py", line 1360, in _delete_retryable
return self.__database.client._retryable_write(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/mongo_client.py", line 1643, in _retryable_write
with self._tmp_session(session) as s:
File "/usr/lib/python3.11/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/mongo_client.py", line 2040, in _tmp_session
s = self._ensure_session(session)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/mongo_client.py", line 2027, in _ensure_session
return self.__start_session(True, causal_consistency=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/mongo_client.py", line 1976, in __start_session
server_session = self._get_server_session()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/mongo_client.py", line 2013, in _get_server_session
return self._topology.get_server_session()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/topology.py", line 525, in get_server_session
session_timeout = self._check_session_support()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/topology.py", line 507, in _check_session_support
self._select_servers_loop(
File "/home/testusr/.local/lib/python3.11/site-packages/pymongo/topology.py", line 226, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: 192.168.100.50:15000: [Errno 111] Connection refused, Timeout: 30s, Topology Description: <TopologyDescription id: 6508f21066abc5620a3c1622, topology_type: Single, servers: [<ServerDescription ('192.168.100.50', 15000) server_type: Unknown, rtt: None, error=AutoReconnect('192.168.100.50:15000: [Errno 111] Connection refused')>]>
MySQL 서버 호출은 이런 오류가 발생합니다.
Traceback (most recent call last):
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1487, in full_dispatch_request
return self.finalize_request(rv)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1506, in finalize_request
response = self.make_response(rv)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/testusr/.local/lib/python3.11/site-packages/flask/app.py", line 1801, in make_response
raise TypeError(
TypeError: The view function for 'main.mysqlclient_wrapper2' did not return a valid response. The function either returned None or ended without a return statement.
당황하지 마시고, 컨테이너를 호스팅하는 서버의 디스크 용량을 확인해 보시고, 꽉 찼으면 여유 공간을 확보해 주시면 됩니다. (그나저나, redis의 오류 메시지가 그나마 실제 상황에 가깝군요. ^^)
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]