nextcloud / news

:newspaper: RSS/Atom feed reader
https://apps.nextcloud.com/apps/news
GNU Affero General Public License v3.0
866 stars 186 forks source link

News update 16.0.0 with not fulfilled dependencies #1423

Closed bcutter closed 3 years ago

bcutter commented 3 years ago

IMPORTANT

Read and tick the following checkbox after you have created the issue or place an x inside the brackets ;)

Explain the Problem

What problem did you encounter? Tried to update NC News to version 16.0.0 with occ app:update --all. Result after needed occ upgrade is

Exception: App "News" cannot be installed because the following dependencies are not fulfilled: 64bit or higher PHP required.

No way to get out of maintenance mode. NC News update blocks whole Nextcloud.

Steps to Reproduce

See "Explain the Problem" section above.

By disabling news the lock situation could be resolved. But now NC News is not available anymore (occ app:enable news gives App "News" cannot be installed because the following dependencies are not fulfilled: 64bit or higher PHP required.).

System Information

Contents of nextcloud/data/nextcloud.log ```json Possible sensitive information (!) ```
Contents of Browser Error Console Read http://ggnome.com/wiki/Using_The_Browser_Error_Console if you are unsure what to put here ``` Not necessary for sure! ```

What are the explicit v16.0.0 requirements? 64-Bit OS? That would´ve be a total kill. Higher PHP version? Which one? More details please. Not the nice way to discover BY/AFTER running an update that it breaks the whole app. And YES, I´ve read (because accidentally discovered) https://github.com/nextcloud/news/issues/935.

Brianetta commented 3 years ago

This went horribly wrong when I updated the apps on my Odroid HC1, which is 32 bit hardware. As a result, I have permanently removed the News app. I don't expect to install it in the future.

mrkskwsnck commented 3 years ago

Don′t give up hope, everybody. The downgrade procedure https://github.com/nextcloud/news/issues/1423#issuecomment-873666869 provided by @bcutter worked flawlessly for me, too. Just give it a try.

rugk commented 3 years ago

Hi everyone, just wanting to join in here as this is such a great issue – scientifically said, because how such a small "issue" like PHP not being able to have a real 64bit integer (on 32bit hardware) – if I interpreted what has been said correctly – can turn into such a big problem that you need to replace your hardware as a user is "incredible". Computers were really a mistake… :stuck_out_tongue_winking_eye: Anyway, also learned about that Y2038 problem here, so great there's always something to learn!

As I do not have anything productive to contribute to the discussion (I'm fortunately not affected, but were nearly, as I just upgraded from an ARM 32bit device) and I guess everything was said and you are already discussion float workarounds, just let me say one word to the maintainers: I totally feel that such a negativity can be destructive and it is not always easy when crowds of people just run against you with their issue. That said, I am very sure nobody in this issue blames anyone personally for taking wrong decisions. Regardless of how good a decision that lead to this may actually be or not (which is not a useful thing to discuss!), this here is an open-source project and the good thing is that we, as a community, can work on it and – if possible – find a solution that everyone satisfies here. I know maintaining is not always easy and we're all just doing the best we can do, that of course – especially as a maintainer – includes making decisions that may argue users or we may introduce bugs that may have severe consequences (not what happened here, just saying). That all is expected, however, and the only thing we can do is to continuously try to improve the software, processes, tests etc. And I guess that's what an open-source community should be doing… I'm personally a user of Nextcloud News and what you've made and maintained it so long (for at least 9 years the project seems to exist, at least that is the first commit f3e249a4a24548fb1487aec76113b5e1216db75c) and you've made a wonderful job IMHO. I've likely not using it as long as that, but a few years already… and it always served/did it's job. :blush:

As such, just let me use this moment to say thanks for maintaining that great project. I hope you'll keep that on in the future. And as for this issue, I hope we'll find a solution and please respect everyone and be kind to each other, even if you disagree or are frustrated by having a broken Nextcloud instance. So be excellent to each other! So far from me, and sorry for interrupting… :wink:

rugk commented 3 years ago

So more on-topic on that issue, the PHP 64bit int issue seems to be wel-known and there was even a request to implement something like this, which seems to have been rejected, however so far. The only other solution I could find is using the GMP or BCMath extension.

Jayky commented 3 years ago

Yes that´s a quick fix to get rest of Nextcloud back working. BUT: during a (I´m quite sure: EVERY) usual Nextcloud version update (like I did some minutes ago from 21.0.2.1 to 21.0.3.1) we´ll run into this issue. Because "occ update" is performed during an update and here NC News app got updated once again.

So I performed manual app downgrade twice today. I´m prepared to do this on every future NC version update...

That´s my whole downgrade process, maybe someone else can adjust (important, every environment is a different) and use this.

Thank you very much for sharing your progress!!!

Unfortunately I use a SNAP nextcloud installation, So I adapted it like this:

/snap/bin/nextcloud.occ app:disable news
/snap/bin/nextcloud.occ maintenance:mode --on
cd /home/usersapp/Downloads
wget https://github.com/nextcloud/news/releases/download/15.4.5/news.tar.gz
tar -xvzf news.tar.gz
sudo mv /var/snap/nextcloud/current/extra-apps/news /var/snap/nextcloud/current/extra-apps/news16.0.0_bad
sudo mv /home/usersapp/Downloads/news /var/snap/nextcloud/current/extra-apps/
cd /var/snap/nextcloud/current/extra-apps/ 
ls -l | grep news
sudo chown nextcloud:nextcloud -R /var/snap/nextcloud/current/extra-apps/news
sudo chmod u-x,g-x,o-x /var/snap/nextcloud/current/extra-apps/news/AUTHORS.md
sudo chmod u-x,g-x,o-x /var/snap/nextcloud/current/extra-apps/news/CHANGELOG.md
sudo chmod u-x,g-x,o-x /var/snap/nextcloud/current/extra-apps/news/COPYING
ls -l | grep news
cd news
ls -l
/snap/bin/nextcloud.occ app:list | grep news
/snap/bin/nextcloud.occ maintenance:mode --off
/snap/bin/nextcloud.occ upgrade
/snap/bin/nextcloud.occ app:enable news
/snap/bin/nextcloud.occ upgrade

[check NC News is working on the browser]

So the result in the browser check was that I got the 15.4.5 version back again!!! But... It is not working :'-( There is the communication that it makes the server unstable and cannot be used.

After changing back to 16.0.0 there is the information that a 64bit system or a higher PHP is needed... AHHHHHHH

I don't get it... before of that the 16.0.0 worked, of course really bad and flawed, but it worked. Now I have no News app...

I am glad if anyone could share their experience with downgrading on snap nextclouds. And I am glad for any suggestions for improvements in my mentioned process, too.

nacho-domatix commented 3 years ago

I tried the failback as I have my nextcloud server also in a Pi compatible device (and I'm not able to update the system due to the hardware) but I can't get the News app working again. No idea what to do (as I'm not a developer), but the log of Nexcloud shows this:

{"reqId":"YPiAocJNxXjeQkRx11ENPQAATRU","level":3,"time":"2021-07-21T20:16:33+00:00","remoteAddr":"192.168.1.24","user":"nacho","app":"index","method":"GET","url":"/apps/news/feeds","message":{"Exception":"BadFun ctionCallException","Message":"sharedBy is not a valid attribute","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","line":151,"function":"setter","class":"OCP\\AppFramework\\D b\\Entity","type":"->","args":["sharedBy",[null]]},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","line":73,"function":"__call","class":"OCP\\AppFramework\\Db\\Entity","type":"->","args":["se tSharedBy",[null]]},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":307,"function":"fromRow","class":"OCP\\AppFramework\\Db\\Entity","type":"::","args":[{"id":"17443","guid_hash":"274 d1a406c8092e7909e168d03fbb5c8","fingerprint":"c77f7aa0e12ea83bce23631c767fb999","content_hash":"113d12500be4d19ab7fffed80593d888","rtl":"0","0":"And 17 more entries, set log level to debug to see all entries"}]} ,{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":325,"function":"mapRowToEntity","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->","args":[{"id":"17443","guid_hash":"274d1a406c809 2e7909e168d03fbb5c8","fingerprint":"c77f7aa0e12ea83bce23631c767fb999","content_hash":"113d12500be4d19ab7fffed80593d888","rtl":"0","0":"And 17 more entries, set log level to debug to see all entries"}]},{"file":" /var/www/nextcloud/apps/news/lib/Db/ItemMapperV2.php","line":68,"function":"findEntities","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->","args":[{"__class__":"OC\\DB\\QueryBuilder\\QueryBuilder"}]},{"file ":"/var/www/nextcloud/apps/news/lib/Service/ItemServiceV2.php","line":69,"function":"findAllFromUser","class":"OCA\\News\\Db\\ItemMapperV2","type":"->","args":["nacho",{"starred":1}]},{"file":"/var/www/nextcloud /apps/news/lib/Service/ItemServiceV2.php","line":123,"function":"findAllForUser","class":"OCA\\News\\Service\\ItemServiceV2","type":"->","args":["nacho",{"starred":1}]},{"file":"/var/www/nextcloud/apps/news/lib/ Controller/FeedController.php","line":84,"function":"starred","class":"OCA\\News\\Service\\ItemServiceV2","type":"->","args":["nacho"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php"," line":169,"function":"index","class":"OCA\\News\\Controller\\FeedController","type":"->","args":[]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":100,"function":"executeControl ler","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\News\\Controller\\FeedController"},"index"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":152,"fun ction":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\News\\Controller\\FeedController"},"index"]},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line" :309,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\News\\Controller\\FeedController","index",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"news.feed. index"}]},{"file":"/var/www/nextcloud/lib/base.php","line":1008,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/news/feeds"]},{"file":"/var/www/nextcloud/index.php","line":37,"function" :"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","Line":122,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Geck o/20100101 Firefox/90.0","version":"20.0.11.1"} {"reqId":"YPiAocJNxXjeQkRx11ENQgAASgU","level":3,"time":"2021-07-21T20:16:34+00:00","remoteAddr":"192.168.1.24","user":"nacho","app":"index","method":"GET","url":"/apps/news/items?limit=40&oldestFirst=false&sear ch=&showAll=true&type=3","message":{"Exception":"BadFunctionCallException","Message":"sharedBy is not a valid attribute","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","line ":151,"function":"setter","class":"OCP\\AppFramework\\Db\\Entity","type":"->","args":["sharedBy",[null]]},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","line":73,"function":"__call","class": "OCP\\AppFramework\\Db\\Entity","type":"->","args":["setSharedBy",[null]]},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":307,"function":"fromRow","class":"OCP\\AppFramework\\Db\\Ent ity","type":"::","args":[{"id":"19908","guid_hash":"09e460bcf00f8ef1bef5eb25fcd9d3a3","fingerprint":"777044629b787356d9904d0ea0681ae9","content_hash":"4e0ab73736b63be4c93fc1aaa2a41d0c","rtl":"0","0":"And 17 more entries, set log level to debug to see all entries"}]},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":346,"function":"mapRowToEntity","class":"OCP\\AppFramework\\Db\\QBMapper","type ":"->","args":[{"id":"19908","guid_hash":"09e460bcf00f8ef1bef5eb25fcd9d3a3","fingerprint":"777044629b787356d9904d0ea0681ae9","content_hash":"4e0ab73736b63be4c93fc1aaa2a41d0c","rtl":"0","0":"And 17 more entries, set log level to debug to see all entries"}]},{"file":"/var/www/nextcloud/apps/news/lib/Db/ItemMapperV2.php","line":308,"function":"findEntity","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->","args":[{"__c lass__":"OC\\DB\\QueryBuilder\\QueryBuilder"}]},{"file":"/var/www/nextcloud/apps/news/lib/Service/ItemServiceV2.php","line":235,"function":"newest","class":"OCA\\News\\Db\\ItemMapperV2","type":"->","args":["nach o"]},{"file":"/var/www/nextcloud/apps/news/lib/Controller/ItemController.php","line":133,"function":"newest","class":"OCA\\News\\Service\\ItemServiceV2","type":"->","args":["nacho"]},{"file":"/var/www/nextcloud/ lib/private/AppFramework/Http/Dispatcher.php","line":169,"function":"index","class":"OCA\\News\\Controller\\ItemController","type":"->","args":[3,0,40,0,true,false,""]},{"file":"/var/www/nextcloud/lib/private/Ap pFramework/Http/Dispatcher.php","line":100,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\News\\Controller\\ItemController"},"index"]},{"file": "/var/www/nextcloud/lib/private/AppFramework/App.php","line":152,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\News\\Controller\\ItemController"},"inde x"]},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":309,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\News\\Controller\\ItemController","index",{"__class__":"OC\\A ppFramework\\DependencyInjection\\DIContainer"},{"_route":"news.item.index"}]},{"file":"/var/www/nextcloud/lib/base.php","line":1008,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/news /items"]},{"file":"/var/www/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/nextcloud/lib/public/AppFramework/Db/Entity.php","Line":122,"CustomMess age":"--"},"userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0","version":"20.0.11.1"}

If anybody has a hint about the solution, I will appreciate any information.

Many thanks to the developers for the great work (it's my first and top app too) and the community of Nextcloud/News.

bcutter commented 3 years ago

I'm wondering what the current progress is.

What about @shane-kerr 's last question in https://github.com/nextcloud/news/issues/1423#issuecomment-876264512 @SMillerDev ?

ChristianKrausse commented 3 years ago

are in agreement that I make bad decisions as a maintainer I'm fine stopp

You should not stopp, because of a decision bad for other users. Just rethink your decission and hopefully help the poor users not able to fullfill the requirements or maintain a fork.

nachoparker commented 3 years ago

I beg you to reconsider your decision to drop support for 32 bits.

It is not only the Raspberry Pi, but also there are other very popular boards such as the odroid XU4, HC1 and HC2 that are perfect for Nextcloud and run 32 bit architectures (actually we ship 64 bit images with NCP). We also package an armhf image for NCP that includes News by default, and out of nowhere all these users will see all their news feeds disappear whenever they upgrade without a warning. I beg you to reconsider your decision to drop all these users just like that. It is not that easy to migrate your setup to a new architecture and we should make it a point not to break users installation, as we do all the time in NCP.

Thanks for your hard work

nacho-domatix commented 3 years ago

I beg you to reconsider your decision to drop support for 32 bits.

It is not only the Raspberry Pi, but also there are other very popular boards such as the odroid XU4, HC1 and HC2 that are perfect for Nextcloud and run 32 bit architectures (actually we ship 64 bit images with NCP). We also package an armhf image for NCP that includes News by default, and out of nowhere all these users will see all their news feeds disappear whenever they upgrade without a warning. I beg you to reconsider your decision to drop all these users just like that. It is not that easy to migrate your setup to a new architecture and we should make it a point not to break users installation, as we do all the time in NCP.

Thanks for your hard work

That is totally what happened to me

tangel0v commented 3 years ago

First I want to thank the maintainers for the hard work they have done these past years. It's the minimum I can do for giving us such a great solution in NC and their hardworking.

I am another affected by the drop of 32 support therefore I am going to stop using this app as I am running NC in a 32 bits hardware and I am not going to replace the whole solution because of RSS. This is sad as I have been running my NC instance since 2015 (it was Owncloud) but these things happen in OSS.

I understand the maintainers: having less code is less work for them but I think they are breaking the community. Is there any other NC app without support to 32 bits? Nextcloud is a great solution to be run in "Pi" motherboards and most of them are in 32 bits.

I am moving my RSS configuration to Miniflux because I don't want to run non-maintained code in my instance.

velaja commented 3 years ago

I'm worried about how that developer has been handling such a critical issue after a month and the massive fallout that resulted from it. That does not bode well for the future when other critical issues will arise.

Anyway, like so many others, I don't have the resources to move the nextcloud drive to a 64-bits server. So I moved my rss feeds to a docker instance of freshrss. It comes with some very useful features like filtering out articles by keywords. I'm very happy with it and I very much recommend it if you're still left out in the cold.

SMillerDev commented 3 years ago

I'm worried about how that developer has been handling such a critical issue after a month and the massive fallout that resulted from it. That does not bode well for the future when other critical issues will arise.

It bodes perfectly fine, the developers responded immediately that the issue was mostly with the server team and explained why the issue was coming up. We explained the reasoning and why we are choosing not to revert the choice.

This issue is more of a feature request than an issue really.

Grotax commented 3 years ago

We have explained many times why you ran into this issue, the Nextcloud server is not checking the architecture requirement before doing an update, while it does check the PHP version so it's simply a bug and inconsistency in the server.

News always had trouble supporting 32bit due to choosing high resolution timestamps for synchronization, this decision can't be easily changed as it has an impact not only on new but also the clients. The original developer found a workaround that he was happy to support, then the app was abandoned and got more and more outdated. This workaround broke while news got refactored to bring the code up to current PHP and Nextcloud standards. As we didn't want to break the update within a maintenance release we decided to implement another workaround.

But the agreement was and is to drop this workaround. We trusted Nextcloud to not trigger an update on systems with 32 bit, that failed.

I understand your issues with this decision but the problem is that we maintain this app long term and as a whole. If you just focus on this particular issue then it's very easy, just use the workaround and don't worry about news anymore.

With this I will close and lock this issue as I feel like everything has been said, be grumpy about php not having a big integer or a long but not about a few people investing their free time into a free app. And if you want to use another app instead feel free to do so news allows you to do an OPML export as long as you can revert your install back to 15.x

anoymouserver commented 2 years ago

Just as an information for everyone waiting for the official release of the 64-bit OS: Raspberry Pi OS (64-bit) - Raspberry Pi (TL;DR it got released yesterday)