Hi Rob,

It looks like you have multiple review requests with the same commit
ID/change number in the database. We have unique constraints that should
prevent this, but the constraint may have been added after the review
request was created.

What you can do is unset the field (it's going to be commit_id or
changenum) on this entry in the reviews_reviewrequest table. How
comfortable are you with SQL?

Christian

-- 
Christian Hammond
President/CEO of Beanbag <https://www.beanbaginc.com/>
Makers of Review Board <https://www.reviewboard.org/>

On Fri, May 26, 2017 at 1:24 AM, 'Rob Backhurst' via reviewboard <
[email protected]> wrote:

> Hi,
>
> We have recently upgraded our ReviewBoard from version 1.7.22 to 2.5.10 -
> as well as also upgrading from RHEL 6.x to CentOS 7.3.1611.
> Since then we have a review that cannot be interacted with...can't post a
> new review or comment, adjust existing comments etc - or even delete the
> review.
> We get a "HTTP 500 INTERNAL SERVER ERROR" from the browser and the
> following error in the ReviewBoard logs:
>
> --------------------------------
>
> None - admin - /api/review-requests/27393/ - Exception thrown for user admin 
> at 
> http://reviews/api/review-requests/27393/?api_format=json&force-text-type=html&include-text-types=raw
>
> (1062, "Duplicate entry '1701871-1' for key 'reviews_reviewrequest_b8c24015'")
> Traceback (most recent call last):
>   File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 
> 112, in get_response
>     response = wrapped_callback(request, *callback_args, **callback_kwargs)
>   File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", 
> line 52, in _wrapped_view_func
>     response = view_func(request, *args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/django/views/decorators/vary.py", 
> line 19, in inner_func
>     response = func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources/base.py", 
> line 196, in __call__
>     request, method, view, api_format=api_format, *args, **kwargs)
>   File 
> "/usr/lib/python2.7/site-packages/djblets/webapi/resources/mixins/api_tokens.py",
>  line 65, in call_method_view
>     return view(request, *args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/util/decorators.py", line 
> 75, in _call
>     f = augmented_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 
> 122, in _call
>     return view_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/reviewboard/webapi/decorators.py", 
> line 36, in _check
>     return view_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 
> 122, in _call
>     return view_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/reviewboard/webapi/decorators.py", 
> line 139, in _check
>     return view_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/util/decorators.py", line 
> 75, in _call
>     f = augmented_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 
> 122, in _call
>     return view_func(*args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources/base.py", 
> line 488, in get
>     etag = self.get_etag(request, obj, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources/base.py", 
> line 1134, in get_etag
>     encode_etag=False, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources/base.py", 
> line 1162, in generate_etag
>     etag = repr(self.serialize_object(obj, request=request, **kwargs))
>   File "/usr/lib/python2.7/site-packages/reviewboard/webapi/mixins.py", line 
> 60, in serialize_object
>     obj, *args, **kwargs)
>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources/base.py", 
> line 774, in serialize_object
>     value = serialize_func(obj, request=request)
>   File 
> "/usr/lib/python2.7/site-packages/reviewboard/webapi/resources/review_request.py",
>  line 561, in serialize_commit_id_field
>     return obj.commit
>   File 
> "/usr/lib/python2.7/site-packages/reviewboard/reviews/models/review_request.py",
>  line 273, in get_commit
>     commit_id=six.text_type(self.changenum))
>   File "/usr/lib/python2.7/site-packages/django/db/models/query.py", line 
> 493, in update
>     rows = query.get_compiler(self.db).execute_sql(None)
>   File "/usr/lib/python2.7/site-packages/django/db/models/sql/compiler.py", 
> line 980, in execute_sql
>     cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
>   File "/usr/lib/python2.7/site-packages/django/db/models/sql/compiler.py", 
> line 786, in execute_sql
>     cursor.execute(sql, params)
>   File "/usr/lib/python2.7/site-packages/django/db/backends/util.py", line 
> 53, in execute
>     return self.cursor.execute(sql, params)
>   File "/usr/lib/python2.7/site-packages/django/db/utils.py", line 99, in 
> __exit__
>     six.reraise(dj_exc_type, dj_exc_value, traceback)
>   File "/usr/lib/python2.7/site-packages/django/db/backends/util.py", line 
> 53, in execute
>     return self.cursor.execute(sql, params)
>   File "/usr/lib/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 205, in 
> execute
>     self.errorhandler(self, exc, value)
>   File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, 
> in defaulterrorhandler
>     raise errorclass, errorvalue
> IntegrityError: (1062, "Duplicate entry '1701871-1' for key 
> 'reviews_reviewrequest_b8c24015'")
>
>
> --------------------------------
>
>
> I've seen another similar post on this forum but no resolution.  
> (https://groups.google.com/forum/#!topic/reviewboard/7T9oAFHuLSU)
>
> Is there anything we can do here?
>
>
> Thanks
>
> Rob
>
>
> --
> 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.
>

-- 
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.

Reply via email to