Ticket #8719 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

[ICAT] Mantid hang when running catalog algorithms via dialogs

Reported by: Jay Rainey Owned by: Jay Rainey
Priority: critical Milestone: Release 3.1
Component: Framework Keywords: ICAT
Cc: Blocked By:
Blocking: Tester: Peter Parker

Description

If the user tries to run the catalogSearch algorithm if they are not logged into the catalog it hangs. This is due to performing the search with an empty session ID.

Change History

comment:1 Changed 7 years ago by Jay Rainey

  • Summary changed from [ICAT] Mantid hang when search to [ICAT] Mantid hang when seaching via algorithm dialog

comment:2 Changed 7 years ago by Jay Rainey

  • Status changed from new to inprogress
Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:3 Changed 7 years ago by Jay Rainey

  • Status changed from inprogress to verify
  • Resolution set to fixed
Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:4 Changed 7 years ago by Jay Rainey

  • Summary changed from [ICAT] Mantid hang when seaching via algorithm dialog to [ICAT] Mantid hang when running catalog algorithms via dialogs

Throw an exception if soapEndPoint is empty. Refs #8719.

Changeset: 8b241f19a254db1f3d98691c295de0c1319b89fe

Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:5 Changed 7 years ago by Jay Rainey

Log error instead of throwing exception. Refs #8719.

  • As catalogPublish uses a custom dialog, throwing an exception causes Mantid to show a fatal error message.

Changeset: 3b3ba3d40eeea1d5fb78f6b3ccf4e48635f3febe

Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:6 Changed 7 years ago by Jay Rainey

Merge branch 'feature/8719_icat_dialog_hang' into develop. Refs #8719.

Conflicts:

  • Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp

Changeset: b48cd7e4d1aa555103ea71f11d50454168b70d18

Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:7 Changed 7 years ago by Jay Rainey

No need to log the message. Refs #8719.

The ICAT server returns the correct error message when the session is not set.

Changeset: 8437b5f56552a1be062774e026332b1387d570cc

Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:8 Changed 7 years ago by Jay Rainey

The problem was not with the sessionID, but thesoapEndPoint not being set.

The soapEndPoint is set when the user logs into the catalog. As such, when a dialog was run without having logged into the catalog Mantid would hang. This was due to the gSoap generated code making a request with a NULL session ID.

Instead, I have opted to return early in setICATProxySettings(). This prevents the soapEndPoint being set and ICAT (gSoap file) returns the correct (invalid session) error.

To test

  1. Open Mantid.
  2. From the Algorithms menu enter CatalogSearch and press enter. Mantid will no longer hang and a friendly error message will be output to the user.
Last edited 7 years ago by Jay Rainey (previous) (diff)

comment:9 Changed 7 years ago by Peter Parker

  • Status changed from verify to verifying
  • Tester set to Peter Parker

comment:10 Changed 7 years ago by Peter Parker

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8719_icat_dialog_hang'

Full changeset: 034a7ce0392c4065723624372185fdc2d3a47300

comment:11 Changed 7 years ago by Jay Rainey

Log error instead of throwing exception. Refs #8719.

  • As catalogPublish uses a custom dialog, throwing an exception causes Mantid to show a fatal error message.

Changeset: 1741039d253f32ec850e5d03c52dc6b587a1a947

comment:12 Changed 7 years ago by Jay Rainey

Merge branch 'feature/8719_icat_dialog_hang' into develop. Refs #8719.

Conflicts:

  • Code/Mantid/Framework/ICat/src/ICat4/ICat4Catalog.cpp

Changeset: b48cd7e4d1aa555103ea71f11d50454168b70d18

comment:13 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9563

Note: See TracTickets for help on using tickets.