Modify ↓
Opened 3 weeks ago
Last modified 3 weeks ago
#14360 accepted defect
TicketTagProvider fetching `tags` records before the `tags` table created
Reported by: | Jun Omae | Owned by: | Jun Omae |
---|---|---|---|
Priority: | normal | Component: | TagsPlugin |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 1.6 |
Description
This behavior leads trac:#13804.
17:43:29 Trac[env] ERROR: Component <Component tracspamfilter.filters.trapfield.TrapFieldFilterStrategy> failed with Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/trac/env.py", line 382, in component_guard yield File "/usr/local/lib/python3.13/site-packages/trac/env.py", line 750, in needs_upgrade if participant.environment_needs_upgrade(): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tracspamfilter/filters/trapfield.py", line 116, in environment_needs_upgrade chrome.load_template(os.devnull) # to set chrome.jenv property ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/web/chrome.py", line 1316, in load_template jinja2_dirs = self.get_all_templates_dirs() File "/usr/local/lib/python3.13/site-packages/trac/web/chrome.py", line 772, in get_all_templates_dirs for provider in self.template_providers: ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 96, in extensions components = [component.compmgr[cls] for cls in classes] ~~~~~~~~~~~~~~~~~^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 238, in __getitem__ component = cls(self) File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 158, in __call__ self.__init__() ~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tractags/wiki.py", line 101, in __init__ self.tag_system = TagSystem(self.env) ~~~~~~~~~^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 158, in __call__ self.__init__() ~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tractags/api.py", line 249, in __init__ self._populate_provider_map() ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tractags/api.py", line 465, in _populate_provider_map for provider in self.tag_providers) ^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 96, in extensions components = [component.compmgr[cls] for cls in classes] ~~~~~~~~~~~~~~~~~^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 238, in __getitem__ component = cls(self) File "/usr/local/lib/python3.13/site-packages/trac/core.py", line 158, in __call__ self.__init__() ~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tractags/ticket.py", line 53, in __init__ self._fetch_tkt_tags() ~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/site-packages/tractags/ticket.py", line 215, in _fetch_tkt_tags rw_cursor.execute(""" ~~~~~~~~~~~~~~~~~^^^^ DELETE FROM tags ^^^^^^^^^^^^^^^^ ...<3 lines>... """ % (db.cast('tags.name', 'int'), ignore), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (self.realm,)) ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/trac/db/util.py", line 73, in execute return self.cursor.execute(sql_escape_percent(sql), args) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ psycopg2.errors.UndefinedTable: relation "tags" does not exist LINE 2: DELETE FROM tags ^ UndefinedTable: relation "tags" does not exist LINE 2: DELETE FROM tags ^ Error: Unable to check for upgrade of tracspamfilter.filters.trapfield.TrapFieldFilterStrategy: UndefinedTable: relation "tags" does not exist LINE 2: DELETE FROM tags ^
Attachments (0)
Change History (2)
comment:1 Changed 3 weeks ago by
comment:2 Changed 3 weeks ago by
Owner: | changed from Ryan J Ollos to Jun Omae |
---|---|
Status: | new → accepted |
Currently, the tags
table is refreshed on each TicketTagProvider
initiation. It leads performance issues by many tickets and/or concurrent requests. I think we should provide tags sync
command to refresh tags
table instead of refreshing on requests.
Note: See
TracTickets for help on using
tickets.
In 18665: