Ticket #2239 (closed: fixed)
Progress reporting doesn't work well with the Load() algorithm
Reported by: | Steve Williams | Owned by: | Janik Zikovsky |
---|---|---|---|
Priority: | major | Milestone: | Iteration 30 |
Component: | Mantid | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Roman Tolchenov |
Description
This makes it impossible to cancel a Load operation in progress
Change History
comment:1 Changed 10 years ago by Nick Draper
- Status changed from new to accepted
- Owner set to Nick Draper
- Priority changed from minor to major
comment:2 Changed 10 years ago by Nick Draper
This is more important as we want the load algorithm to be widely used, and due to the size of some files Load will probably be the most cancelled algorithm ever.
comment:3 Changed 10 years ago by Nick Draper
This change is being implemented as a general solution for all algorithms.
All algorithms will:
- maintain a vector of weak pointers to any subalgorithms they create. Weak pointers will not prevent the algorithms from being destructed.
- On receiving a cancel command will pass it on to any valid sub algorithms.
- delete the list of weak pointers when the algorithm is destroyed. As they are weak pointers they have no effect of the lifetime of and subalgorithms.
comment:4 Changed 10 years ago by Nick Draper
Changes to Algorithm to allow subAlgorithms to be cancelled.
Now algorithms: Maintain a vector of weak pointers to any subalgorithms they create. Weak pointers will not prevent the algorithms from being destructed. On receiving a cancel command will pass it on to any valid sub algorithms. Delete the list of weak pointers when the algorithm is destroyed. As they are weak pointers they have no effect of the lifetime of and subalgorithms.
comment:5 Changed 10 years ago by Nick Draper
- Status changed from accepted to verify
- Resolution set to fixed
comment:6 Changed 10 years ago by Martyn Gigg
- Status changed from verify to reopened
- Resolution fixed deleted
comment:7 Changed 10 years ago by Martyn Gigg
- Status changed from reopened to verify
- Resolution set to fixed
comment:8 Changed 10 years ago by Janik Zikovsky
- Status changed from verify to verifying
- Tester set to Janik Zikovsky
comment:9 Changed 10 years ago by Janik Zikovsky
- Status changed from verifying to reopened
- Resolution fixed deleted
- Summary changed from Progres reporting doesn't work well with the Load() algorithm to Progress reporting doesn't work well with the Load() algorithm
I tried it with a large TOPAZ event file (run 1786, TOPAZ_1786_event.nxs, 1.4 GB) and no progress reporting was seen and I could not cancel.
comment:10 Changed 10 years ago by Janik Zikovsky
Extra note: Canceling does work if you call LoadEventNexus directly, though it does not respond fast enough in some cases (Made ticket #2423 for myself).
comment:11 Changed 9 years ago by Janik Zikovsky
- Status changed from reopened to accepted
- Owner changed from Nick Draper to Janik Zikovsky
comment:12 Changed 9 years ago by Janik Zikovsky
- Status changed from accepted to verify
- Resolution set to fixed
- Milestone changed from Unassigned to Iteration 30
This is no longer an issue in a recent test.
comment:13 Changed 9 years ago by Roman Tolchenov
- Status changed from verify to verifying
- Tester changed from Janik Zikovsky to Roman Tolchenov
comment:14 Changed 9 years ago by Roman Tolchenov
- Status changed from verifying to closed
Confirmed that Algorithm class has a vector of weak pointers to sub-algorithms. Loading raw and nexus files report progress and can be cancelled.
comment:15 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 3087