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

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

@khalidadil khalidadil reopened this Sep 30, 2021
@unlikelyzero unlikelyzero added this to Needs triage in Bug Tracker via automation Oct 8, 2021
@unlikelyzero unlikelyzero moved this from Needs triage to Done in Bug Tracker Oct 8, 2021
@unlikelyzero unlikelyzero moved this from Done to Will Do in Bug Tracker Oct 26, 2021
@alizenguyen alizenguyen self-assigned this Jun 14, 2022
@alizenguyen alizenguyen linked a pull request Jun 28, 2022 that will close this issue
15 tasks
@unlikelyzero
Copy link
Collaborator

@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 akhenry closed this as completed Jul 6, 2022
Bug Tracker automation moved this from Will Do to Done Jul 6, 2022
@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 akhenry reopened this Jul 7, 2022
Bug Tracker automation moved this from Done to Needs triage Jul 7, 2022
@akhenry akhenry closed this as completed Jul 8, 2022
Bug Tracker automation moved this from Needs triage to Done Jul 8, 2022
@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 To triage in Improve Test Coverage via automation 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
Development

Successfully merging a pull request may close this issue.

6 participants