On 12/04/2013 09:18 PM, Steven MacLeod wrote:
Hi,

I'm actually the original author of the WebHooks extension. It was
originally written as more of a prototype, and probably has a few
bugs.

You appear to have hit one. What I believe the problem here is most
likely, is the webhooks extension doesn't unregister its signal
handlers when it shuts down. So, if you were to disable and then
re-enable the extension, it might have the handler registered twice.

If you'd like an example of an extension to work from with a little
more work put into it, check out
https://github.com/reviewboard/ReviewBot

It should have signal handlers that work properly.


I found how to solve my issue by reading https://docs.djangoproject.com/en/dev/topics/signals/#preventing-duplicate-signals

Adding a dispatch_ui parameter to the signal.connect() calls seems to
work well in my case.

But perhaps that's not the right fix, and the actual issue is due to
the missing disconnection as you mentioned.

I'll try it and let you know.

Thx.

Regards.

On Wed, Dec 4, 2013 at 8:10 AM, Samuel Degrande
<degrande.sam...@orange.fr> wrote:
Hi all.

I use ReviewBoard 1.7.19, with mod_wsgi.

I'm writing a "rbirker" extension, as a replacement to rbcia.

I used rbwebhooks as an example to write my extension, so mainly
only the notification code is different: it sends a notification
to an irker relay through a TCP socket.

But, the signal handler callbacks are called several times for each
notification (the number of times varying...).

I added some logging to my extension and to the mail notification
code, and here is an example log of what I get:

16:34:44 INFO - mail: review_published
16:34:44 INFO - mail: sending to .....
16:34:44 INFO - irker: review_published

which is fine, but I also sometime get:

00:10:10 INFO - mail: review_published
00:10:10 INFO - mail: sending to .....
00:10:10 INFO - irker: review_published
00:10:10 INFO - irker: review_published
00:10:10 INFO - irker: review_published
00:10:10 INFO - irker: review_published

which is not fine.

I also logged the call to the extension __init__ (which connect
callbacks to signals), and I can see lot of traces:

19:21:06 INFO - Connecting rbiker
19:26:09 INFO - Connecting rbiker
19:31:10 INFO - Connecting rbiker
19:39:06 INFO - Connecting rbiker
19:44:07 INFO - Connecting rbiker
19:57:06 INFO - Connecting rbiker

My guess (but I may be totally wrong, I'm a python newbie and I know
nothing of django) is that the callbacks could be registered several
times ?

Could someone help me solving that issue ?

Thanks.

--
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
--- You received this message because you are subscribed to the Google
Groups "reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


--
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
--- You received this message because you are subscribed to the Google Groups "reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to