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

Re-enable disabled »Official« apps during update #239

Closed
jancborchardt opened this issue Jun 28, 2016 · 14 comments
Closed

Re-enable disabled »Official« apps during update #239

jancborchardt opened this issue Jun 28, 2016 · 14 comments

Comments

@jancborchardt
Copy link
Member

So we had this issue come up several times and it’s still annoying. Every time even a tiny small update comes, basically all apps are disabled. This is especially annoying for the apps we purportedly support like Calendar, Contacts, Mail.

These, or »Official« apps, or »shipped« or however we solve it – should not be disabled. That’s a stupid update mechanism which requires people to do bullshit work in enabling them again step-by-step. If an app breaks the instance then it’s also probably gonna do that when you enable it again.

@karlitschek @LukasReschke

@jancborchardt jancborchardt added bug 1. to develop Accepted and waiting to be taken care of high labels Jun 28, 2016
@jancborchardt jancborchardt added this to the Nextcloud Next milestone Jun 28, 2016
@karlitschek
Copy link
Member

let me explain again. In the past we didn't disable this apps. And if an app is not compatible with the new server version the complete sever is broken and not recoverable. The only option to bring back such a server is to manually change a value in the database which is nothing a norma user can do. So this means killed all the data of all users.
Because of that we decided to better be on the safe side and disable all apps that are not shipped aka fully tested.
I understand that is is annoying to enabling them manually. But we we enable them automatically then there is the an X% chance to kill user data.
The only way to avoid this is that we are 1000% sure that every app only used public APIs and that this public APIs are 1000% stable. We had plenty of cases where this was not the case -> full data lose for users

@dper
Copy link

dper commented Jun 28, 2016

@karlitschek says that apps can make the server broken and not recoverable without database editing, but how does the timing of when an app is enabled affect that?

@jancborchardt
Copy link
Member Author

@karlitschek sure, I know that. And I’m not saying we should do that for all apps. But at least for Calendar and Contacts (maybe Mail) of which we say on the website that they are supported we should make an effort to coordinate.

Also as I asked above: If an app is disabled and incompatible, and I then enable it … what happens? It just doesn’t work, or does it also break the server? I. e. what’s the difference, when the server is still broken?

@karlitschek
Copy link
Member

@jancborchardt I agree. The real fix is to do a full compatibility check first. there where some prove of concepts. but nothing is ready

@MorrisJobke
Copy link
Member

Just a side note:

what happens? It just doesn’t work, or does it also break the server?

This is incorrect. if you enable the app via app management it checks if the server is still up. Otherwise we have an additional route that allows to disable the app again. See owncloud/core#17435

The only way to avoid this is that we are 1000% sure that every app only used public APIs and that this public APIs are 1000% stable. We had plenty of cases where this was not the case -> full data lose for users

That is the reason why we implemented the above mentioned stuff.

The only thing missing is that the update screen should just do that. Try to enable the app and if it fails directly disable it again.

Refs: owncloud/core#18312 owncloud/core#14754

@MorrisJobke MorrisJobke changed the title »Supported« apps are disabled on tiniest updates and need to be manually enabled again Re-enable disabled apps during update Jun 29, 2016
@oparoz
Copy link
Member

oparoz commented Jul 10, 2016

@jancborchardt - Maybe rename the OP to "Re-enable disabled official apps..."? Not all official apps should be enabled by default at install time, but when they are, they should be updated and re-enabled like any other shipped app.

@icewind1991
Copy link
Member

It should be doable to make app enabling automatically rollback in case of error (enable the app in a db transaction, only commit after we've verified that we still live)

@jancborchardt jancborchardt changed the title Re-enable disabled apps during update Re-enable »Official« disabled apps during update Jul 11, 2016
@jancborchardt jancborchardt changed the title Re-enable »Official« disabled apps during update Re-enable disabled »Official« apps during update Jul 11, 2016
@LukasReschke LukasReschke removed the high label Aug 22, 2016
@MorrisJobke
Copy link
Member

Clearly something for 11 ... backporting can be discussed, when this is implemented

@MorrisJobke
Copy link
Member

Won't make it into 11 -> moving to 12

@nicoduck
Copy link

Since the new two-factor authentication is implemented via a module, this is also disabled after each and every update. Very annoying and weakens that quite a bit.

@andreas-p
Copy link

Re-enabling shouldn't be restricted to official apps, but any previously enabled (and compatible) app should be handled.
Maybe an occ command to disable unoffical apps if things fail is a good idea.

@LukasReschke
Copy link
Member

This is fixed in master aka 12.0.0 if PHP >= 7.0 is used.

@melyux
Copy link

melyux commented Sep 14, 2019

I'm still getting apps disabled every time there's an update, claiming they're incompatible, but then I go to apps to re-enable them, and they say nothing about being incompatible.

@kesselb
Copy link
Contributor

kesselb commented Sep 14, 2019

@melikyuksel please create a new issue. This one has been closed 3 years ago. I'm sure your issue is not related to this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests