Hi Christian,

Here you go...

ERROR:root:Error updating reviews using default
Traceback (most recent call last):
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 188, in handle_label
    self.update_backend(label, using)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 233, in update_backend
    do_update(backend, index, qs, start, end, total, 
verbosity=self.verbosity, commit=self.commit)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 96, in do_update
    backend.update(index, current_qs, commit=commit)
  File 
"/usr/lib/python2.7/site-packages/haystack/backends/whoosh_backend.py", 
line 196, in update
    doc = index.full_prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 212, in 
full_prepare
    self.prepared_data = self.prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 203, in 
prepare
    self.prepared_data[field.index_fieldname] = field.prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 166, in 
prepare
    return self.convert(super(CharField, self).prepare(obj))
  File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 90, in 
prepare
    getattr(current_object, attr)
  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'")
Traceback (most recent call last):
  File "/usr/bin/rb-site", line 9, in <module>
    load_entry_point('ReviewBoard==2.5.16', 'console_scripts', 'rb-site')()
  File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
line 1964, in main
    command.run()
  File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
line 1884, in run
    site.run_manage_command(args[0], args[1:])
  File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
line 712, in run_manage_command
    execute_from_command_line([__file__, cmd] + params)
  File 
"/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
399, in execute_from_command_line
    utility.execute()
  File 
"/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
line 285, in execute
    output = self.handle(*args, **options)
  File 
"/usr/lib/python2.7/site-packages/reviewboard/reviews/management/commands/index.py",
 
line 19, in handle
    call_command('rebuild_index', interactive=False)
  File 
"/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
159, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
line 285, in execute
    output = self.handle(*args, **options)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py",
 
line 26, in handle
    call_command('update_index', **options)
  File 
"/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
159, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
line 285, in execute
    output = self.handle(*args, **options)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 183, in handle
    return super(Command, self).handle(*items, **options)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
line 385, in handle
    label_output = self.handle_label(label, **options)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 188, in handle_label
    self.update_backend(label, using)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 233, in update_backend
    do_update(backend, index, qs, start, end, total, 
verbosity=self.verbosity, commit=self.commit)
  File 
"/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
 
line 96, in do_update
    backend.update(index, current_qs, commit=commit)
  File 
"/usr/lib/python2.7/site-packages/haystack/backends/whoosh_backend.py", 
line 196, in update
    doc = index.full_prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 212, in 
full_prepare
    self.prepared_data = self.prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 203, in 
prepare
    self.prepared_data[field.index_fieldname] = field.prepare(obj)
  File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 166, in 
prepare
    return self.convert(super(CharField, self).prepare(obj))
  File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 90, in 
prepare
    getattr(current_object, attr)
  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
django.db.utils.IntegrityError: (1062, "Duplicate entry '1701871-1' for key 
'reviews_reviewrequest_b8c24015'")


The error looks familiar - we had some issue sin the past with duplicate 
entries.
The index never used to fail for them though...

Thanks
Rob 



On Monday, 16 October 2017 10:38:52 UTC+1, Christian Hammond wrote:
>
> Hi Rob,
>
> I think what's happening is that there's an exception being raised the 
> first time this is accessed that is resulting in hasattr failing. One more 
> check (I'm about to go to bed so I'll have to follow up in the morning).
>
> Before the "has_attr = ..." line, add:
>
>     if attr == 'commit':
>         getattr(current_object, attr)
>
> I imagine that's going to result in a new crash, which is good. Show me 
> what that says.
>
> Christian
>
> On Mon, Oct 16, 2017 at 2:09 AM, 'Rob Backhurst' via reviewboard <
> revie...@googlegroups.com <javascript:>> wrote:
>
>> Hi Chris,
>>
>> Certainly seems a bit weird - I appreciate all your efforts so far!.
>> See the out put from the latest index below. If this doesn't tell you 
>> anything useful, perhaps we can try (on our test system) removing the 
>> review/record that seems to be causing this and re-run the index?
>>
>>
>> ERROR:root:Error updating reviews using default
>> Traceback (most recent call last):
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 188, in handle_label
>>     self.update_backend(label, using)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 233, in update_backend
>>     do_update(backend, index, qs, start, end, total, 
>> verbosity=self.verbosity, commit=self.commit)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 96, in do_update
>>     backend.update(index, current_qs, commit=commit)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/backends/whoosh_backend.py", 
>> line 196, in update
>>     doc = index.full_prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 212, 
>> in full_prepare
>>     self.prepared_data = self.prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 203, 
>> in prepare
>>     self.prepared_data[field.index_fieldname] = field.prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 164, 
>> in prepare
>>     return self.convert(super(CharField, self).prepare(obj))
>>   File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 92, in 
>> prepare
>>     raise SearchFieldError("The model '%s' ('%s' -- %s.%s at %s -- %s:%s) 
>> does not have a model_attr '%s' (%s -- %s)." % (obj.__class__.__name__, 
>> current_object.pk, current_object.__class__.__module__, 
>> current_object.__class__.__name__, inspect.getfile(obj.__class__), id(obj), 
>> id(current_object), attr, hasattr(current_object, attr), has_attr))
>> SearchFieldError: The model 'ReviewRequest' ('27393' -- 
>> reviewboard.reviews.models.review_request.ReviewRequest at 
>> /usr/lib/python2.7/site-packages/reviewboard/reviews/models/review_request.pyc
>>  
>> -- 231638480:231638480) does not have a model_attr 'commit' (True -- False).
>> Traceback (most recent call last):
>>   File "/usr/bin/rb-site", line 9, in <module>
>>     load_entry_point('ReviewBoard==2.5.16', 'console_scripts', 
>> 'rb-site')()
>>   File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
>> line 1964, in main
>>     command.run()
>>   File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
>> line 1884, in run
>>     site.run_manage_command(args[0], args[1:])
>>   File "/usr/lib/python2.7/site-packages/reviewboard/cmdline/rbsite.py", 
>> line 712, in run_manage_command
>>     execute_from_command_line([__file__, cmd] + params)
>>   File 
>> "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
>> 399, in execute_from_command_line
>>     utility.execute()
>>   File 
>> "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
>> 392, in execute
>>     self.fetch_command(subcommand).run_from_argv(self.argv)
>>   File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
>> line 242, in run_from_argv
>>     self.execute(*args, **options.__dict__)
>>   File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
>> line 285, in execute
>>     output = self.handle(*args, **options)
>>   File 
>> "/usr/lib/python2.7/site-packages/reviewboard/reviews/management/commands/index.py",
>>  
>> line 19, in handle
>>     call_command('rebuild_index', interactive=False)
>>   File 
>> "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
>> 159, in call_command
>>     return klass.execute(*args, **defaults)
>>   File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
>> line 285, in execute
>>     output = self.handle(*args, **options)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py",
>>  
>> line 26, in handle
>>     call_command('update_index', **options)
>>   File 
>> "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 
>> 159, in call_command
>>     return klass.execute(*args, **defaults)
>>   File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
>> line 285, in execute
>>     output = self.handle(*args, **options)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 183, in handle
>>     return super(Command, self).handle(*items, **options)
>>   File "/usr/lib/python2.7/site-packages/django/core/management/base.py", 
>> line 385, in handle
>>     label_output = self.handle_label(label, **options)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 188, in handle_label
>>     self.update_backend(label, using)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 233, in update_backend
>>     do_update(backend, index, qs, start, end, total, 
>> verbosity=self.verbosity, commit=self.commit)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/management/commands/update_index.py",
>>  
>> line 96, in do_update
>>     backend.update(index, current_qs, commit=commit)
>>   File 
>> "/usr/lib/python2.7/site-packages/haystack/backends/whoosh_backend.py", 
>> line 196, in update
>>     doc = index.full_prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 212, 
>> in full_prepare
>>     self.prepared_data = self.prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/indexes.py", line 203, 
>> in prepare
>>     self.prepared_data[field.index_fieldname] = field.prepare(obj)
>>   File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 164, 
>> in prepare
>>     return self.convert(super(CharField, self).prepare(obj))
>>   File "/usr/lib/python2.7/site-packages/haystack/fields.py", line 92, in 
>> prepare
>>     raise SearchFieldError("The model '%s' ('%s' -- %s.%s at %s -- %s:%s) 
>> does not have a model_attr '%s' (%s -- %s)." % (obj.__class__.__name__, 
>> current_object.pk, current_object.__class__.__module__, 
>> current_object.__class__.__name__, inspect.getfile(obj.__class__), id(obj), 
>> id(current_object), attr, hasattr(current_object, attr), has_attr))
>> haystack.exceptions.SearchFieldError: The model 'ReviewRequest' ('27393' 
>> -- reviewboard.reviews.models.review_request.ReviewRequest at 
>> /usr/lib/python2.7/site-packages/reviewboard/reviews/models/review_request.pyc
>>  
>> -- 231638480:231638480) does not have a model_attr 'commit' (True -- False).
>>
>>
>> Thaks
>> Rob
>>
>>
>>
>> On Monday, 16 October 2017 06:31:25 UTC+1, Christian Hammond wrote:
>>>
>>> Hi Rob,
>>>
>>> At this point, "Gremlins" appear to be the best answer from what I'm 
>>> able to see right now. The output in that error is directly contradicting 
>>> the conditional that allows the error to be shown, so something really 
>>> bizarre is happening that absolutely should not be able to happen. It's not 
>>> normal.
>>>
>>> There's one last thing I want to see... I don't think it's going to give 
>>> me any answers directly, but let's see where this goes.
>>>
>>> Change the code to:
>>>
>>>     import inspect
>>>     has_attr = hasattr(current_object, attr)
>>>     print '%r (%s): %s' % (current_object.__class__, id(current_object), 
>>> has_attr)
>>>     if not has_attr:
>>>         raise SearchFieldError("The model '%s' ('%s' -- %s.%s at %s -- 
>>> %s:%s) does not have a model_attr '%s' (%s -- %s)." % 
>>> (obj.__class__.__name__, current_object.pk, 
>>> current_object.__class__.__module__, 
>>> current_object.__class__.__name__, inspect.getfile(obj.__class__), 
>>> id(obj), id(current_object), attr, hasattr(current_object, attr), has_attr))
>>>
>>> Christian
>>>
>>> On Fri, Oct 13, 2017 at 2:41 AM, 'Rob Backhurst' via reviewboard <
>>> revie...@googlegroups.com> wrote:
>>>
>>>> No probs - where do we go from here?
>>>>
>>>> Thanks
>>>> Rob
>>>>
>>>> On Thursday, 12 October 2017 19:58:13 UTC+1, Stephen Gallagher wrote:
>>>>>
>>>>> Ok, I just wanted to rule out an easy solution. 
>>>>> On Thu, Oct 12, 2017 at 5:47 AM 'Rob Backhurst' via reviewboard <
>>>>> revie...@googlegroups.com> wrote:
>>>>>
>>>>>> Just to add, the haystack version shown in the reviewboard shell is 
>>>>>> looking better now though.
>>>>>>
>>>>>> >>> import reviewboard
>>>>>> >>> print reviewboard.VERSION
>>>>>> (2, 5, 16, 0, u'final', 0, True)
>>>>>> >>> print reviewboard.__file__
>>>>>> /usr/lib/python2.7/site-packages/reviewboard/__init__.pyc
>>>>>> >>> import haystack
>>>>>> >>> print haystack.__version__
>>>>>> (2, 4, 1)
>>>>>> >>> print haystack.__file__
>>>>>> /usr/lib/python2.7/site-packages/haystack/__init__.pyc
>>>>>>
>>>>>>
>>>>>> Thanks
>>>>>> Rob
>>>>>>
>>>>>> On Thursday, 12 October 2017 10:41:59 UTC+1, Rob Backhurst wrote:
>>>>>>>
>>>>>>> Hi Stephen,
>>>>>>>
>>>>>>> I've installed that on our test system and re-run the index - 
>>>>>>> unfortunately the same problem.
>>>>>>>
>>>>>>> Thanks
>>>>>>> Rob
>>>>>>>
>>>>>>> On Wednesday, 11 October 2017 19:21:22 UTC+1, Stephen Gallagher 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 11, 2017 at 7:40 AM 'Rob Backhurst' via reviewboard <
>>>>>>>> revie...@googlegroups.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Christian,
>>>>>>>>>
>>>>>>>>> Ok, lets hope this can tell you something useful...
>>>>>>>>>
>>>>>>>>> <snip>
>>>>>>>>
>>>>>>>> Rob, I just packaged up Haystack 2.4.1 (and did rudimentary testing 
>>>>>>>> to see that ReviewBoard still works). Would you mind installing the 
>>>>>>>> RPM at 
>>>>>>>> https://bodhi.fedoraproject.org/updates/python-django-haystack-2.4.1-1.el7
>>>>>>>>  , 
>>>>>>>> restarting httpd and seeing if that fixes things?
>>>>>>>>
>>>>>>>> I'd like to see if this issue might just already be fixed in the 
>>>>>>>> newer release.
>>>>>>>>
>>>>>>> -- 
>>>>>> 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...@googlegroups.com.
>>>>>> 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 reviewboard...@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...@googlegroups.com <javascript:>.
>> 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