Edgewall Software

Opened 12 years ago

Closed 12 years ago

#9540 closed defect (worksforme)

Deleting a Ticket Component blocks access to Tickets which used it.

Reported by: josh@… Owned by: Remy Blank
Priority: normal Milestone:
Component: ticket system Version: 0.11.7
Severity: normal Keywords: ticket, component
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:


My company has a problem whereby we set up numerous individual projects with a fairly unique set of Ticket Components for each project. We're now moving to a more standardised set of components, meaning we'd like to delete the old ones.

The problem we're encountering is that deleting a component means we cannot access any ticket which used that component, meaning we cannot go in and retroactively change that ticket's component.

Since we've noticed this bug, we've started changing the components /before/ deleting the old ones. However, there are times when we miss ones, and there are some left over from before we started doing that.

It would be nice if there was some sort of blank component that tickets whose components do not exist could fall back to.

Attachments (0)

Change History (7)

comment:1 by Remy Blank, 12 years ago

Keywords: needinfo added

What do you mean by "blocks access"? Do you get an error message?

IIRC, it's not possible anymore to make a ticket query for that particular component, as it doesn't appear in the select box anymore. But you can still view the ticket if you know its number, or create a report listing only tickets having that component, or even use the [[TicketQuery()]] macro to list them.

comment:2 by josh@…, 12 years ago

Hmm, I'm actually having some trouble reproducing this bug (I'm reporting this bug after-the-fact).

From memory, the steps to follow were

  1. Create a ticket with some value in the component field
  2. Delete that component - either via the web interface or trac-admin.
  3. Attempt to access that ticket's page (e.g http://example.com/project/ticket/3)
  4. Get error message Component %(name)s does not exist. (And subsequently, not be able to access that ticket to change it.)

However, that isn't producing the expected result when I try to reproduce it. (It's allowing access, and the deleted component is still showing up, including in tickets which aren't set to that component).

Certainly, the problem we encountered occurred when we attempted to access a ticket whose component did not exist, and we received an error message, meaning we were unable to actually view or change the ticket.

comment:3 by josh@…, 12 years ago

I just checked our internal ticket for this bug. The exact error message we got was some variation on

Trac Error
Component component1 does not exist.

comment:4 by Remy Blank, 12 years ago

Thanks for the info. I'll try to reproduce the issue. Which revision of 0.11-stable are you running?

comment:5 by josh@…, 12 years ago

We're running 0.11.7 - I couldn't tell you the exact revision number.

Also, your damn spam filter doesn't appear to want to let me post.

comment:6 by Remy Blank, 12 years ago

Keywords: needinfo removed
Milestone: 0.12.1
Owner: set to Remy Blank
Version: 0.11-stable0.11.7

comment:7 by Remy Blank, 12 years ago

Milestone: 0.12.1
Resolution: worksforme
Status: newclosed

I cannot reproduce the issue here with current 0.11-stable. The ticket still displays correctly after deletion of the component, and the component still appears correctly in the select box of that ticket. Note that the error you have seen may be due to a plugin. A full backtrace from the log could help identify the plugin.

The fact that you still see it in other tickets as well is due to caching, it will disappear if you restart the web server. This has been fixed in 0.12.

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Remy Blank.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Remy Blank to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.