Make the database backend retry operations on ResourceClosedError and StaleDataError too. Make the operations close the connection if failure occurs (can't retry on broken connection). Fixes #1786.
Don't close the session. Just rollback and/or close.
Close the sessions before disposing the engines as the engines won't close connections held up in sessions.
Use a session manager that has different behavior before the fork (effectivelly hardcodes NullPool - everything else is unreliable).
Update changelog.
Merge pull request #1899 from celery/more-reliable-sqlalchemy

Make the database backend more reliable