Opened 16 years ago

Last modified 15 years ago

#3772 closed defect

[patch] Race condition in TicketRPC.update() — at Version 2

Reported by: Michael Stone Owned by: Alec Thomas
Priority: highest Component: XmlRpcPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.10

Description (last modified by Steffen Pingel)

There is a race between t.save_changes() and tn.notify() in TicketRPC.update() in tracrpc/ticket.py which can result in Trac sending notification emails with empty changelogs. I believe that this race can be fixed with the following simple patch:

Index: ticket.py
===================================================================
--- ticket.py   (revision 4311)
+++ ticket.py   (working copy)
@@ -102,7 +102,7 @@
         t = model.Ticket(self.env, id)
         for k, v in attributes.iteritems():
             t[k] = v
-        t.save_changes(req.authname or 'anonymous', comment)
+        t.save_changes(req.authname or 'anonymous', comment, when=now)
 
         if notify:
             try:

Change History (2)

comment:1 Changed 16 years ago by Michael Stone

Many thanks to coderanger for guiding me through the Trac codebase as I diagnosed this issue.

comment:2 Changed 15 years ago by Steffen Pingel

Description: modified (diff)
Priority: normalhighest
Summary: Race condition in TicketRPC.update()[patch] Race condition in TicketRPC.update()
Note: See TracTickets for help on using tickets.