Re: [Django] #21952: Deadlock while dispatching signals

2014-03-20 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by apollo13):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 Since the original report is fixed, this should stay as fixed. Please open
 a new ticket with a patch, as I said before I ran into to many issues
 while backporting it…

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.4699e124e821900019e524d84034dfdb%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Django] #21952: Deadlock while dispatching signals

2014-03-20 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by edevil):

 * status:  closed => new
 * resolution:  fixed =>


Comment:

 Since it is reproducible in CPython, maybe 1.6 (current latest version)
 should be patched as well.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.e1a47a4e193b745317f3058b9595dab2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Django] #21952: Deadlock while dispatching signals

2014-03-17 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by jason@…):

 We are experiencing this issue with uwsgi, django 1.6.2 and CPython. +1
 for backport to 1.6

 Frame 0x3a73f30, for file /opt/apk-signer/apk-
 signer/venv/lib/python2.6/site-packages/django/dispatch/dispatcher.py,
 line 270, in _remove_receiver (self=), (((57907344,
 49833936), 7195216), ...(truncated)

 Full backtrace located here
 https://bug976729.bugzilla.mozilla.org/attachment.cgi?id=8391540

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.b6ad543d67ae52e6555362627d127884%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-13 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by apollo13):

 * cc: apollo13 (added)


Comment:

 I just tried backporting it, but it caused quite a few failures in the
 dispatch tests which I really don't want to debug again :). Since this
 only appears to affect gevent (which Django is completely untested on
 anyways -- although in theory this should affect CPython too) I'll not put
 any further work into this. If you want to give the backporting a shot and
 get the tests passing, I'll happily commit it.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.f6aa464f21aa0b65b40be8594ea985c0%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-13 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by edevil):

 Ping.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.e8ec8a50ac1425aaf1c290bf6cbc1be7%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-06 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by edevil):

 Will this be backported to 1.6?

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.c420487a964aaf541ab9d1f3cda83bb6%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-05 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by Florian Apolloner ):

 In [changeset:"297c009cf22b14b0124b790303404ee06a28"]:
 {{{
 #!CommitTicketReference repository=""
 revision="297c009cf22b14b0124b790303404ee06a28"
 Simplified signal code.

 Refs #21952
 }}}

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.a5772e2a769f84fe6a1b17d721c7f81b%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-05 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  closed
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:  fixed
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by Florian Apolloner ):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 In [changeset:"c29d6f767691cceb9964c0d212e01281ac6721d3"]:
 {{{
 #!CommitTicketReference repository=""
 revision="c29d6f767691cceb9964c0d212e01281ac6721d3"
 Fixed #21952 -- signals deadlock due to locking + weakref interaction
 }}}

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.d51a9144a1ae6eb54a4e9a97f2296f66%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-05 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by akaariai):

 hmmh, yeah, it could be possible that we leak dead weakref receivers. We
 could just add a and not self._dead_receivers check in there.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.b4b4f32ed25242ad806fa058b1d632ce%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by loic84):

 @akaariai, looking good overall, I believe this is the right approach.

 The only potential issue I can spot is that `send()` and `send_robust()`
 bypass `_live_receivers()` when a given `sender` is found in the cache.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.e6d483530b5d3e5492009dae4ffcafde%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  1|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by edevil):

 * has_patch:  0 => 1


Comment:

 Thanks for your work.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.70050797247d95a8b3ee86683db5921a%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  0|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+

Comment (by akaariai):

 Proposed patch at https://github.com/akaariai/django/compare/ticket_21952

 The approach is to not clean up dead weakref receivers during garbage
 collection, instead just set a flag that the signal has dead receivers and
 do the cleanup later on when self.receivers is accessed while holding
 self.lock.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.7bd4739339ef3a7a36fc2435ec380341%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Accepted
Has patch:  0|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+
Changes (by akaariai):

 * stage:  Unreviewed => Accepted


-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.8acd3285c8058ccce8027bc82971fc8e%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+--
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Unreviewed
Has patch:  0|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+--

Comment (by akaariai):

 OK, this seems hairy. RLock doesn't work (I don't know why, but tests fail
 all over the place).

 Still, the basic problem is that it seems that just looping over
 weakreffed receivers might end up cleaning the weakref, and that again
 will lead to trying to take self.lock. We must use some sort of
 concurrency control here, as otherwise we could end up caching receivers
 that have been removed. Maybe there is some lock-free algorithm for
 this...

 I'll mark this accepted. I haven't reproduced the error, but in any case
 tacking a lock in an action that is fired by garbage collector seems like
 a seriously bad idea.

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.1174c1e009804034475268314c546150%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+--
 Reporter:  edevil   |Owner:  nobody
 Type:  Bug  |   Status:  new
Component:  Core (Other) |  Version:  1.6
 Severity:  Release blocker  |   Resolution:
 Keywords:  signal deadlock  | Triage Stage:  Unreviewed
Has patch:  0|  Needs documentation:  0
  Needs tests:  0|  Patch needs improvement:  0
Easy pickings:  0|UI/UX:  0
-+--
Changes (by akaariai):

 * needs_better_patch:   => 0
 * needs_tests:   => 0
 * needs_docs:   => 0


Comment:

 I think we have to go with RLock (re-entrant lock) instead of Lock. What
 is happening here is that for some reason GC decides to clear the weakref
 version of the signal when looping over self.receivers in _live_receivers.
 If this is something that is caused by greenlets or something that could
 happen on pure CPython isn't clear to me.

 The basic problem is that we are running somewhat complicated code (and
 worse yet, code that requires the signal's lock) as side effect of garbage
 collection. No good ideas of how to fix that...

 This seems impossible to test, and RLocks should be safe here. So, maybe
 the easiest way is to just change self.lock = threading.Lock() to
 self.lock = threading.RLock().

-- 
Ticket URL: 
Django 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.42a1263dc1c3fa3576f06f8321f54f13%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


[Django] #21952: Deadlock while dispatching signals

2014-02-04 Thread Django
#21952: Deadlock while dispatching signals
-+-
 Reporter:  edevil   |  Owner:  nobody
 Type:  Bug  | Status:  new
Component:  Core (Other) |Version:  1.6
 Severity:  Release blocker  |   Keywords:  signal deadlock
 Triage Stage:  Unreviewed   |  Has patch:  0
Easy pickings:  0|  UI/UX:  0
-+-
 I'm testing an upgrade from Django 1.5.2 to 1.6.1, and came across this
 deadlock:

 {{{
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/greenlet.py", line 327, in run
   result = self._run(*self.args, **self.kwargs)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/http/response.py", line 308, in close
   signals.request_finished.send(sender=self._handler_class)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 184, in send
   for receiver in self._live_receivers(sender):
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 245, in _live_receivers
   for (receiverkey, r_senderkey), receiver in self.receivers:
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/saferef.py", line 121, in remove
   function( self )
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 270, in _remove_receiver
   with self.lock:
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/hub.py", line 331, in switch
   return greenlet.switch(self)
 }}}

 While in ''_live_receivers'' we have acquired the lock, and we try to
 acquire it again in ''_remove_receiver'' which is called with the lock. I
 don't know if the Gevent interaction is triggering the issue here, but its
 locks are supposed to exhibit the same behaviour as the ones from stdlib.
 I'm using uWSGI with the Gevent loop engine so it spawns one greenlet per
 request. After this deadlock I ended up with thousands of greenlets in:

 {{{
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/greenlet.py", line 327, in run
   result = self._run(*self.args, **self.kwargs)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/core/handlers/wsgi.py", line 206, in __call__
   response = self.get_response(request)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/core/handlers/base.py", line 90, in get_response
   response = middleware_method(request)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/contrib/sessions/middleware.py", line 12, in
 process_request
   request.session = engine.SessionStore(session_key)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/contrib/sessions/backends/cache.py", line 14, in __init__
   self._cache = get_cache(settings.SESSION_CACHE_ALIAS)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/core/cache/__init__.py", line 135, in get_cache
   signals.request_finished.connect(cache.close)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 116, in connect
   with self.lock:
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/hub.py", line 331, in switch
   return greenlet.switch(self)
 }}}
 and
 {{{
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/greenlet.py", line 327, in run
   result = self._run(*self.args, **self.kwargs)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/http/response.py", line 308, in close
   signals.request_finished.send(sender=self._handler_class)
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 184, in send
   for receiver in self._live_receivers(sender):
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/django/dispatch/dispatcher.py", line 242, in _live_receivers
   with self.lock:
 File "/servers/python-environments/discosite/local/lib/python2.7/site-
 packages/gevent/hub.py", line 331, in switch
   return greenlet.switch(self)
 }}}

-- 
Ticket URL: 
Django 
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