Ticket #5584 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Eliminate data race conditions found by helgrind

Reported by: Martyn Gigg Owned by: Martyn Gigg
Priority: major Milestone: Release 2.2
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Russell Taylor

Description


Change History

comment:1 Changed 8 years ago by Martyn Gigg

The UnitFactory no longer caches an object for each unit. Refs #5584

Updating the map of objects was not thread-safe and the units now have state meaning that it is best to have a new object for each create call.

Changeset: cb846171f4bbc5c264397af5794a1656c344e1a7

comment:2 Changed 8 years ago by Martyn Gigg

Fix algorithms comparing for ptr indentity. Refs #5584

Changeset: 31aa681d1dfd998665f9a6210a64d972b96a507e

comment:3 Changed 8 years ago by Martyn Gigg

Fix race condition in Unit.cpp Refs #5584

The static quick conversion map mutated within a parallel loop, see AnvredCorrection, so it needs to be protected by a critical block

Changeset: ac5d62ce9eed091313374722281d0ac251996525

comment:4 Changed 8 years ago by Martyn Gigg

Possibly help memory allocation on Win32. Refs #5584

Changeset: 4f30e1e55a9016ae12af0f41d8ca42d181262491

comment:5 Changed 8 years ago by Martyn Gigg

Pure formatting changes before actual updates. Refs #5584

Changeset: 798951a8f389a8f1dfb52cd1638e885283e55120

comment:6 Changed 8 years ago by Martyn Gigg

Remove a race condition with MuonRemoveExpDecay. Refs #5584

Changeset: f86d2a0ca7435b75838e8a260191845573b29a95

comment:7 Changed 8 years ago by Martyn Gigg

The UnitFactory no longer caches an object for each unit. Refs #5584

Updating the map of objects was not thread-safe and the units now have state meaning that it is best to have a new object for each create call.

Changeset: cb846171f4bbc5c264397af5794a1656c344e1a7

comment:8 Changed 8 years ago by Martyn Gigg

Fix algorithms comparing for ptr indentity. Refs #5584

Changeset: 31aa681d1dfd998665f9a6210a64d972b96a507e

comment:9 Changed 8 years ago by Martyn Gigg

Fix race condition in Unit.cpp Refs #5584

The static quick conversion map mutated within a parallel loop, see AnvredCorrection, so it needs to be protected by a critical block

Changeset: ac5d62ce9eed091313374722281d0ac251996525

comment:10 Changed 8 years ago by Martyn Gigg

Possibly help memory allocation on Win32. Refs #5584

Changeset: 4f30e1e55a9016ae12af0f41d8ca42d181262491

comment:11 Changed 8 years ago by Martyn Gigg

Pure formatting changes before actual updates. Refs #5584

Changeset: 798951a8f389a8f1dfb52cd1638e885283e55120

comment:12 Changed 8 years ago by Martyn Gigg

Remove a race condition with MuonRemoveExpDecay. Refs #5584

Changeset: f86d2a0ca7435b75838e8a260191845573b29a95

comment:13 Changed 8 years ago by Martyn Gigg

  • Status changed from new to accepted

comment:14 Changed 8 years ago by Martyn Gigg

  • Status changed from accepted to verify
  • Resolution set to fixed

comment:15 Changed 8 years ago by Martyn Gigg

I'm sure they are not all gone but fewer system tests seem to randomly fail now, most notably the Diffraction_Workflow_Test.py hasn't failed since these things were fixed.

comment:16 Changed 8 years ago by Russell Taylor

  • Status changed from verify to verifying
  • Tester set to Russell Taylor

comment:17 Changed 8 years ago by Russell Taylor

Re #5584. Fix another place that's comparing unit pointers.

Changeset: 893894beabee4b9160f3b7d9e78d912d13cebf2e

comment:18 Changed 8 years ago by Russell Taylor

  • Status changed from verifying to closed

Looks good. Found a couple more places that were testing unit equality by pointer. Fixed one. The other, in SplineBackgroundTest highlights an issue with copying Axis objects because it passes when it might be expected not to. I made a note in #3775.

comment:19 Changed 8 years ago by Russell Taylor

Re #5584. Fix another place that's comparing unit pointers.

Changeset: 893894beabee4b9160f3b7d9e78d912d13cebf2e

comment:20 Changed 8 years ago by Russell Taylor

Re #5584. Fix another place that's comparing unit pointers.

Changeset: 893894beabee4b9160f3b7d9e78d912d13cebf2e

comment:21 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 6430

Note: See TracTickets for help on using tickets.