Edgewall Software
Modify

Ticket #5591 (closed defect: fixed)

Opened 5 years ago

Last modified 4 years ago

Trac can't handle unicode curly quotes

Reported by: Dave Abrahams <dave@…> Owned by: jonas
Priority: highest Milestone: not applicable
Component: plugin/spamfilter Version: 0.10-stable
Severity: critical Keywords: unicode
Cc:
Release Notes:
API Changes:

Description

Trying to submit “this” causes an internal error.

Attachments

Change History

comment:1 Changed 5 years ago by Dave Abrahams <dave@…>

Well, OK, maybe it can sometimes, but see http://paste.lisp.org/display/43332. I've seen at least one example where removing the curly quotes made the error go away.

comment:2 Changed 5 years ago by cboos

  • Component changed from wiki to spamfilter
  • Milestone set to not applicable
  • Owner changed from cboos to mgood

I confirm the issue which can be triggered when posting a comment with the above content. The corresponding backtrace is:

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 406, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 237, in dispatch
    resp = chosen_handler.process_request(req)
  File "/usr/lib/python2.4/site-packages/trac/ticket/web_ui.py", line 290, in process_request
    self._do_save(req, db, ticket)
  File "/usr/lib/python2.4/site-packages/trac/ticket/web_ui.py", line 547, in _do_save
    self._validate_ticket(req, ticket)
  File "/usr/lib/python2.4/site-packages/trac/ticket/web_ui.py", line 77, in _validate_ticket
    for field, message in manipulator.validate_ticket(req, ticket):
  File "build/bdist.linux-x86_64/egg/tracspamfilter/adapters.py", line 67, in validate_ticket
  File "build/bdist.linux-x86_64/egg/tracspamfilter/api.py", line 131, in test
  File "build/bdist.linux-x86_64/egg/tracspamfilter/model.py", line 135, in insert
  File "/usr/lib/python2.4/site-packages/trac/db/util.py", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/usr/lib/python2.4/site-packages/trac/db/util.py", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
ProgrammingError: current transaction is aborted, commands ignored until end of transaction block

Looks similar to #4087, so this must be a situation where r5390 was not enough.

comment:3 Changed 5 years ago by Dave Abrahams <dave@…>

I think a minimal repro may be
“{{{x}}}”

comment:4 Changed 4 years ago by cboos

  • Keywords unicode added
  • Priority changed from normal to high
  • Severity changed from normal to major

#5848 and #6049 were closed as duplicates.

comment:5 Changed 4 years ago by cboos

... #5311, #5577 and #5605 as well.

comment:6 Changed 4 years ago by cboos

  • Priority changed from high to highest
  • Severity changed from major to critical

#7187 also - and translation related tickets all contain various complaints of translators getting this problem...

comment:7 Changed 4 years ago by jonas

  • Owner changed from mgood to jonas

comment:8 Changed 4 years ago by jonas

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

Fixed in [6990].

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
to The owner will be changed from jonas. Next status will be 'closed'
Author


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

 
Note: See TracTickets for help on using tickets.