Modify ↓
Opened 17 years ago
Closed 16 years ago
#3772 closed defect (fixed)
[patch] Race condition in TicketRPC.update()
| Reported by: | Michael Stone | Owned by: | osimons |
|---|---|---|---|
| Priority: | highest | Component: | XmlRpcPlugin |
| Severity: | normal | Keywords: | |
| Cc: | Trac Release: | 0.10 |
Description (last modified by )
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 17 years ago by
comment:2 Changed 16 years ago by
| Description: | modified (diff) |
|---|---|
| Priority: | normal → highest |
| Summary: | Race condition in TicketRPC.update() → [patch] Race condition in TicketRPC.update() |
comment:3 Changed 16 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
(In [6055]) XmlRpcPlugin: Fix for possible ticket update race condition. Closes #3772.
Thanks to mstone for report and patch.
comment:4 Changed 16 years ago by
| Description: | modified (diff) |
|---|---|
| Resolution: | fixed |
| Status: | closed → reopened |
Reopen to change owner.
comment:5 Changed 16 years ago by
| Owner: | changed from Alec Thomas to osimons |
|---|---|
| Status: | reopened → new |
Note: See
TracTickets for help on using
tickets.



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