#19707: TransactionMiddleware leaks transaction state
-------------------------------------+-------------------------------------
     Reporter:  akaariai             |                    Owner:  nobody
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  1.4
  (models, ORM)                      |               Resolution:  fixed
     Severity:  Release blocker      |             Triage Stage:  Accepted
     Keywords:                       |      Needs documentation:  0
    Has patch:  0                    |  Patch needs improvement:  1
  Needs tests:  0                    |                    UI/UX:  0
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by carljm):

 Good point about later connections. Logging an error to request log should
 still send an error email in the default config (since that's exactly what
 `handle_uncaught_exception` does), so yes that seems fine.

 I agree that Django should be able to recover from a dropped DB
 connection. What we are talking about here is a clearly
 misconfigured/broken codebase (i.e. missing 500.html or unbalanced enter-
 transaction-management) _plus_ a dropped DB connection. I think in that
 rare situation the highest priority should be alerting that the codebase
 is broken, and cleanup should only be attempted if we are confident it can
 be done correctly.

 What is really needed for reliable cleanup is some way to call
 leave_transaction_management and tell it "don't try to use the database
 connection, it might be broken, just clean up the transaction state in the
 wrapper." Allowing for this might be a more invasive future change. For
 1.4.x I agree that letting the next request clean it up is good enough.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/19707#comment:16>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to