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 <reviewboard@googlegroups.com>
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 reviewboard+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','reviewboard%2bunsubscr...@googlegroups.com');>
> .
> 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 reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to