Ticket #2799 (closed: fixed)

Opened 10 years ago

Last modified 5 years ago

Crash: when clicking Load while still loading

Reported by: Nick Draper Owned by: Martyn Gigg
Priority: critical Milestone: Iteration 29
Component: MantidPlot Keywords:
Cc: Blocked By:
Blocking: Tester: Andrei Savici

Description (last modified by Nick Draper) (diff)

To reproduce:

  1. Load -> File Load Olympic/babylon5/Public/LOQ/2221front_1D_2.0_14.0.nx5
  2. While still loading, click Load-File again
  3. BANG

Change History

comment:1 Changed 10 years ago by Nick Draper

  • Description modified (diff)

comment:2 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 28 to Iteration 29

Bulk move of tickets at the end of iteration 28

comment:3 Changed 9 years ago by Martyn Gigg

Note: This only seems to affect NeXus files. Performing the same procedure with a RAW file does not show the same problem.

comment:4 Changed 9 years ago by Martyn Gigg

Confirmed that this only happens with NeXus and on Windows. The issue is that the version of HDF5 that we currently have is not thread safe. On Windows it cannot be compiled with thread-safety turned on while using Windows threading.

HDF5-1.8.6 offers the thread-safe option with Windows threads: we should upgrade to this. The only other option is a lock around every call we make to NeXus, which is not practical.

comment:5 Changed 9 years ago by Martyn Gigg

  • Status changed from new to accepted

comment:6 Changed 9 years ago by Martyn Gigg

(In [12572]) Update the HDF5 library on win64 to version 1.8.6 as this supports the "thread safe" option using Windows threads. The src has been swapped and Freddie has rebuilt NeXus against it. This cures the problem of trying to open two HDF5 NeXus files from separate threads. 32-bit libs to follow. Refs #2799

comment:7 Changed 9 years ago by Martyn Gigg

(In [12626]) Update the Win32 HDF5 libraries to 1.8.6, these are the ones from the website that Freddie has relinked against and updated NeXus to put locks around the HDF5 calls so that different threads can access them. Also swapped the zlib .lib files for the one that HDF use. It is still version 1.2.3 which is why the dll hasn't changed. Re #2799

comment:8 Changed 9 years ago by Martyn Gigg

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

comment:9 Changed 9 years ago by Andrei Savici

  • Status changed from verify to verifying
  • Tester set to Andrei Savici

comment:10 Changed 9 years ago by Andrei Savici

  • Status changed from verifying to closed

comment:11 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 3646

Note: See TracTickets for help on using tickets.