Hi Hema,

When you upgraded Review Board, did you do a dump and re-import of the
database? Can you walk me through any steps you performed? This sort of
problem is database-level, and should not have happened solely due to an
upgrade.

This may be due to the encoding-related settings on the table. Can you show
me the results of:

    SHOW CREATE TABLE reviews_reviewrequest;
    SHOW CREATE TABLE reviews_reviewrequestdraft;

Christian


On Sun, Jun 17, 2018 at 23:45 Hema <m.hemapr...@gmail.com> wrote:

> Can I get some pointers on this, please?
>
> Regards,
> Hema.
>
>
> On Friday, 15 June 2018 15:51:24 UTC+5:30, Hema wrote:
>>
>> We get the following mysql OperationalError often when there is a special
>> character in the description field of review request.
>>
>>
>> ------------------------------------------------------------------------------------------------------------------------------
>>
>> Traceback (most recent call last):
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/core/handlers/base.py",
>> line 112, in get_response
>>
>>     response = wrapped_callback(request, *callback_args,
>> **callback_kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/views/decorators/cache.py",
>> line 52, in _wrapped_view_func
>>
>>     response = view_func(request, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/views/decorators/vary.py",
>> line 19, in inner_func
>>
>>     response = func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/resources/base.py",
>> line 243, in __call__
>>
>>     request, method, view, api_format=api_format, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/ReviewBoard-3.0.3-py2.7.egg/reviewboard/webapi/base.py",
>> line 338, in call_method_view
>>
>>     request, method, view, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/resources/mixins/api_tokens.py",
>> line 66, in call_method_view
>>
>>     request, method, view, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/resources/mixins/oauth2_tokens.py",
>> line 102, in call_method_view
>>
>>     request, method, view, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/resources/base.py",
>> line 314, in call_method_view
>>
>>     return view(request, *args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/resources/base.py",
>> line 496, in post
>>
>>     return self.create(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 125, in _call
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/ReviewBoard-3.0.3-py2.7.egg/reviewboard/webapi/decorators.py",
>> line 169, in _check
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 125, in _call
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 146, in _checklogin
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 125, in _call
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 125, in _call
>>
>>     return view_func(*args, **kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/webapi/decorators.py",
>> line 319, in _validate
>>
>>     return view_func(*args, **new_kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/ReviewBoard-3.0.3-py2.7.egg/reviewboard/webapi/resources/review_request.py",
>> line 777, in create
>>
>>     review_request.save(update_counts=True)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/ReviewBoard-3.0.3-py2.7.egg/reviewboard/reviews/models/review_request.py",
>> line 805, in save
>>
>>     super(ReviewRequest, self).save(**kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/ReviewBoard-3.0.3-py2.7.egg/reviewboard/reviews/models/base_review_request_details.py",
>> line 547, in save
>>
>>     super(BaseReviewRequestDetails, self).save(**kwargs)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/base.py",
>> line 545, in save
>>
>>     force_update=force_update, update_fields=update_fields)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/base.py",
>> line 573, in save_base
>>
>>     updated = self._save_table(raw, cls, force_insert, force_update,
>> using, update_fields)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/base.py",
>> line 635, in _save_table
>>
>>     forced_update)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Djblets-1.0.3-py2.7.egg/djblets/db/fields.py",
>> line 862, in _model_do_update
>>
>>     base_qs, using, pk_val, values, update_fields, forced_update)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/base.py",
>> line 679, in _do_update
>>
>>     return filtered._update(values) > 0
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/query.py",
>> line 510, in _update
>>
>>     return query.get_compiler(self.db).execute_sql(None)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/sql/compiler.py",
>> line 980, in execute_sql
>>
>>     cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/models/sql/compiler.py",
>> line 786, in execute_sql
>>
>>     cursor.execute(sql, params)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/backends/util.py",
>> line 53, in execute
>>
>>     return self.cursor.execute(sql, params)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/utils.py",
>> line 99, in __exit__
>>
>>     six.reraise(dj_exc_type, dj_exc_value, traceback)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/backends/util.py",
>> line 53, in execute
>>
>>     return self.cursor.execute(sql, params)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg/django/db/backends/mysql/base.py",
>> line 124, in execute
>>
>>     return self.cursor.execute(query, args)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/cursors.py",
>> line 205, in execute
>>
>>     self.errorhandler(self, exc, value)
>>
>>
>>
>>   File
>> "/opt/software/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/connections.py",
>> line 36, in defaulterrorhandler
>>
>>     raise errorclass, errorvalue
>>
>>
>>
>> OperationalError: (1366, "Incorrect string value: '\\x93New-S...' for
>> column 'description' at row 1")
>>
>>
>> ------------------------------------------------------------------------------------------------------------------------------
>>
>>
>> MySQL [ReviewBoard]> show variables like '%colla%'\G
>>
>> *************************** 1. row ***************************
>>
>> Variable_name: collation_connection
>>
>>         Value: utf8_general_ci
>>
>> *************************** 2. row ***************************
>>
>> Variable_name: collation_database
>>
>>         Value: latin1_swedish_ci
>>
>> *************************** 3. row ***************************
>>
>> Variable_name: collation_server
>>
>>         Value: latin1_swedish_ci
>>
>> 3 rows in set (0.00 sec)
>>
>>
>> ------------------------------------------------------------------------------------------------------------------------------
>>
>> MySQL [ReviewBoard]> show variables like '%charac%'\G
>>
>> *************************** 1. row ***************************
>>
>> Variable_name: character_set_client
>>
>>         Value: utf8
>>
>> *************************** 2. row ***************************
>>
>> Variable_name: character_set_connection
>>
>>         Value: utf8
>>
>> *************************** 3. row ***************************
>>
>> Variable_name: character_set_database
>>
>>         Value: latin1
>>
>> *************************** 4. row ***************************
>>
>> Variable_name: character_set_filesystem
>>
>>         Value: binary
>>
>> *************************** 5. row ***************************
>>
>> Variable_name: character_set_results
>>
>>         Value: utf8
>>
>> *************************** 6. row ***************************
>>
>> Variable_name: character_set_server
>>
>>         Value: latin1
>>
>> *************************** 7. row ***************************
>>
>> Variable_name: character_set_system
>>
>>         Value: utf8
>>
>> *************************** 8. row ***************************
>>
>> Variable_name: character_sets_dir
>>
>>         Value: /usr/share/mysql/charsets/
>>
>> 8 rows in set (0.00 sec)
>>
>>
>> ------------------------------------------------------------------------------------------------------------------------------
>>
>>
>> We didn't face this issue in RB2.0. Could you please let us know what's
>> wrong here?
>>
>>
>> Regards,
>>
>> Hema.
>>
> --
> Supercharge your Review Board with Power Pack:
> https://www.reviewboard.org/powerpack/
> Want us to host Review Board for you? Check out RBCommons:
> https://rbcommons.com/
> Happy user? Let us know! https://www.reviewboard.org/users/
> ---
> You received this message because you are subscribed to the Google Groups
> "Review Board Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to reviewboard+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 
-- 
Christian Hammond
President/CEO of Beanbag
Makers of Review Board

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"Review Board Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to