-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Fix appup removal order #2882
Fix appup removal order #2882
Conversation
c9207f4
to
6ebc280
Compare
Doing this turned out to be much harder than I thought it would be. Basically, in order to handle this, the systools_relup dependency management engine has to be rewritten as it cannot represent what we want to do. So I'm closing this PR until I or someone else has time to work on it. |
I'm curious on the nature of the blocker, could you provide a high level explanation of it please? |
The problem is that the primitive instructions used within systools to manage dependencies do not include enough information to do this type of relup. There needs to be a way to make module addition and deletion depend on application start/stop instructions. Also the digraph used to calculate the module purge/load dependencies does a bunch of assumptions that do not work when you try to replace a dependency. It is not an impossible problem to solve I just don't have the time to solve it right now. The testcases that I could not make pass are system -> upgrade_SUITE:major+ancient. |
👍 thanks for the explanation |
I'd be happy with only this change:
Does ^ this break some existing tests or some assumptions made somewhere ? |
I don't think it breaks anything, but it doesn't fix it for all scenarios either. Only doing this change feels like putting a bandaid on the problem, though I suppose it may be a step in the right direction. |
Can we at least do this (and only this) in this PR ?. |
6ebc280
to
0b42fd5
Compare
I'll put it in test and see if it breaks anything. |
0b42fd5
to
520c450
Compare
520c450
to
4d8702f
Compare
4d8702f
to
4fa4a53
Compare
All tests passed. Merged for release in OTP-23.3. |
This PR makes it possible to do release upgrades with an application replacing which applications it depends on.
One problem remains and that is that the new dependency is started after processes are resumed in the upgraded application.