Ticket #6886 (closed: fixed)
Crash if replacing a TableWorkspace with one having more columns
Reported by: | Russell Taylor | Owned by: | Roman Tolchenov |
---|---|---|---|
Priority: | critical | Milestone: | Release 2.6 |
Component: | MantidPlot | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Karl Palmen |
Description
This crash occurs if you are viewing the table at the point of replacement.
Steps to reproduce:
t = CreateEmptyTableWorkspace() t.addColumn('int','a') t.addRow([0])
Double-click on the workspace at this point to bring it up (showing just a single cell)
t.addColumn('int','b') t = CloneWorkspace(t)
The crash in this case is at line 874 of Table.cpp because you try to go past the end of the col_label container. Stack trace:
#4 0x00000030a4e6a075 in qFatal(char const*, ...) () from /usr/lib64/libQtCore.so.4 #5 0x00000000006dcc3b in QList<QString>::operator[] (this=0x3193528, i=1) at /usr/include/QtCore/qlist.h:447 #6 0x000000000090f0a3 in Table::setColName (this=0x3193480, col=1, text=..., enumerateRight=false) at /home/tr9/Mantid/Code/Mantid/MantidPlot/src/Table.cpp:874 #7 0x00000000009f7d4d in MantidTable::fillTable (this=0x3193480) at /home/tr9/Mantid/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp:72 #8 0x0000000000ae2f05 in MantidTable::qt_metacall (this=0x3193480, _c= QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffcdb0) at /home/tr9/Mantid/Code/debug/MantidPlot/src/Mantid/moc_MantidTable.cxx:90 #9 0x00000030a4f6a7af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4 #10 0x0000000000ae2f73 in MantidTable::needToUpdate (this=0x3193480) at /home/tr9/Mantid/Code/debug/MantidPlot/src/Mantid/moc_MantidTable.cxx:108
In a more complicated example (the output from SumEventsByLogValue), the failure point is slightly different:
#4 0x00000030a4e6a075 in qFatal(char const*, ...) () from /usr/lib64/libQtCore.so.4 #5 0x00000000006dcca9 in QList<int>::operator[] (this=0x40a5838, i=17) at /usr/include/QtCore/qlist.h:447 #6 0x000000000091ab2a in Table::setHeaderColType (this=0x40a5780) at /home/tr9/Mantid/Code/Mantid/MantidPlot/src/Table.cpp:2219 #7 0x000000000090f7d1 in Table::setColName (this=0x40a5780, col=4, text=..., enumerateRight=false) at /home/tr9/Mantid/Code/Mantid/MantidPlot/src/Table.cpp:910 #8 0x00000000009f7d4d in MantidTable::fillTable (this=0x40a5780) at /home/tr9/Mantid/Code/Mantid/MantidPlot/src/Mantid/MantidTable.cpp:72
Change History
comment:2 Changed 7 years ago by Nick Draper
- Owner set to Roman Tolchenov
- Status changed from new to assigned
comment:4 Changed 7 years ago by Roman Tolchenov
Changed setNumCols to resizeCols in MantidTable. Re #6886.
Changeset: ba5ad709cb6d83f412d22753e30cd2ab7c3ab72b
comment:5 Changed 7 years ago by Roman Tolchenov
Changed setNumCols to resizeCols in MantidTable. Re #6886.
Changeset: ba5ad709cb6d83f412d22753e30cd2ab7c3ab72b
comment:6 Changed 7 years ago by Roman Tolchenov
- Status changed from accepted to verify
- Resolution set to fixed
comment:7 Changed 7 years ago by Karl Palmen
- Status changed from verify to verifying
- Tester set to Karl Palmen
comment:8 Changed 7 years ago by Karl Palmen
- Status changed from verifying to closed
Also successful with a larger TableWorkspace created by part of a tube calibration script.
comment:9 Changed 7 years ago by Roman Tolchenov
Changed setNumCols to resizeCols in MantidTable. Re #6886.
Changeset: ba5ad709cb6d83f412d22753e30cd2ab7c3ab72b
comment:10 Changed 7 years ago by Roman Tolchenov
Changed setNumCols to resizeCols in MantidTable. Re #6886.
Changeset: ba5ad709cb6d83f412d22753e30cd2ab7c3ab72b
comment:11 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 7732
Moved to r2.6 at the end of r2.5