Django Rest框架和Google云SQL服务器错误

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错误日

我正在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)提升值
文件“/主页