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

No longer support deprecated legacy QEMU machine structures #18976

Conversation

jakecorrenti
Copy link
Member

@jakecorrenti jakecorrenti commented Jun 22, 2023

Removes the MachineVMV1 and MonitorV1 structures that have been deprecated for a long enough period of time that it makes sense to no longer support them.

Results in the removal of deprecated getSocketAndPid as well.

The migration code was added in commit 6e0e1cbddd5e1c5dff51215ad2b41a99d890fad8 and made it into release v4.1.0

Does this PR introduce a user-facing change?

Warning (action required): Users running a `podman` version earlier than `v4.1.0` will have machines using a now unsupported internal structure as of `v5.0.0`. There will be no way to migrate unless using a version of `podman` from `v4.1.0` to `v4.5.1` to do the migration. If a migration is not done, the user will not be able to remove the machine files using `podman machine rm` and will have to manually remove all files for the out-of-date machines.

@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from 8f445d7 to cda7421 Compare June 22, 2023 18:52
@jakecorrenti
Copy link
Member Author

jakecorrenti commented Jun 22, 2023

Only action needed by the user for this removal would be to migrate their existing machines with the old structures to the new structures, but considering the migrateVM function was merged into upstream last year that is a very slight chance

@rhatdan
Copy link
Member

rhatdan commented Jun 23, 2023

@baude @ashley-cui PTAL

@Luap99
Copy link
Member

Luap99 commented Jun 23, 2023

In principle I am fine with this but can you be specific, i.e. what version was this added? It is very useful to know what upgrade path will be broken by this.

@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from cda7421 to f1201f8 Compare June 23, 2023 12:16
@jakecorrenti
Copy link
Member Author

In principle I am fine with this but can you be specific, i.e. what version was this added? It is very useful to know what upgrade path will be broken by this.

I adjusted the commit message, but it was added in commit 6e0e1cbddd5e1c5dff51215ad2b41a99d890fad8 which made it into 4.1.0

Copy link
Member

@ashley-cui ashley-cui left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@Luap99
Copy link
Member

Luap99 commented Jun 23, 2023

Is there a specific reason to remove it now? Or can we hold it for podman 5.0? That at lest gives a valid excuse if somebody is broken. Can we really expect all machine users to not directly update from 4.0 to 4.6 or later?

I am not blocking this but at the very least this definably needs a warning in the release notes. So please add a proper entry under: Does this PR introduce a user-facing change?

@jakecorrenti
Copy link
Member Author

That's a valid point I didn't think of. @ashley-cui @baude what are your thoughts on this?

@ashley-cui
Copy link
Member

I think the rules of semver say that we should wait until 5.0, and the only impact waiting would have would be some mostly rarely used code in machine. Technically would be a breaking upgrade, but at the same time I'm not sure if many users would make such a large jump from 4.0 to 4.6, and be mad about having to rm their machine since many of our solutions to a broken machine is "try re-creating it" anyway.

I think it's mostly up to how we want to follow semver.

@Luap99
Copy link
Member

Luap99 commented Jun 23, 2023

But can a user rm the machine in this case, I assume the json unmarshal will fail and podman is unable to remove the files because of it? So a user would need to figure out where all files are and remove them by hand.
But if a simple machine rm still works on an old config file I agree that this is not a bid deal.

@jakecorrenti
Copy link
Member Author

afaik that would be an issue. The remove command currently migrates an old machine to the new format, so it would fail

@ashley-cui
Copy link
Member

Oops, you're correct, this would break rm as well.

@jakecorrenti
Copy link
Member Author

Should I close this for the time being

@rhatdan rhatdan added the 5.0 label Jun 23, 2023
@rhatdan
Copy link
Member

rhatdan commented Jun 23, 2023

We can just mark it for 5.0

@TomSweeneyRedHat
Copy link
Member

I could be dropping brain bits, but have we written a deprecation notice for this? I concur, this should come out in Podman v5.0. Please update the release note comment in the description to reflect that.

@jakecorrenti
Copy link
Member Author

I could be dropping brain bits, but have we written a deprecation notice for this? I concur, this should come out in Podman v5.0. Please update the release note comment in the description to reflect that.

Updated the release note comment. Where would I look to find or write the deprecation notice?

@TomSweeneyRedHat
Copy link
Member

Hopefully, the deprecation notices are in our release announcements, if not there, then the RHEL docs which is more fun to track down.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 29, 2023
@baude
Copy link
Member

baude commented Jun 29, 2023

this can go into 4.x. The format was very old and it has been many many generations since the new one is introduced. I'd like to see it rebased and merged. I am willing to bet there are no installs out there with this; also will to take the complaints if there is one.

@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from f1201f8 to c6a1c5b Compare July 5, 2023 14:36
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 5, 2023
@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from c6a1c5b to f65bea4 Compare July 5, 2023 14:38
@jakecorrenti
Copy link
Member Author

rebased

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 29, 2023
@github-actions
Copy link

A friendly reminder that this PR had no activity for 30 days.

@rhatdan
Copy link
Member

rhatdan commented Sep 6, 2023

@jakecorrenti Please rebase

@rhatdan rhatdan removed the stale-pr label Sep 6, 2023
@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from f65bea4 to e39e9d0 Compare September 7, 2023 17:24
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 7, 2023
Copy link
Member

@vrothberg vrothberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@baude what should we do this PR? Is this being tracked in Jira?

@jakecorrenti
Copy link
Member Author

@baude what should we do this PR? Is this being tracked in Jira?

It is tracked under RUN-1955

Removes the `MachineVMV1` and `MonitorV1` structures that have been
deprecated for a long enough period of time that it makes sense to no
longer support them.

Results in the removal of deprecated `getSocketAndPid` as well.

The migration code was added in commit
`6e0e1cbddd5e1c5dff51215ad2b41a99d890fad8` and made it into release `v4.1.0`

[NO NEW TESTS NEEDED]

Signed-off-by: Jake Correnti <[email protected]>
@jakecorrenti jakecorrenti force-pushed the fully-deprecate-machinevmv1-monitorv1 branch from e39e9d0 to 2b95700 Compare November 21, 2023 17:05
@jakecorrenti
Copy link
Member Author

@baude PTAL

Copy link
Member

@Luap99 Luap99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

openshift-ci bot commented Nov 21, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jakecorrenti, Luap99

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 21, 2023
@jakecorrenti
Copy link
Member Author

failed tests just need a restart (which I don't have the perms for)

@TomSweeneyRedHat
Copy link
Member

@jakecorrenti I've just restarted the failed tests, 🤞

@baude
Copy link
Member

baude commented Nov 22, 2023

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 22, 2023
@openshift-merge-bot openshift-merge-bot bot merged commit b7ca114 into containers:main Nov 22, 2023
93 checks passed
@github-actions github-actions bot added the locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments. label Feb 21, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
5.0 approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments. release-note-action-required
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants