Modify

Opened 6 years ago

Closed 6 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 6 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 6 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 6 years ago by osimons

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

Reopen to change owner.

comment:5 Changed 6 years ago by osimons

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

comment:6 Changed 6 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 owner will remain osimons.
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.