2948: Exception caused by use of ‘ and ’ characters in testing done field

sean.clar**********@gmai***** (Google Code) (Is this you? Claim this profile.)
Aug. 7, 2013
What version are you running?
1.6.13

What's the URL of the page containing the problem?


What steps will reproduce the problem?
1.Try to publish a draft review which has the following text in the testing done field.  This was copied and pasted from a word document.

****BEGIN***
-	Copy an existing row (with no errors): al_ext_client_fee_split
-	Delete the value in the automatic field (id), set PROCESSED to ‘N’, set BENEFICIARY_CLIENT_1 to null and RETROCESSION_FLAG_1 to ‘Y’.
-	Commit. => Check that PROCESSED = ‘R’, ERROR_CODE contains an error code because RETROCESSION_FLAG_1 is set while BENEFICIARY_CLIENT_1 is not. 
****END***

What is the expected output? What do you see instead?
Publishing of review does not succeed.  Stack trace on server is below.

What operating system are you using? What browser?


Please provide any additional information below.

2013-04-05 16:56:13,140 - ERROR - Exception thrown for user vcisse at http://reviewboard/api/review-requests/9188/draft/

Data truncated for column 'testing_done' at row 1
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/views/decorators/cache.py", line 79, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/views/decorators/vary.py", line 22, in inner_func
    response = func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.23-py2.4.egg/djblets/webapi/resources.py", line 456, in __call__
    result = view(request, api_format=api_format, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.23-py2.4.egg/djblets/webapi/resources.py", line 672, in put
    return self.update(request, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.6.13-py2.4.egg/reviewboard/webapi/decorators.py", line 127, in _check
    return view_func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.23-py2.4.egg/djblets/webapi/decorators.py", line 88, in _checklogin
    return view_func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.23-py2.4.egg/djblets/webapi/decorators.py", line 231, in _validate
    return view_func(*args, **new_kwargs)
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.6.13-py2.4.egg/reviewboard/webapi/resources.py", line 3684, in update
    draft.save()
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.6.13-py2.4.egg/reviewboard/reviews/models.py", line 1037, in save
    super(ReviewRequestDraft, self).save()
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/models/base.py", line 460, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/models/base.py", line 526, in save_base
    rows = manager.using(using).filter(pk=pk_val)._update(values)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/models/query.py", line 491, in _update
    return query.get_compiler(self.db).execute_sql(None)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/models/sql/compiler.py", line 869, in execute_sql
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/models/sql/compiler.py", line 735, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.23-py2.4.egg/djblets/log/middleware.py", line 49, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.4/site-packages/Django-1.3.3-py2.4.egg/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-i686.egg/MySQLdb/cursors.py", line 176, in execute
  File "/usr/lib/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-i686.egg/MySQLdb/cursors.py", line 92, in _warning_check
  File "/usr/lib/python2.4/warnings.py", line 61, in warn
    warn_explicit(message, category, filename, lineno, module, registry)
  File "/usr/lib/python2.4/warnings.py", line 96, in warn_explicit
    raise message
Warning: Data truncated for column 'testing_done' at row 1
david
#1 david
This is likely due to database tables that are not UTF-8. Bug 3000 tracks the fact that it's annoying and hard to get this set up correctly.
  • +SetupIssue