Django Rest框架和Google云SQL服务器错误
我正在Ubuntu 14.04.3上运行一个Django Rest框架应用程序,Nginx 1.4.6带有谷歌云SQL后端。我正在使用Django 1.7和Django Rest框架3.1.2 站点和Google Cloud SQL连接都通过SSL运行 我遇到的是,大约每75-100个请求中就有一个返回500个错误。这是非常间歇的。例如,如果在弹出控件中获取下拉列表值的请求失败一次,如果我关闭并重新打开弹出窗口,它将在第二次工作 它会影响对随机端点的调用——我还没有检测到模式 Django错误日志显示:Django Rest框架和Google云SQL服务器错误,django,django-rest-framework,google-cloud-sql,Django,Django Rest Framework,Google Cloud Sql,我正在Ubuntu 14.04.3上运行一个Django Rest框架应用程序,Nginx 1.4.6带有谷歌云SQL后端。我正在使用Django 1.7和Django Rest框架3.1.2 站点和Google Cloud SQL连接都通过SSL运行 我遇到的是,大约每75-100个请求中就有一个返回500个错误。这是非常间歇的。例如,如果在弹出控件中获取下拉列表值的请求失败一次,如果我关闭并重新打开弹出窗口,它将在第二次工作 它会影响对随机端点的调用——我还没有检测到模式 Django错误日
AttributeError: 'SessionStore' object has no attribute '_session_cache'
基于此,我已经验证了数据库确实有一个django_会话表,django.contrib.sessions.middleware.SessionMiddleware
在我的settings.py
文件中
在错误日志详细信息的底部,我看到:
django.db.utils.OperationalError: (2026, 'SSL connection error: unknown error number')
我读过,但我不清楚这是否是同一件事。我的设置比这里描述的要简单得多(没有负载平衡,没有芹菜),而且谷歌云SQL团队似乎没有就这个问题公开正式的问题(无论如何,我还没有找到它)
其中一个错误的完整堆栈跟踪:
Internal Server Error: /api/v1/ref/contact-types/
Traceback (most recent call last):
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py", line 170, in _get_session
return self._session_cache
AttributeError: 'SessionStore' object has no attribute '_session_cache'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 133, in ensure_connection
self.connect()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 122, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/mysql/base.py", line 471, in get_new_connection
conn = Database.connect(**conn_params)
File "/home/foo/bar/venv/lib/python3.4/site-packages/MySQLdb/__init__.py", line
81, in Connect
return Connection(*args, **kwargs)
File "/home/foo/bar/venv/lib/python3.4/site-packages/MySQLdb/connections.py",
line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2026, 'SSL connection error: unknown error number')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/core/handlers/base.py", line 87, in get_response
response = middleware_method(request)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py", line 34, in process_request
if user and hasattr(user, 'get_session_auth_hash'):
File "/home/foo/bar/venv/lib/python3.4/site-packages/django/utils/functional.py",
line 224, in inner
self._setup()
File "/home/foo/bar/venv/lib/python3.4/site-packages/django/utils/functional.py",
line 357, in _setup
self._wrapped = self._setupfunc()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py", line 23, in <lambda>
request.user = SimpleLazyObject(lambda: get_user(request))
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py", line 11, in get_user
request._cached_user = auth.get_user(request)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/__init__.py", line 151, in get_user
user_id = request.session[SESSION_KEY]
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py", line 49, in __getitem__
return self._session[key]
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py", line 175, in _get_session
self._session_cache = self.load()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/db.py", line 21, in load
expire_date__gt=timezone.now()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/manager.py", line 92, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py", line 351, in get
num = len(clone)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py", line 122, in __len__
num = len(clone)
self._fetch_all()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py", line 966, in _fetch_all
self._result_cache = list(self.iterator())
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py", line 265, in iterator
for row in compiler.results_iter():
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/sql/compiler.py", line 700, in results_
iter
for rows in self.execute_sql(MULTI):
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/sql/compiler.py", line 784, in execute_
sql
cursor = self.connection.cursor()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 167, in cursor
cursor = utils.CursorWrapper(self._cursor(), self)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 138, in _cursor
self.ensure_connection()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 133, in ensure_con
nection
self.connect()
File "/home/foo/bar/venv/lib/python3.4/site-packages/django/db/utils.py", line 94,
in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/foo/bar/venv/lib/python3.4/site-packages/django/utils/six.py", line
549, in reraise
raise value.with_traceback(tb)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 133, in ensure_con
nection
self.connect()
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/__init__.py", line 122, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/mysql/base.py", line 471, in get_new_
connection
conn = Database.connect(**conn_params)
File "/home/foo/bar/venv/lib/python3.4/site-packages/MySQLdb/__init__.py", line
81, in Connect
return Connection(*args, **kwargs)
File "/home/foo/bar/venv/lib/python3.4/site-packages/MySQLdb/connections.py",
line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
django.db.utils.OperationalError: (2026, 'SSL connection error: unknown error number')
内部服务器错误:/api/v1/ref/联系人类型/
回溯(最近一次呼叫最后一次):
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py”,第170行,in_get_session
返回self.\u会话\u缓存
AttributeError:“SessionStore”对象没有属性“\u会话\u缓存”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/_init__.py”,第133行,确保连接
self.connect()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/_init__.py”,第122行,连接中
self.connection=self.get_new_connection(连接参数)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/mysql/base.py”,第471行,在get_new_连接中
conn=数据库.connect(**conn_参数)
文件“/home/foo/bar/venv/lib/python3.4/site-packages/MySQLdb/_-init__.py”,第行
81,在连接中
返回连接(*args,**kwargs)
文件“/home/foo/bar/venv/lib/python3.4/site packages/MySQLdb/connections.py”,
第204行,在_init__中
超级(连接,自).\uuuu初始化(*args,**kwargs2)
_mysql_exceptions.OperationalError:(2026,“SSL连接错误:未知错误号”)
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/core/handlers/base.py”,第87行,在get_响应中
响应=中间件\方法(请求)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py”,第34行,进程中请求
如果user和hasattr(user'get\u session\u auth\u hash'):
文件“/home/foo/bar/venv/lib/python3.4/site packages/django/utils/functional.py”,
第224行,在内部
self.\u设置()
文件“/home/foo/bar/venv/lib/python3.4/site packages/django/utils/functional.py”,
第357行,输入设置
self.\u wrapped=self.\u setupfunc()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py”,第23行,在
request.user=SimpleLazyObject(lambda:get_user(request))
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/middleware.py”,第11行,在get_user中
请求。_cached_user=auth.get_user(请求)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/auth/_init__uuuuu.py”,第151行,在get_user中
user\u id=request.session[session\u KEY]
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py”,第49行,在
返回self.\u会话[键]
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/base.py”,第175行,in_get_session
self.\u session\u cache=self.load()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/contrib/sessions/backends/db.py”,第21行,已加载
expire\u date\uu gt=timezone.now()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/manager.py”,第92行,在manager\u方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py”,get中的第351行
num=len(克隆)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py”,第122行,在
num=len(克隆)
self._fetch_all()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py”,第966行,全部
self.\u result\u cache=list(self.iterator())
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/query.py”,第265行,在迭代器中
对于编译器.results\u iter()中的行:
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/sql/compiler.py”,第700行,在results\u中
iter
对于self.execute_sql(多)中的行:
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/models/sql/compiler.py”,第784行,在execute_中
sql
cursor=self.connection.cursor()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/_init__.py”,第167行,光标
cursor=utils.CursorWrapper(self.\u cursor(),self)
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/_init__.py”,第138行,在光标处
self.sure_连接()
文件“/home/foo/bar/venv/lib/python3.4/site-
packages/django/db/backends/_init__.py”,第133行,确保
连接
self.connect()
文件“/home/foo/bar/venv/lib/python3.4/site packages/django/db/utils.py”,第94行,
进入,退出
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“/home/foo/bar/venv/lib/python3.4/site packages/django/utils/six.py”,第行
549年,在雷莱斯
通过_回溯(tb)提升值
文件“/主页