Modify

Opened 6 years ago

Closed 5 years ago

#3772 closed defect (fixed)

[patch] Race condition in TicketRPC.update()

Reported by: mstone Owned by: osimons
Priority: highest Component: XmlRpcPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.10

Description (last modified by osimons)

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:

Attachments (0)

Change History (6)

comment:1 Changed 6 years ago by mstone

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

comment:2 Changed 5 years ago by stp

  • Description modified (diff)
  • Priority changed from normal to highest
  • Summary changed from Race condition in TicketRPC.update() to [patch] Race condition in TicketRPC.update()

comment:3 Changed 5 years ago by osimons

  • Resolution set to fixed
  • Status changed from new to closed

(In [6055]) XmlRpcPlugin: Fix for possible ticket update race condition. Closes #3772.

Thanks to mstone for report and patch.

comment:4 Changed 5 years ago by osimons

  • Description modified (diff)
  • Resolution fixed deleted
  • Status changed from closed to reopened

Reopen to change owner.

comment:5 Changed 5 years ago by osimons

  • Owner changed from athomas to osimons
  • Status changed from reopened to new

comment:6 Changed 5 years ago by osimons

  • Resolution set to fixed
  • Status changed from new to closed

...and closing again.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.