MantisBT - VTK | ||||||||||
| View Issue Details | ||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||||
| 0015365 | VTK | (No Category) | public | 2015-03-09 13:49 | 2016-01-14 13:10 | |||||
| Reporter | David Gobbi | |||||||||
| Assigned To | Cory Quammen | |||||||||
| Priority | high | Severity | crash | Reproducibility | have not tried | |||||
| Status | closed | Resolution | fixed | |||||||
| Platform | OS | OS Version | ||||||||
| Product Version | 6.2.0 | |||||||||
| Target Version | Fixed in Version | 6.2.1 | ||||||||
| Project | TBD | |||||||||
| Type | crash | |||||||||
| Summary | 0015365: Crash in vtkLookupTableMapData if called from multiple threads | |||||||||
| Description | This morning I saw a crash in the following recently-added vtkLookupTable code, when using the lookup table via vtkImageMapToColors on a multi-CPU workstation. By adding print statements, I saw that vtkLookupTableMapData() was being called from multiple threads, which were simultaneously calling the Resize() function. It looks like a mutex will be needed in order to make the code thread-safe. // Resize the internal table to hold the special colors at the // end. When this function is called repeatedly with the same size // lookup table, memory reallocation will be done only one the first // call if at all. vtkUnsignedCharArray* lookupTable = self->GetTable(); vtkIdType numberOfColors = lookupTable->GetNumberOfTuples(); vtkIdType neededSize = (numberOfColors + vtkLookupTable::NUMBER_OF_SPECIAL_COLORS) * lookupTable->GetNumberOfComponents(); if (lookupTable->GetSize() < neededSize) { lookupTable->Resize(numberOfColors + vtkLookupTable::NUMBER_OF_SPECIAL_COLORS); } | |||||||||
| Steps To Reproduce | ||||||||||
| Additional Information | ||||||||||
| Tags | No tags attached. | |||||||||
| Relationships |
| |||||||||
| Attached Files | ||||||||||
| Issue History | ||||||||||
| Date Modified | Username | Field | Change | |||||||
| 2015-03-09 13:49 | David Gobbi | New Issue | ||||||||
| 2015-03-09 13:49 | David Gobbi | Assigned To | => Cory Quammen | |||||||
| 2015-03-13 09:20 | Cory Quammen | Priority | normal => high | |||||||
| 2015-03-13 09:20 | Cory Quammen | Severity | minor => crash | |||||||
| 2015-03-15 00:39 | Cory Quammen | Note Added: 0034306 | ||||||||
| 2015-03-15 00:39 | Cory Quammen | Status | backlog => active development | |||||||
| 2015-03-16 14:32 | Cory Quammen | Status | active development => gerrit review | |||||||
| 2015-03-25 11:31 | Cory Quammen | Note Added: 0034326 | ||||||||
| 2015-04-16 22:05 | Cory Quammen | Note Added: 0034364 | ||||||||
| 2015-04-16 22:05 | Cory Quammen | Status | gerrit review => closed | |||||||
| 2015-04-16 22:05 | Cory Quammen | Resolution | open => fixed | |||||||
| 2015-04-16 22:05 | Cory Quammen | Fixed in Version | => 6.2.1 | |||||||
| 2016-01-14 13:10 | David Gobbi | Relationship added | related to 0015903 | |||||||
| Notes | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||