Hi Eric, Hmm, we'll need to look into that. Is there a way you'd be able to send us the diff for that? (I can help you find it.) We will need a copy in order to diagnose this. We can sign an NDA for it.
Christian On Friday, May 13, 2016, eric via reviewboard <[email protected]> wrote: > After I migrated my server to 2.5.4, I'm seeing a weird error. I restarted > both memcached and apache2, and then browse to a specific review request. > > Then I click on the "Diff" tab. (After I turned on DEBUG = True in the > settings_local.py file) I see this instead of diffs. > > Traceback (most recent call last): > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/views.py", > line 275, in get > response = renderer.render_to_response(request) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/renderers.py", > line 56, in render_to_response > return HttpResponse(self.render_to_string(request)) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/renderers.py", > line 74, in render_to_string > large_data=True) > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 295, in cache_memoize > compress_large_data)) > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 249, in cache_memoize_iter > items = items_or_callable() > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 292, in <lambda> > lambda: [lookup_callable()], > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/renderers.py", > line 73, in <lambda> > lambda: self.render_to_string_uncached(request), > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/renderers.py", > line 87, in render_to_string_uncached > request=request) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/diffutils.py", > line 429, in populate_diff_chunks > chunks = list(generator.get_chunks()) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/chunk_generator.py", > line 756, in get_chunks > for chunk in super(DiffChunkGenerator, self).get_chunks(cache_key): > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/chunk_generator.py", > line 107, in get_chunks > large_data=True) > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 295, in cache_memoize > compress_large_data)) > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 249, in cache_memoize_iter > items = items_or_callable() > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/cache/backend.py", > line 292, in <lambda> > lambda: [lookup_callable()], > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/chunk_generator.py", > line 106, in <lambda> > lambda: list(self.get_chunks_uncached()), > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/chunk_generator.py", > line 763, in get_chunks_uncached > new = get_patched_file(old, self.filediff, self.request) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/diffutils.py", > line 230, in get_patched_file > diff = tool.normalize_patch(filediff.diff, filediff.source_file, > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/models.py", > line 218, in _get_diff > self._migrate_diff_data() > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/models.py", > line 421, in _migrate_diff_data > diff_hash_is_new = self._set_diff(self.legacy_diff_hash.binary) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/models.py", > line 225, in _set_diff > RawFileDiffData.objects.get_or_create_from_data(diff) > File > "/usr/lib64/python2.7/site-packages/ReviewBoard-2.5.4-py2.7.egg/reviewboard/diffviewer/managers.py", > line 345, in get_or_create_from_data > 'compression': compression, > File "/usr/lib64/python2.7/site-packages/django/db/models/manager.py", > line 154, in get_or_create > return self.get_queryset().get_or_create(**kwargs) > File "/usr/lib64/python2.7/site-packages/django/db/models/query.py", > line 383, in get_or_create > obj.save(force_insert=True, using=self.db) > File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line > 545, in save > force_update=force_update, update_fields=update_fields) > File "/usr/lib64/python2.7/site-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/lib64/python2.7/site-packages/django/db/models/base.py", line > 654, in _save_table > result = self._do_insert(cls._base_manager, using, fields, update_pk, > raw) > File "/usr/lib64/python2.7/site-packages/django/db/models/base.py", line > 687, in _do_insert > using=using, raw=raw) > File "/usr/lib64/python2.7/site-packages/django/db/models/manager.py", > line 232, in _insert > return insert_query(self.model, objs, fields, **kwargs) > File "/usr/lib64/python2.7/site-packages/django/db/models/query.py", > line 1514, in insert_query > return query.get_compiler(using=using).execute_sql(return_id) > File > "/usr/lib64/python2.7/site-packages/django/db/models/sql/compiler.py", line > 903, in execute_sql > cursor.execute(sql, params) > File > "/usr/lib64/python2.7/site-packages/Djblets-0.9.3-py2.7.egg/djblets/log/middleware.py", > line 32, in execute > return self.cursor.execute(sql, params) > File > "/usr/lib64/python2.7/site-packages/django/db/backends/mysql/base.py", line > 124, in execute > return self.cursor.execute(query, args) > File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 207, > in execute > if not self._defer_warnings: self._warning_check() > File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 117, > in _warning_check > warn(w[-1], self.Warning, 3) > Warning: Invalid utf8 character string: '890600' > > > Note that if I set DEBUG = False, then I see the diffs in the browser, but > I still see warnings in the log file. I'm nervous that migrating my > production system forward to 2.5.4 will corrupt data. So now I'm holding > off. > > Looking back through the stack trace, I see there's some logic in there > about "_migrate_diff_data" - code which didn't exist in 2.0.X. > > I suspect this is a manifestation of this bug: > https://hellosplat.com/s/beanbag/tickets/4007/ > > What can I do? > > Eric. > > > -- > 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 > "reviewboard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <javascript:_e(%7B%7D,'cvml','reviewboard%[email protected]');> > . > For more options, visit https://groups.google.com/d/optout. > -- -- Christian Hammond President/CEO of Beanbag <https://www.beanbaginc.com/> Makers of Review Board <https://www.reviewboard.org/> -- 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 "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
