Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remote clock shows empty plots #5221

Closed
3 of 6 tasks
akhenry opened this issue May 19, 2022 · 4 comments
Closed
3 of 6 tasks

Remote clock shows empty plots #5221

akhenry opened this issue May 19, 2022 · 4 comments

Comments

@akhenry
Copy link
Contributor

akhenry commented May 19, 2022

Summary

There is a race condition with the remote clock whereby on initial load of the application plots will show no historical data due to the historical request being issued with start and end times of 0. This is because the historical requests are issued before the remote clock has got a time back from the server.

There are two potential solutions here:

  1. The remote clock should issue a proper bounds update (not a "tick") when it eventually gets a time from the server.
  2. The telemetry API blocks all historical requests if the remote clock has not yet received a valid time from the server.

2 Feels more correct to me because we can't really issue historical requests until we know the time. Issuing requests with bad start and end times is at best wasteful, and at worst may result in errors from backend systems.

Steps to Reproduce

  1. Configure the remote clock
  2. Select the remote clock in the time conductor
  3. Navigate to a display with plots
  4. Refresh the browser
  5. Observe that the plots show no historical data.
  6. Switching to local clock and then back to the remote clock will fix the issue as the remote clock now has a valid time to use.

Environment

  • Open MCT Version: 2.0.3
  • Deployment Type: STM test environment (talk to @akhenry for details)

Impact Check List

  • Data loss or misrepresented data?
  • Regression? Did this used to work or has it always been broken?
  • Is there a workaround available?
  • Does this impact a critical component?
  • Is this just a visual bug with no functional impact?
  • Does this block the execution of e2e tests?
@akhenry
Copy link
Contributor Author

akhenry commented Jul 7, 2022

Testing Instructions

Follow the reproduction steps above and verify that plots are initially populated with data when you refresh using the remote clock.

@akhenry akhenry closed this as completed Jul 7, 2022
@akhenry akhenry reopened this Jul 8, 2022
@akhenry
Copy link
Contributor Author

akhenry commented Jul 8, 2022

Not fixed. Refreshing on a plot with the remote clock does not show any historical data. Moreover the following error is observed in the console:

requestInterceptor.js?1480:38 Uncaught (in promise) TypeError: Cannot set properties of undefined (setting 'start')
    at Object.invoke (requestInterceptor.js?1480:38:1)
    at async TelemetryAPI.applyRequestInterceptors (TelemetryAPI.js?7b82:213:1)
    at async TelemetryAPI.request (TelemetryAPI.js?7b82:279:1)

@charlesh88
Copy link
Contributor

Testathon 07-08-22: NOT FIXED, still seeing console error referenced by @akhenry above.

@akhenry
Copy link
Contributor Author

akhenry commented Jul 8, 2022

Verified fixed after redeploying the latest code.

@unlikelyzero unlikelyzero added the needs:e2e Needs an e2e test label Jul 17, 2022
@unlikelyzero unlikelyzero added this to the Sprint:2.0.7 milestone Jul 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants