Ticket #7968 (closed: fixed)
Crash when filtering time-series logs with single value
| Reported by: | Nick Draper | Owned by: | Martyn Gigg | 
|---|---|---|---|
| Priority: | critical | Milestone: | Release 3.0 | 
| Component: | Framework | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Tester: | Peter Parker | 
Description
The following script causes a complete crash of Mantid 2.6.1 on windows 7 64
It looks like another GUI race condition problem
It basically means I can’t run a script without deleteing existing named workspaces
Rob
import offspec as nr
for i in range(23750,23753):
                binning=["2.0","0.1","14.0","2"]
                nr.nrSESANSP0Fn(str(i),str(i),4,4,"2","1",binning,diagnostics=1)
for i in range(23750,23753):
                binning=["2.0","0.1","14.0","2"]
                nr.nrSESANSP0Fn(str(i),str(i),4,4,"2","1",binning,diagnostics=1)
    Change History
comment:2 Changed 7 years ago by Martyn Gigg
- Status changed from new to verify
 - Resolution set to invalid
 
This has been fixed by #7708.
comment:3 Changed 7 years ago by Nick Draper
- Status changed from verify to verifying
 - Tester set to Nick Draper
 
comment:4 Changed 7 years ago by Nick Draper
- Status changed from verifying to reopened
 - Resolution invalid deleted
 
This fails with a debug assertion, the exception was a vector subscript out of range while filtering the sample logs
comment:5 Changed 7 years ago by Martyn Gigg
- Summary changed from race condition critical crash to Crash when filtering time-series logs with single value
 
Changing summary to something more suitable to the problem
comment:6 Changed 7 years ago by Martyn Gigg
- Status changed from reopened to inprogress
 
This can be reproduced by simply trying to load OFFSPEC000023750.nxs
There is an out-of-bounds access in TimeSeriesProperty::filterWith at line 1520 that assumes the log has at least 2 values.
comment:7 Changed 7 years ago by Martyn Gigg
This has also shown a sporadic problem with WorkspaceGroup::workspaceReplaceHandle
I had a single crash when it was trying to enable ADS notifications on the last line of the function. The disable/enable should not be necessary as there is a mutex held meaning that notifications from other threads will just block until release.
comment:8 Changed 7 years ago by Martyn Gigg
Protect against single-valued time series/filters when filtering logs.
Refs #7968
Changeset: fd1f48688a1eadaa1cd3d7828e9ca11a7c63643c
comment:9 Changed 7 years ago by Martyn Gigg
Remove unnecessary enable/disable of ADS observers in WorkspaceGroup
The mutex lock will already deal with queuing issues. Refs #7968
Changeset: 3dfd7ebcaaabee29f47238ca0160d5ae2ff97efd
comment:10 Changed 7 years ago by Martyn Gigg
- Status changed from inprogress to verify
 - Resolution set to fixed
 
Branch: bugfix/7968_crash_filtering_single_value_time_series
Tester: Ideally this could be tested on windows in debug mode. Before the fixes if you try to load OFFSPEC000023750.nxs, which is in the ISIS archive at ndxoffspec/Instrument/data/cycle_13_3, then a debug assertion about an out of bounds error would fail.
Assuming that passes then also try and run the script in the description too.
comment:11 Changed 7 years ago by Wenduo Zhou
- Status changed from verify to verifying
 - Tester changed from Nick Draper to Wenduo Zhou
 
comment:12 Changed 7 years ago by Wenduo Zhou
- Status changed from verifying to verify
 - Tester Wenduo Zhou deleted
 
comment:13 Changed 7 years ago by Peter Parker
- Status changed from verify to verifying
 - Tester set to Peter Parker
 
comment:14 Changed 7 years ago by Peter Parker
- Status changed from verifying to closed
 
Merge remote-tracking branch 'origin/bugfix/7968_crash_filtering_single_value_time_series'
Full changeset: bc89835c699306696b5bda12e95b2306d927667a
comment:15 Changed 7 years ago by Peter Parker
Tested on Windows 7, in Debug mode.
- I was able to reproduce the failed debug assertion before the changes.
 - After the fixes, OFFSPEC000023750.nxs loaded fine.
 - I retrieved offspec.py from the script repo and the script in the description ran without any errors.
 - The unit test covers the previously problematic single-valued filters.
 
comment:16 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 8813
