mantidproject / mantid

Main repository for Mantid code
https://www.mantidproject.org
GNU General Public License v3.0
209 stars 122 forks source link

EngDiff Fitting all fit error on updating the fit output #34872

Closed DanielMurphy22 closed 1 month ago

DanielMurphy22 commented 1 year ago

Found by myself and Richard: https://github.com/mantidproject/mantid/pull/34776#issuecomment-1335106700 main bug is point 2 in that comment. Point 1 in that comment would also be could to fix but cannot be reliably reproduced.

Describe the bug Running a serial fit can produce outputs which are incorrectly parsed by the fitting data model:

Traceback (most recent call last):
 File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_presenter.py", line 62, in _start_serial_fit
 self.fit_all_started_notifier.notify_subscribers(ws_name_list, do_sequential=False)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 99, in notify_subscribers
 Observable.notify_subscribers(self, *args)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 55, in notify_subscribers
 self.thread_safe_update_call(arg, **kwargs)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\qt\qappthreadcall.py", line 67, in __call__
 return self._callable(*args)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 59, in _notify_subscribers_impl
 observer.update(self, arg, **kwargs)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 91, in update
 self.callback(arg)
 File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\plotting\plot_presenter.py", line 96, in do_fit_all
 self.fit_all_done_notifier.notify_subscribers(fitprop_list)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 99, in notify_subscribers
 Observable.notify_subscribers(self, *args)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 55, in notify_subscribers
 self.thread_safe_update_call(arg, **kwargs)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\qt\qappthreadcall.py", line 67, in __call__
 return self._callable(*args)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 59, in _notify_subscribers_impl
 observer.update(self, arg, **kwargs)
 File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 91, in update
 self.callback(arg)
 File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_presenter.py", line 54, in fit_completed
 self.model.update_fit(fit_props)
 File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_model.py", line 348, in update_fit
 key = '_'.join([fname, params_dict['Name'][irow].split('.')[-1]]) # funcname_param
IndexError: list index out of range

To Reproduce

Expected behavior Outputs are parsed correctly and any problems with the outputs are handled gracefully.

Platform/Version (please complete the following information):

warunawickramasingha commented 1 month ago

This issue is no longer re-creatable and should have been fixed with the changes done via this PR #36475 and hence closing.