beaker_session MySQL server has gone away

Oct 26, 2017/Nov 10, 2017

매일 아침 와서 현재 개발중인 백오피스를 켜면 Internal Server Error 발생. 로그를 보니 아래와 같은 오류 발생

OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (error(32, 'Broken pipe'))") [SQL: u'SELECT beaker_cache.data \\nFROM beaker_cache \\nWHERE beaker_cache.namespace = %(namespace_1)s'] [parameters: {u'namespace_1': '17b85df148204386870d2de3b3beaf40'}]  

beaker_session github issue 로 찾아보니 떡하니 클로징된 이슈가 있다.

https://github.com/bbangert/beaker/issues/126

cache 를 쓰지 않기 때문에 session.sa.pool_recycle 을 아래와 같이 추가해주었다. 그리고 나서 다음날 다시 같은 현상이 발생하는지 체크했는데, 발생하지 않았다.

    session_opts = {
        'session.type': 'ext:database',
        'session.url': app.config['SQLALCHEMY_DATABASE_URI'],
        'session.cookie_expires': True,
        'session.timeout': 600,
        'session.sa.pool_recycle': 250
    }
    app.wsgi_app = SessionMiddleware(app.wsgi_app, session_opts)
    app.session_interface = BeakerSessionInterface()

session.sa.pool_recycle 에 대한 자세한 내용은 아래의 글을 참고하자.


#dev  #FLASK  #MySQL  #Python  #session  #beaker