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

Mismatched carta-frontend and carta-backend versions running together #1281

Open
ajm-ska opened this issue Jul 26, 2023 · 4 comments
Open

Mismatched carta-frontend and carta-backend versions running together #1281

ajm-ska opened this issue Jul 26, 2023 · 4 comments
Assignees
Labels
bug Something isn't working question Further information is requested
Milestone

Comments

@ajm-ska
Copy link
Collaborator

ajm-ska commented Jul 26, 2023

Describe the bug
It appears that incompatible carta-frontend and carta-backend versions can be run together. For example, the v3.0.0 carta-backend can use the v4.0.0 carta-frontend. The most likely scenario for this to happen is with carta-controller if the user only updates carta-controller (which updates carta-frontend) and forgets, or is unaware of the need, to update the carta-backend to the same version. At first, everything will appear to be running fine, but unexpected behaviour will occur.

It would be better if different release/beta versions of the carta-frontend and carta-backend refused to work together.
How it could be done can be discussed. Perhaps with the carta-frontend (and/or carta-backend) can compare their version strings or protobuf versions and alert the user with an error or warning message if they do not match?

To Reproduce
Steps to reproduce the behavior:

  1. Start up a v3.0.0 carta_backend with a v4.0.0 carta-frontend using the --frontend_folder flag.
  2. Open a HDF5 image.
  3. The image will open, but no actual image will be visible.
  4. Open a FITS image.
  5. The carta_backend may crash.

Expected behavior
Different carta-frontend and carta-backend versions should not work together. We should expect an error or warning message that the carta-frontend and carta-backend versions are incompatible.

Screenshots or videos
I can load a HDF5 file, but no image is visible. It is not clear to the user why, but it is because the carta_backend is v3.0.0 and the carta-frontend is v4.0.0-beta.1.
Screenshot 2023-07-26 at 8 08 29 PM

Platform info (please complete the following information):

  • OS [e.g. macOS Monterey]: macOS Ventura
  • Browser [e.g. chrome, safari, electron app]: Chrome
  • Browser version [e.g. 22]: 112
  • Backend branch [e.g. dev, v3b2 release]: v3.0.0
  • Frontend branch [e.g. dev, v3b2 release]: v4.0.0-beta.1

Additional context
I will make an identical carta-backend issue as I'm not sure if the carta-backend would also need modification to address this issue.

@ajm-ska
Copy link
Collaborator Author

ajm-ska commented Jul 26, 2023

Also posted as carta-frontend issue 2216

@kswang1029 kswang1029 added the bug Something isn't working label Sep 13, 2023
@confluence
Copy link
Collaborator

See the discussion in the frontend bug -- the frontend should send an additional frontend version field in the RegisterViewer message, and the backend can then use that as well as the interface (ICD) version to decide whether to accept the connection. The backend should perhaps have a set of allowed frontend versions in its App constants, and use that for the comparison.

@veggiesaurus
Copy link
Collaborator

See the discussion in the frontend bug -- the frontend should send an additional frontend version field in the RegisterViewer message, and the backend can then use that as well as the interface (ICD) version to decide whether to accept the connection. The backend should perhaps have a set of allowed frontend versions in its App constants, and use that for the comparison.

Isn't the idea behind an ICD version to solve exactly this problem? Shouldn't we be bumping the ICD version every time a breaking frontend/backend change is made?

@confluence
Copy link
Collaborator

@veggiesaurus At the moment the ICD version is versioning only changes to the protocol itself -- we are not doing anything to the protobuf version if the frontend and backend change their behaviour in sync without any change to the protocol (which is a situation that could happen). We're also only checking the major ICD version. So the question is: do we need to change the way that we're using the ICD version? Is this something that we should put on hold until we can discuss it at the F2F?

@markccchiang markccchiang added the question Further information is requested label Oct 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working question Further information is requested
Projects
No open projects
Status: Icebox
Status: Backlog
Development

Successfully merging a pull request may close this issue.

5 participants