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

Handle missing objects gracefully in Open MCT #4258

Closed
3 of 5 tasks
shefalijoshi opened this issue Sep 27, 2021 · 6 comments · Fixed by #5399
Closed
3 of 5 tasks

Handle missing objects gracefully in Open MCT #4258

shefalijoshi opened this issue Sep 27, 2021 · 6 comments · Fixed by #5399
Labels
Milestone

Comments

@shefalijoshi
Copy link
Contributor

shefalijoshi commented Sep 27, 2021

Summary

When objects in views are missing, we should not fail but handle the issue gracefully.

Expected vs Current Behavior

Currently several views fail with console errors and Open MCT shows an endless spinner when objects are missing.
We should ensure that views load even when objects are missing.

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?

Steps to Reproduce

  1. In LocalStorage or in CouchDB, create an object / telemetry like a sine wave generator
  2. Add this object to several views - Display Layout, Flexible Layout, Telemetry Table, Overlay / Stacked Plots, LAD Tables etc.
  3. Delete the object from the persistence storage
  4. Lots of console errors are displayed in different views.

Environment

  • Open MCT Version: 1.7.8
  • Deployment Type: /testathon
  • OS: Mac
  • Browser: All

Additional Information

@khalidadil
Copy link
Contributor

I'm still seeing a few errors

in a Display Layout:
Screen Shot 2021-09-30 at 6 29 26 PM

in a Overlay Plot:
Screen Shot 2021-09-30 at 6 30 51 PM

in a Stacked Plot:
Screen Shot 2021-09-30 at 6 31 39 PM

@unlikelyzero
Copy link
Contributor

@alizenguyen @shefalijoshi are there 4 or more possible scenarios to test?

  1. LocalStorage
  2. CouchDB
  3. Removed/updated from dictionary
  4. Removed/updated from Import/Export

@unlikelyzero unlikelyzero added the needs:test instructions Missing testing notes label Jul 5, 2022
@alizenguyen
Copy link
Contributor

@unlikelyzero I'm not sure exactly how many ways you can remove data, I went with the instructions in the 'steps to reproduce' above.

@akhenry
Copy link
Contributor

akhenry commented Jul 6, 2022

@alizenguyen @unlikelyzero Should this be closed for testathon?

@akhenry
Copy link
Contributor

akhenry commented Jul 7, 2022

ALMOST fixed :) Just one edge case:

  1. Created a sinewave generator object in Couch DB
  2. Added the SWG to an overlay plot, stacked plot, display layout (ie. telemetry view), LAD Table, and LAD Table Set
  3. From the Couch admin interface, deleted the previously created SWG object
  4. Navigated to the various views that include the now deleted object and observed no visual issues.

Verified all cases except for LADTableSet. In the case of LADTableSets the LadTable containing the missing object does not render at all, and the following error appears in the console:

Note that there is still an error message being produced by the LADTableSet:

TypeError: Cannot read properties of undefined (reading 'valueMetadatas')
    at a.hasUnits (LadTableSet.vue?3c5d:86:1)
    at pn.get (vue.min.js?8f59:6:26853)
    at pn.evaluate (vue.min.js?8f59:6:27991)
    at a.eval [as hasUnits] (vue.min.js?8f59:6:29888)
    at a.LadTableSetvue_type_template_id_2afd3da8_render (LadTableSet.vue?4eb8:1:143)
    at e._render (vue.min.js?8f59:6:35545)
    at a.r (vue.min.js?8f59:6:68553)
    at pn.get (vue.min.js?8f59:6:26853)
    at pn.run (vue.min.js?8f59:6:27740)
    at ln (vue.min.js?8f59:6:25804)

Will file a followup issue for a future release to fix this. It appears to be otherwise benign

@akhenry
Copy link
Contributor

akhenry commented Jul 8, 2022

Verified fixed. Nice work!

@akhenry akhenry removed the unverified label Jul 8, 2022
@unlikelyzero unlikelyzero added the needs:e2e Needs an e2e test label Jul 8, 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
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants