------------------------------------------------------------------------------
To reply, visit https://hellosplat.com/s/beanbag/tickets/4917/
------------------------------------------------------------------------------
New ticket #4917 by kofemann
For Beanbag, Inc. > Review Board
Status: New
Tags: Priority:Medium, Type:Defect
------------------------------------------------------------------------------
reviewboard fails when to accept review requests with non ascii tect in
description
==============================================================================
# What version are you running?
3.0.18
# What steps will reproduce the problem?
1. Posting with `rbt post -p HEAD` a commit where body as some greek text
# What is the expected output? What do you see instead?
I see:
```
$ rbt post -p HEAD
(git)-[fixes]
ERROR: Error updating review request draft: HTTP 500
Your review request still exists, but the diff is not attached.
https://rb.dcache.org/r/12894/
```
# What operating system are you using? What browser?
The server runs in a `ubuntu:18.04` container with MariaDB
# Please provide any additional information below.
On the server side:
```
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py",
line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File
"/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py", line
52, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/django/views/decorators/vary.py", line
19, in inner_func
response = func(*args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/djblets/webapi/resources/base.py", line
244, in __call__
request, method, view, api_format=api_format, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/reviewboard/webapi/base.py",
line 338, in call_method_view
request, method, view, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/djblets/webapi/resources/mixins/api_tokens.py",
line 66, in call_method_view
request, method, view, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/djblets/webapi/resources/mixins/oauth2_tokens.py",
line 102, in call_method_view
request, method, view, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/djblets/webapi/resources/base.py", line
369, in call_method_view
return view(request, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/djblets/webapi/resources/base.py", line
485, in put
return self.update(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 125, in _call
return view_func(*args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/reviewboard/webapi/decorators.py", line
169, in _check
return view_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 125, in _call
return view_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 146, in _checklogin
return view_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 125, in _call
return view_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 125, in _call
return view_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/djblets/webapi/decorators.py",
line 311, in _validate
return view_func(*args, **new_kwargs)
File
"/usr/local/lib/python2.7/dist-packages/reviewboard/webapi/resources/review_request_draft.py",
line 694, in update
obj.save(update_fields=sorted(update_fields))
File
"/usr/local/lib/python2.7/dist-packages/reviewboard/reviews/models/base_review_request_details.py",
line 241, in save
super(BaseReviewRequestDetails, self).save(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line
545, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line
573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using,
update_fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line
635, in _save_table
forced_update)
File
"/usr/local/lib/python2.7/dist-packages/djblets/db/fields/counter_field.py",
line 470, in _model_do_update
base_qs, using, pk_val, values, update_fields, forced_update)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line
679, in _do_update
return filtered._update(values) > 0
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line
510, in _update
return query.get_compiler(self.db).execute_sql(None)
File
"/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line
980, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File
"/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line
786, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py",
line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 99, in
__exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py",
line 53, in execute
return self.cursor.execute(sql, params)
File
"/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line
124, in execute
return self.cursor.execute(query, args)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in
execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, in
defaulterrorhandler
raise errorvalue
OperationalError: (1366, "Incorrect string value: '\xCE\xA7\xCE\xAF\xCE\xBC...'
for column `reviewboard`.`reviews_reviewrequestdraft`.`description` at row 1")
<WSGIRequest
path:/api/review-requests/12894/draft/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'description': [u'Motivation:\nHistorically, the namespace
was called Himera, though the intend was\nChimera
(\u03a7\u03af\u03bc\u03b1\u03b9\u03c1\u03b1), the monstrous fire-breathing
creature composed of\nthe parts of more than one animal (to emphasise the
multi-face nature).\nThe later changes have addressed the name mix, but not
everywhere.\n\nModification:\nrename xxHimeraXX classes into
xxChimeraXX.\n\nResult:\ncleaner naming convention\n\nAcked-by:\nTarget:
master\nRequire-book: no\nRequire-notes: no'], u'target_groups': [u'all'],
u'public': [u'True'], u'summary': [u'chimera: fix mix of Himera and Chimera in
favor of the later one']}>,
COOKIES:{'rbsessionid': 'p60cp3lnof2hp9bn82x3tuxkoyvlpgc9'},
META:{'CONTENT_LENGTH': '942',
'CONTENT_TYPE': 'multipart/form-data;
boundary================1694779706458786214==',
'HTTP_ACCEPT_ENCODING': 'identity',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': 'rbsessionid=p60cp3lnof2hp9bn82x3tuxkoyvlpgc9',
'HTTP_HOST': 'rb.dcache.org',
'HTTP_USER_AGENT': "b'RBTools/2.0'",
'HTTP_X_FORWARDED_FOR': '131.169.254.7',
'HTTP_X_FORWARDED_PROTO': 'https',
'HTTP_X_REAL_IP': '131.169.254.7',
u'LOCAL_SITE': None,
'PATH_INFO': u'/api/review-requests/12894/draft/',
'QUERY_STRING': '',
'REMOTE_ADDR': '10.88.0.1',
'REMOTE_PORT': '11402',
'REQUEST_METHOD': 'PUT',
'REQUEST_URI': '/api/review-requests/12894/draft/',
'SCRIPT_NAME': u'',
'SERVER_NAME': 'rb-pod',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.0',
u'USERNAME': u'tigran',
u'USER_EMAIL': u'[email protected]',
'UWSGI_ROUTER': 'http',
'uwsgi.node': 'rb-pod',
'uwsgi.version': '2.0.15-debian',
'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x7f977ff47780>,
'wsgi.file_wrapper': <built-in function uwsgi_sendfile>,
'wsgi.input': <uwsgi._Input object at 0x7f9772ab82b0>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': u'https',
'wsgi.version': (1, 0)}>
```
------------------------------------------------------------------------------
--
You received this message because you are subscribed to the Google Groups
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/reviewboard-issues/20210303133558.1146.27965%40ip-10-1-54-209.ec2.internal.