Created
May 12, 2017 22:31
-
-
Save talwai/c3a000edda6db8312210c74caaded261 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- /home/vagrant/python/lib/python2.7/site-packages/blinker/base.py 2017-05-12 22:29:27.020638000 +0000 | |
+++ base.py 2017-05-12 22:29:02.000000000 +0000 | |
@@ -21,6 +21,13 @@ | |
symbol, | |
) | |
+import logging; | |
+FORMAT = '%(asctime)s %(message)s' | |
+ | |
+log = logging.getLogger() | |
+handler = logging.FileHandler("./ddtrace_blinker.log") | |
+handler.setFormatter(logging.Formatter(FORMAT)) | |
+log.addHandler(handler) | |
ANY = symbol('ANY') | |
ANY.__doc__ = 'Token for "any sender".' | |
@@ -108,6 +115,7 @@ | |
is garbage collected. Defaults to True. | |
""" | |
+ log.warn("Connected %s %s %s", receiver, sender, weak) | |
receiver_id = hashable_identity(receiver) | |
if weak: | |
receiver_ref = reference(receiver, self._cleanup_receiver) | |
@@ -253,6 +261,7 @@ | |
# Using '*sender' rather than 'sender=None' allows 'sender' to be | |
# used as a keyword argument- i.e. it's an invisible name in the | |
# function signature. | |
+ log.warn("Sent %s %s", sender, kwargs) | |
if len(sender) == 0: | |
sender = None | |
elif len(sender) > 1: | |
@@ -313,6 +322,7 @@ | |
to disconnect from all senders. Defaults to ``ANY``. | |
""" | |
+ log.warn("Disconnected %s %s", receiver, sender) | |
if sender is ANY: | |
sender_id = ANY_ID | |
else: | |
@@ -327,6 +337,7 @@ | |
sender=sender) | |
def _disconnect(self, receiver_id, sender_id): | |
+ log.warn("_disconnected %s %s", receiver_id, sender_id) | |
if sender_id == ANY_ID: | |
if self._by_receiver.pop(receiver_id, False): | |
for bucket in self._by_sender.values(): | |
@@ -341,6 +352,7 @@ | |
def _cleanup_sender(self, sender_ref): | |
"""Disconnect all receivers from a sender.""" | |
+ log.warn("_cleanup_sender %s %s", sender_ref) | |
sender_id = sender_ref.sender_id | |
assert sender_id != ANY_ID | |
self._weak_senders.pop(sender_id, None) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
apply with
For a traced flask app using blinker, this will output all signal operations into $CWD/ddtrace_blinker.log . Hopefully this will let us see if any receivers get disconnected or unintentionally lost to garbage collection.