Ticket #8703 (closed: fixed)
SNSLiveEventDataListener::connect hangs for a while the requested address can't be reached
Reported by: | Russell Taylor | Owned by: | Russell Taylor |
---|---|---|---|
Priority: | major | Milestone: | Release 3.1 |
Component: | Framework | Keywords: | LiveData |
Cc: | Blocked By: | ||
Blocking: | Tester: | Andrei Savici |
Description
...and thus so does the Step Scan interface.
The answer (and I don't know why) seems to be to move the call to m_socket.setReceiveTimeout (unchanged, so still setting it to 30s) above the connect call.
Change History
comment:2 Changed 7 years ago by Russell Taylor
BTW, #6939 was a previous incarnation of this ticket.
comment:3 Changed 7 years ago by Russell Taylor
- Status changed from new to inprogress
Re #8703. Make the live stream check asynchrounous.
There are certain configurations of unavailability (e.g. host reachable but non-responsive) that cause the ILiveListener::checkConnection method to take a noticeable amount of time. We don't want to inhibit GUI initialisation in this scenario.
Changeset: 2242e54ec773ad8c1fcf85d8a0fe67142e62233f
comment:4 Changed 7 years ago by Russell Taylor
This work has impressed on me more something I already knew - that I should have made the live data part a separate class that has-a MWRunFiles instance inside.
comment:5 Changed 7 years ago by Russell Taylor
- Status changed from inprogress to verify
- Resolution set to fixed
It's probably unlikely at the time of testing that any of the ADARA instrument's (HYSPEC,SEQUOIA,VISION) SMS will be in a state that generates the hanging behaviour. Therefore, what really needs testing is that things still work OK in normal operation.
Testing steps (will need to be done at the SNS):
- Use the generic live data dialog to determine which of the 3 instruments you can connect to and the failure time if you can't.
- Test the Step Scan & DGS Reduction live buttons function correctly.
- Step Scan: Works off the default instrument (set in the preferences). Check that the button is enabled if it's an instrument you could connect to in step 1. Make sure that's there's no delay in the GUI coming up, especially for unreachable instruments.
- DGS: This one only checks for a live connection if the selected instrument matches that set as the default. Also the button is only shown if a connection is possible. Check that it shows up for the instruments you know you can connect to.
comment:6 Changed 7 years ago by Andrei Savici
- Status changed from verify to verifying
- Tester set to Andrei Savici
comment:7 Changed 7 years ago by Andrei Savici
- Status changed from verifying to closed
Merge remote-tracking branch 'origin/feature/8703_async_live_checking'
Full changeset: 69e3476aaecdd119559cb15119afde2f7cb3d4c6
Actually, the above solution doesn't work. Probably the thing to do is to make the check asynchronous.