------------------------------------------------------------------------------
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'tigran.mkrtch...@desy.de',
 '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 reviewboard-issues+unsubscr...@googlegroups.com.
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.

Reply via email to