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].
For more options, visit https://groups.google.com/d/optout.