Ticket #7658 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

LeBailFit causes tcmalloc problem if data range is not right

Reported by: Wenduo Zhou Owned by: Wenduo Zhou
Priority: critical Milestone: Release 3.0
Component: Diffraction Keywords:
Cc: Blocked By:
Blocking: Tester: Russell Taylor

Description (last modified by Wenduo Zhou) (diff)

When 'FitRange' is defined much smaller than the data range for algorithm LeBailFit, there comes an error message.

This error occurs while running the script, verify_7568.py, attached in this ticket. Algorithm LeBailFit froze after the error message appeared. And the memory used by Mantid increased dramatically until all the system memory were consumed.

Error message:

LeBailFit-[Notice] Function: Pattern Calculation. tcmalloc: large alloc 1610612736 bytes == 0x7fd6cf8d0000 @ 0x7fd7abbc4a45 0x7fd7896bdf71 0x7fd7896bc6eb 0x7fd7896ba1f7 0x7fd7896b851a 0x7fd7896b5709 0x7fd7896b292d 0x7fd78969c261 0x7fd78968ca20 0x7fd78968bdd9 0x7fd7b14542ab 0x7fd77ffe7aeb 0x7fd77fff7011 0x7fd77fff5b36 0x7fd77fff530d 0x7fd781436eb5 0x7fd7814268ba 0x7fd781427eb7 0x7fd7814354b0 0x7fd78b36b652 0x7fd78141ff01 0x7fd78143124e 0x7fd781427f93 0x7fd7ad21ee83 0x7fd7ad16e46d 0x7fd7ad13a605 0x7fd7ad16f8c0 0x7fd7ad1705eb 0x7fd7ad1705eb 0x7fd7ad13a605 0x7fd7ad13a932 MantidUI-[Notice] MantidPlot is shutting down... tcmalloc: large alloc 3221225472 bytes == 0x7fd60f5d0000 @ 0x7fd7abbc4a45 0x7fd7896bdf71 0x7fd7896bc6eb 0x7fd7896ba1f7 0x7fd7896b851a 0x7fd7896b5709 0x7fd7896b292d 0x7fd78969c261 0x7fd78968ca20 0x7fd78968bdd9 0x7fd7b14542ab 0x7fd77ffe7aeb 0x7fd77fff7011 0x7fd77fff5b36 0x7fd77fff530d 0x7fd781436eb5 0x7fd7814268ba 0x7fd781427eb7 0x7fd7814354b0 0x7fd78b36b652 0x7fd78141ff01 0x7fd78143124e 0x7fd781427f93 0x7fd7ad21ee83 0x7fd7ad16e46d 0x7fd7ad13a605 0x7fd7ad16f8c0 0x7fd7ad1705eb 0x7fd7ad1705eb 0x7fd7ad13a605 0x7fd7ad13a932

Attachments

2011B_HR60b2.irf (841 bytes) - added by Wenduo Zhou 7 years ago.
LB4853b2.hkl (22.1 KB) - added by Wenduo Zhou 7 years ago.
PG3_11486-2.dat (300.7 KB) - added by Wenduo Zhou 7 years ago.
verify_7658.py (6.5 KB) - added by Wenduo Zhou 7 years ago.

Change History

comment:1 Changed 7 years ago by Wenduo Zhou

  • Milestone changed from Backlog to Release 3.0

comment:2 Changed 7 years ago by Wenduo Zhou

  • Status changed from new to inprogress

comment:3 Changed 7 years ago by Wenduo Zhou

Fixed the bug. Refs #7658.

  1. Fixed the bug, which causes that a while loop cannot be over;
  2. Cleaned the codes.

Changeset: 1d4a9ce84f643cd9b358cd5372ccb27a41a8bb09

comment:4 Changed 7 years ago by Wenduo Zhou

Fixed the bug. Refs #7658.

The comment in the last commit is not all correct. The bug is inside LeBailFunction.cpp

Changeset: 4257c3ae12866adca038c6f4aefc454dcc39639c

Changed 7 years ago by Wenduo Zhou

Changed 7 years ago by Wenduo Zhou

Changed 7 years ago by Wenduo Zhou

Changed 7 years ago by Wenduo Zhou

comment:5 Changed 7 years ago by Wenduo Zhou

  • Description modified (diff)

comment:6 Changed 7 years ago by Wenduo Zhou

By examining the codes, a programming error was found. It was in LeBailFunction.cpp. There was an unconsidered case that causes an infinite while loop, in which elements were added to a vector in each iteration.

comment:7 Changed 7 years ago by Wenduo Zhou

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

Instruction for Verification

  1. Download all the files attached in this ticket;
  2. Before merging the commit of this ticket to master, run script verify_7658.py. You can see the problem as reported in the ticket's description. Kill the process before all the memory is consumed.
  3. Merge the branch to master and re-build Mantid;
  4. Re-run the verify_7658.py. The reported problem should gone.

comment:8 Changed 7 years ago by Russell Taylor

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

comment:9 Changed 7 years ago by Russell Taylor

  • Status changed from verifying to closed

comment:10 Changed 7 years ago by Nick Draper

  • Component changed from Framework to Diffraction

comment:11 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 8503

Note: See TracTickets for help on using tickets.