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

News update 16.0.0 with not fulfilled dependencies #1423

Closed
3 tasks done
bcutter opened this issue Jul 4, 2021 · 65 comments
Closed
3 tasks done

News update 16.0.0 with not fulfilled dependencies #1423

bcutter opened this issue Jul 4, 2021 · 65 comments
Labels

Comments

@bcutter
Copy link

bcutter commented Jul 4, 2021

IMPORTANT

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

  • I have read the CONTRIBUTING.md and followed the provided tips
  • I accept that the issue will be closed without comment if I do not check here
  • I accept that the issue will be closed without comment if I do not fill out all items in the issue template.

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

  • News app version: 15.4.5
  • Nextcloud version: 21.0.2.1
  • Cron type: system cron
  • PHP version: 7.3.27
  • Database and version: MariaDB 10.3.29
  • Browser and version: Firefox latest
  • OS and version: Raspberry Pi OS latest
Contents of nextcloud/data/nextcloud.log
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) #935.

@bcutter bcutter added the bug label Jul 4, 2021
@bcutter
Copy link
Author

bcutter commented Jul 4, 2021

Update: I discovered in change log https://apps.nextcloud.com/apps/news/releases?platform=21#21

News now requires a 64bit OS

OK wait a minute I´ll upgrade my whole server. 🤣
Hell no, that´s a hell of a "breaking change" guys!

So as emergency immediate response:
How to downgrade from started update (16.0.0) back to 15.4.5???

@Grotax
Copy link
Member

Grotax commented Jul 4, 2021

As you already discovered, news requires 64bit starting with version 16.
It is also mentioned in the changelog.

The reason is that news requires a high resolution of time to be more accurate with synchronization.

It worked in older versions because there was some workaround created that didn't store timestamps as numbers but as strings in the DB, but programmatically this is an unclean solution and it broke due to changes applied to the code not long ago, so for 15.x we decided to create another workaround but to drop it with 16.

And yes I know that raspberry pi OS is still stuck on 32bit and that there is only a beta for 64bit.
But there is also a Ubuntu version which already provides 64bit as default.

That the upgrade failed and got stuck is unfortunate but nothing we can fix, it would be a server issue as the app can't control the install process. I would expect the updater of the sever to check the dependency before downloading the app.

You should be able to downgrade manually to 15.x.
By deleting the news folder from apps/ and downloading a appropriate version from the app store. Unpack it and activate the app via OCC. And of course don't update it anymore if possible (maybe do a backup in case the sever decides to run the update again)

@bcutter
Copy link
Author

bcutter commented Jul 4, 2021

Thanks for explanations.

  1. First things first: managed to downgrade to 15.4.5 and will try to conserve that version until a final solution is been found. For the moment NC News is back operational.

  2. Nextcloud app update mechanism: that one is probably bringing in some more users running in the same situation like I was/am. Maybe you as app maintainer can use your impact and propose app update mechanism changes so that dependencies are actually checked before updating apps. That´s so basic stuff, I´m really surprised to run in such an situation nowadays. The current mechanism AND messages are not very helpful. Even the current ...because the following dependencies are not fulfilled: 64bit or higher PHP required. raises false hopes: a higher PHP version would require quite some effort leaving latest stable APT repository of the OS behind, but would be manageable with a specific amount of time and with known and probably acceptable side effects.

  3. The 64 bit dependency itself is really a huuuuuuuuuge major - how to say in friendly words, skipping all the others coming to my mind at first - horror scenario. Imagine running Nextcloud next to plenty other services plain without dockerization on a Pi. Now one single app of one single service needs a 64 bit OS... there´s no stable version of the 64 bit Pi OS yet. And even if it would be (and probably will be until the end of the year I guess) - there´s no upgrade path from 32 to 64 bit, basically in almost no OS. That means: complete reinstall. Starting from scratch. In my case even with a precise planning phase of at least 1/2 a day before the actual update, it would roughly take me AT LEAST one weekend for the update itself. Based on my experiences I double that, expecting other things to fail which need to be fixed and so on. Oh man... WORST CASE SCENARIO ⚠, really.

@LeSpocky
Copy link

LeSpocky commented Jul 4, 2021

As a user: Okay, I just clicked update in nextcloud web ui like with every other app, which always worked flawlessly and now I'm stuck, because the web ui does not offer me to rollback nor deactivate that plugin. I simply can not use nextcloud, because requirements were not checked before update. Upgrading the WHOLE server to 64bit is no option, because that would mean a fresh installation of the whole operating system.

As a programmer (C/C++) I'm confused, 64bit integer types do work on 32bit systems, and if you need even higher precision (you don't for time, struct types exist, you can store seconds and nanoseconds side by side), there are libs for integers with arbitrary precision. Forcing the WHOLE environment to change is an absolute NO GO. There are 32bit only architectures (armv7a, like beaglebone black or tons of other SBC) out there and a single plugin breaking nextcloud to run on those platforms at all? Get your stuff together, find a solution that works on 32bit architectures!

grumpy

@LeSpocky
Copy link

LeSpocky commented Jul 4, 2021

As a user: Okay, I just clicked update in nextcloud web ui like with every other app, which always worked flawlessly and now I'm stuck, because the web ui does not offer me to rollback nor deactivate that plugin. I simply can not use nextcloud, because requirements were not checked before update. Upgrading the WHOLE server to 64bit is no option.

I could disable the news app like this from commandline:

sudo -u www-data php ./occ app:disable news

@bcutter
Copy link
Author

bcutter commented Jul 4, 2021

As a user: Okay, I just clicked update in nextcloud web ui like with every other app, which always worked flawlessly and now I'm stuck, because the web ui does not offer me to rollback nor deactivate that plugin. I simply can not use nextcloud, because requirements were not checked before update. Upgrading the WHOLE server to 64bit is no option.

I could disable the news app like this from commandline:

sudo -u www-data php ./occ app:disable news

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.

sudo -u www-data php /var/www/nextcloud/occ app:disable news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
cd /home/user/downloads
wget https://github.com/nextcloud/news/releases/download/15.4.5/news.tar.gz
tar -xvzf news.tar.gz
sudo mv /var/www/nextcloud/apps/news /var/www/nextcloud/apps/news_broken
sudo mv /home/user/news /var/www/nextcloud/apps/
sudo ll /var/www/nextcloud/apps/ | grep news
sudo chown www-data:www-data -R /var/www/nextcloud/apps/news
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/AUTHORS.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/CHANGELOG.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/COPYING
sudo ll /var/www/nextcloud/apps/ | grep news
sudo ll /var/www/nextcloud/apps/news
sudo -u www-data php /var/www/nextcloud/occ app:list | grep news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php /var/www/nextcloud/occ upgrade
sudo -u www-data php /var/www/nextcloud/occ app:enable news
sudo -u www-data php /var/www/nextcloud/occ upgrade
[check NC News is working on the browser]
sudo rm -R /var/www/nextcloud/apps/news_broken
sudo ll /var/www/nextcloud/apps/ | grep news

@bcutter
Copy link
Author

bcutter commented Jul 4, 2021

As a user: Okay, I just clicked update in nextcloud web ui like with every other app, which always worked flawlessly and now I'm stuck, because the web ui does not offer me to rollback nor deactivate that plugin. I simply can not use nextcloud, because requirements were not checked before update. Upgrading the WHOLE server to 64bit is no option.

As a programmer (C/C++) I'm confused, 64bit integer types do work on 32bit systems, and if you need even higher precision (you don't for time, struct types exist, you can store seconds and nanoseconds side by side), there are libs for integers with arbitrary precision. Forcing the WHOLE environment to change is an absolute NO GO. There are 32bit only architectures (armv7a, like beaglebone black or tons of other SBC) out there and a single plugin breaking nextcloud to run on those platforms at all? Get your stuff together, find a solution that works on 32bit architectures!

grumpy

As I can understand the emotional power behind your words I´m not expert enough to share/support all details.

But I fully support your core message (which currently is my only hope to avoid 3 to 4 full (holi)days of OS upgrade and bugfixing): there must be another way to continue using NC News on 32 bit OS.

@SMillerDev
Copy link
Contributor

Maybe you as app maintainer can use your impact and propose app update mechanism changes so that dependencies are actually checked before updating apps.

We don't have more power than normal users just because we maintain an app. You should create an issue for this since it affected you.


To everyone mentioning that we're maintaining the app wrong, you can always fork it and maintain a 32bit compatible version. We've decided that this was the best approach but you don't have to.

@Grotax
Copy link
Member

Grotax commented Jul 5, 2021

News 15.x
This version is now end of life, it won't receive any updates anymore.
It will also not run on Nextcloud 22 by default, you may force to enable.

32bit vs 64bit
We discussed this with users and internally already and we came to the decision that we will only support 64bit, this decision is finite.

The updater
We didn't intend for the updater to still attempt the update even though the dependencies are not fulfilled, if you want this fixed you need to open an issue in nextcloud/server.

I can understand that for you this decision is annoying and requires more work, I hope that everyone will be able to upgrade to 64bit soon without major issues.

And in your discussions please keep in mind that the maintainers of this app do all this work in their free time as a hobby, all of us have regular jobs and other hobbies and social interactions. So keep it calm otherwise I will have to kick you out.

@LeSpocky
Copy link

LeSpocky commented Jul 5, 2021

I hope that everyone will be able to upgrade to 64bit soon without major issues.

This won't be possible for everyone. There are modern 32bit only architectures and people use them. Upgrade would not only mean a fresh operating system installation, but buying new hardware. You can still decide to not support 32bit, but 32bit-only hardware won't vanish just by hoping it will. 🤷🏼‍♂️

@Grotax
Copy link
Member

Grotax commented Jul 5, 2021

We know that, I personally don't care if 32bit hardware stays or not. But a 64bit Integer simply doesn't work on 32bit and there is nothing we can do to change that, the original issue came up because people reported integer overflows. As you can imagine there is no automated testing on a 32bit system in place.

And I'm aware that this means for some users that they have to buy new hardware but there is no way around that.

@shane-kerr
Copy link

I've got a not-ancient 32-bit system (Helios4, something like 2 years old), and am not super eager to replace the hardware.

If the issue really is resolution of time on 32-bit, then I'm happy to try to find a solution. Is this a PHP issue? (Keep in mind that doing math with numbers bigger than the word-size of a computer is something that has been done for at least 50 years, so we don't need any radical new technology.)

@Grotax
Copy link
Member

Grotax commented Jul 5, 2021

Yes it is a PHP issue, see #1320 for the details.

@LeSpocky
Copy link

LeSpocky commented Jul 5, 2021

The updater
We didn't intend for the updater to still attempt the update even though the dependencies are not fulfilled, if you want this fixed you need to open an issue in nextcloud/server.

See: nextcloud/server#27797

@velaja
Copy link

velaja commented Jul 5, 2021

sudo -u www-data php /var/www/nextcloud/occ app:disable news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
cd /home/user/downloads
wget https://github.com/nextcloud/news/releases/download/15.4.5/news.tar.gz
tar -xvzf news.tar.gz
sudo mv /var/www/nextcloud/apps/news /var/www/nextcloud/apps/news_broken
sudo mv /home/user/news /var/www/nextcloud/apps/
sudo ll /var/www/nextcloud/apps/ | grep news
sudo chown www-data:www-data -R /var/www/nextcloud/apps/news
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/AUTHORS.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/CHANGELOG.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/COPYING
sudo ll /var/www/nextcloud/apps/ | grep news
sudo ll /var/www/nextcloud/apps/news
sudo -u www-data php /var/www/nextcloud/occ app:list | grep news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php /var/www/nextcloud/occ upgrade
sudo -u www-data php /var/www/nextcloud/occ app:enable news
sudo -u www-data php /var/www/nextcloud/occ upgrade
[check NC News is working on the browser]
sudo rm -R /var/www/nextcloud/apps/news_broken
sudo ll /var/www/nextcloud/apps/ | grep news

thanks for this. It works except feeds do not refresh automatically anymore.
I have to use
occ news:updater:update-feed userid feedid

How do we refresh feeds automatically?

@ArnaudD-FR
Copy link

Glad to hear that 64bits is now mandatory!!!!!

I use raspberry pi OS and now my instance is blocked in maintenance mode!

Can you put in red/bold this new important requirement when upgrading news?!!! Who read the notes?

@Grotax
Copy link
Member

Grotax commented Jul 5, 2021

thanks for this. It works except feeds do not refresh automatically anymore.
I have to use
occ news:updater:update-feed userid @feedid

How do we refresh feeds automatically?

That is probably a known bug in the nextcloud job system that sometimes jobs stale for ~24h.
You might also want to check here https://nextcloud.github.io/news/faq/#feeds-not-updated

@Grotax
Copy link
Member

Grotax commented Jul 5, 2021

Glad to hear that 64bits is now mandatory!!!!!
I use raspberry pi OS and now my instance is blocked in maintenance mode!
Can you put in red/bold this new important requirement when upgrading news?!!! Who read the notes?

We never intended that the update gets rolled out on your server if you don't fulfill the requirements but there is nothing we can do about that, there is no way to test this.

And no we can't make a big red warning anywhere as it's not something supported by nextcloud. We can't interact with users of news in any way.

@SMillerDev
Copy link
Contributor

Who read the notes?

If you don't read them, would it even matter if we put it in bold/red?

@coelner
Copy link

coelner commented Jul 5, 2021

Could you explain the background to this time resolution problem? Do you need a 64bit OS because of the features of the 64bit hardware extension, or because it is mandatory for the stack on which the news app runs or is it the database?
If I get this right, you saved the time as string to omit the unixtimestamp?

I'm curious to understand this problem. As an embedded hardware developer I didn't see the flaw

@ArnaudD-FR
Copy link

ArnaudD-FR commented Jul 5, 2021

Who read the notes?

If you don't read them, would it even matter if we put it in bold/red?

Somewhere else than the notes, maybe during upgrade process, some prechecks...

But as Grotax said you have no way to interact with users. Bad point for nextcloud!

Nextcloud does not provide information about global server installation profiles like architecture before taking this kind of decision?

As far as I know NC didn't deprecated 32bits so I was expecting all apps to support the same requirements... That's why this was a huge surprise to discover this new requirement!

@ArnaudD-FR
Copy link

I've just checked and the official architecture when downloading raspbian OS is still armhf.... I would be curious to know how many users who are using raspberry pi as home server are impacted by this decision.

@SMillerDev
Copy link
Contributor

Could you explain the background to this time resolution problem? Do you need a 64bit OS because of the features of the 64bit hardware extension, or because it is mandatory for the stack on which the news app runs or is it the database?
If I get this right, you saved the time as string to omit the unixtimestamp?

I'm curious to understand this problem. As an embedded hardware developer I didn't see the flaw

#1320

Nextcloud does not provide information about global server installation profiles like architecture before taking this kind of decision?

Nextcloud doesn't do much for this app, other than host it. And the maintainers of apps do not have access to Nextcloud install statistics AFAIK.

@bcutter
Copy link
Author

bcutter commented Jul 5, 2021

I've just checked and the official architecture when downloading raspbian OS is still armhf.... I would be curious to know how many users who are using raspberry pi as home server are impacted by this decision.

I bet a lot. The more interesting question is: how many (of those) use the News app. Don't think there is overall metrics on that (privacy by design).

Even I internally hope there are a lot more users affected by this really bad / controversial 64 bit decision, I can only hope the maintainer team will rethink it.

It's like "Hey citizens, starting tomorrow we exchanged your right hand drive cars by left hand drive cars (or vice versa depending on the place on earth you live). It's only needed for one area of your country and we won't tell you bout this in advance. DEAL WITH IT." 😂

@SMillerDev
Copy link
Contributor

Even I internally hope there are a lot more users affected by this really bad / controversial 64 bit decision, I can only hope the maintainer team will rethink it.

Honestly if y'all are in agreement that I make bad decisions as a maintainer I'm fine stopping all together and just keeping my own private copy of news that works just for me. Drive-by negativity like this is actively killing open source, good job!

@ghtux
Copy link

ghtux commented Jul 5, 2021

For me it's like fuck, maybe in future I can't run news anymore on my Pi 32. To be honest news is my most used daily thing.
It's more sadness but for sure not offending any maintainer. Guess no one here hates foss or doesn't appreciate the work of the devs.

@joeheaven
Copy link

Honestly if y'all are in agreement that I make bad decisions as a maintainer I'm fine stopping all together and just keeping my own private copy of news that works just for me. Drive-by negativity like this is actively killing open source, good job!

I guess many people are mixing up two things:

  1. By design NC has the problem that apps can more or less break the whole installation, because they cannot pre-check requirements. That is not the fault of the maintainers here, while the consequences are (at least for some) monumental. In my case I cannot even revert to a working news-version, still getting errors after downgrade

  2. A decision has been teaken by the maintainers that affects a lot of people, but not themselves. I guess one of the issues here is that not everyone is able to follow the decision, i.e. the rationale behind is not convincing. To me it seems obvious that the 32bit integer limitations are problematic and had to be solved. However, maybe like others it is not clear to me why that had to lead to this dramatic consequnece. If only the resolution of the time stamp is the issue, I have the feeling that this could have been solved otherwise.

@SMillerDev: It is not against you but the way you might have underestimated the consequences (as combination of 1) and 2)). Again, the first one is not your fault.

@h4b4n3r0
Copy link

h4b4n3r0 commented Jul 5, 2021

As a user: Okay, I just clicked update in nextcloud web ui like with every other app, which always worked flawlessly and now I'm stuck, because the web ui does not offer me to rollback nor deactivate that plugin. I simply can not use nextcloud, because requirements were not checked before update. Upgrading the WHOLE server to 64bit is no option.

I could disable the news app like this from commandline:

sudo -u www-data php ./occ app:disable news

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.

sudo -u www-data php /var/www/nextcloud/occ app:disable news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
cd /home/user/downloads
wget https://github.com/nextcloud/news/releases/download/15.4.5/news.tar.gz
tar -xvzf news.tar.gz
sudo mv /var/www/nextcloud/apps/news /var/www/nextcloud/apps/news_broken
sudo mv /home/user/news /var/www/nextcloud/apps/
sudo ll /var/www/nextcloud/apps/ | grep news
sudo chown www-data:www-data -R /var/www/nextcloud/apps/news
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/AUTHORS.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/CHANGELOG.md
sudo chmod u-x,g-x,o-x /var/www/nextcloud/apps/news/COPYING
sudo ll /var/www/nextcloud/apps/ | grep news
sudo ll /var/www/nextcloud/apps/news
sudo -u www-data php /var/www/nextcloud/occ app:list | grep news
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php /var/www/nextcloud/occ upgrade
sudo -u www-data php /var/www/nextcloud/occ app:enable news
sudo -u www-data php /var/www/nextcloud/occ upgrade
[check NC News is working on the browser]
sudo rm -R /var/www/nextcloud/apps/news_broken
sudo ll /var/www/nextcloud/apps/ | grep news
  1. Does this maintain my current feeds, or can I export them anyhow before doing the rollback?

  2. Even if I was surprised by the dependency requirements, I want to thank you @SMillerDev and everybody who does contribute as well. News is my most used App and I really like it! So thank you for all your energy and power! 👍 ❤️

  3. Since there is a workaround to roll back I can deal with it. And I hope many of the complainers as well. Thanks you @bcutter for the commands!

@bcutter
Copy link
Author

bcutter commented Jul 5, 2021

@Id3aFly

  1. As long as the database hasn't been touched (which happens when 'occ upgrade' is successfully run - which won't happen because of the not fulfilled dependencies, so at least before this final step Nextcloud has some kind of "safety mechanism") all your feeds and elements and structure and so on is "safe". At least that's what my experience is, going through this 3 times meanwhile. So app and database tables are separated which allows to downgrade the app while database is untouched. Otherwise a roll-back of the database would be a lot more work and needs a fresh database backup. Your second question: I'm pretty sure looking at the right column of the database table where feeds are stored would quite easily allow to "export" them - directly from the database. I know no other way without a working News app. But as stated there's no need for that operation. Just in case... regularly backup your database ;-)

  2. Copy that, fully agree.

  3. Yes but as already mentioned downgrading only buys us some time, for the moment. In a few days, weeks or maybe months something won't work and will probably be fixed in a new series 16 release. Et voila: dead end.

Fingers crossed the dev experts talking on eye level here can figure out a way to not loose all 32 bit users. Hope dies last ;-)

@usrjense
Copy link

usrjense commented Jul 6, 2021

Is it correct to assume if you go for 1/100th second time resolution and not milliseconds, the problem is gone?

Seconds overflow an int32 (max value 2 147 483 647) in Y2038. Every higher precision (milliseconds, microseconds, ..) already overflowed.

Until that point I simply don't like the current decision to only support 64 bit OS.

As already said, there is no way we could test this automatically or verify it without setting up a 32-bit server for each developer. And that's exactly why we cannot ensure that it still works at all. The users would then always have to find out with each new release and report whether it still works at all.

The 32 / 64 bit discussion will end at least in 17 years?
nextcloud/server#27765

This was referenced Jul 7, 2021
@roteiro
Copy link

roteiro commented Jul 7, 2021

I had to revert to 15.4.5 as well.
Is it enough to manually set the 'installed_version' of news in the 'appconfig' table to '99.9.9' to prevent automatic/accidental updates of the app or is there a better way?

Just to add a quick feedback:
Although I have 64bit-capable hardware (RPi 4) I use the very solid Nextcloudpi images. At the moment they are 32 bit only. Switching to 64bit would mean that I have to reinstall and administrate the server all by myself, which is not really an option for me.
I use news on a daily basis and I'm very thankful for this great app and of course maintainers can do what they think is best, especially considering the fact that they develop the app in their free time. Still I hope the decision to block out all Nextcloudpi and other 32bit users will be reevaluated. I have the feeling that the impact of this decision was quite huge.
Did I understand correctly that #1337 would solve the problem for now but is not applied because it might complicate maintenance of the code in the future? Why not applying it now and go for the 64bit solution when problems actually occur? This would at least buy some time for 32bit users.

@SMillerDev
Copy link
Contributor

Why not applying it now and go for the 64bit solution when problems actually occur? This would at least buy some time for 32bit users.

Because cleaner code means less maintenance and means you might actually get updates when bugs occur because it isn't a 8 hour task to understand the code.

And if the end of life for python 2 has taught the open source community anything it should be this: delaying hard support choices makes them worse, not better.

@shane-kerr
Copy link

Would a solution using only float be accepted? That is, rather than using microseconds, use actual seconds? The code would actually be simpler, since the existing special-case handling for seconds could be removed.

The complication would be that it would require a schema change (converting INT to DOUBLE), as well as changing the currently stored microseconds to seconds. This is not a super complicated schema change though, and could be handled safely with any transactional database.

@idovitz
Copy link

idovitz commented Jul 8, 2021

This news application does not have nextcloud just as a underlying library, but as a whole framework. If the nextcloud project decided to only support 64-bit, this choice was completely understandable. Since Nextcloud does not require 64bit, it makes sense to take this as the starting point for this featured app. Thanks all for your work on this app, hope i can use it again on my rpi4.

@Brianetta
Copy link

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
Copy link

Don′t give up hope, everybody. The downgrade procedure #1423 (comment) provided by @bcutter worked flawlessly for me, too. Just give it a try.

@rugk
Copy link

rugk commented Jul 9, 2021

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… 😜 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 f3e249a) 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. 😊

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… 😉

@rugk
Copy link

rugk commented Jul 9, 2021

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
Copy link

Jayky commented Jul 16, 2021

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
Copy link

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
Copy link
Author

bcutter commented Jul 26, 2021

I'm wondering what the current progress is.

What about @shane-kerr 's last question in #1423 (comment) @SMillerDev ?

@ChristianKrausse
Copy link

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
Copy link
Member

nachoparker commented Aug 10, 2021

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
Copy link

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
Copy link

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
Copy link

velaja commented Aug 10, 2021

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
Copy link
Contributor

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
Copy link
Member

Grotax commented Aug 10, 2021

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

@Grotax Grotax closed this as completed Aug 10, 2021
@nextcloud nextcloud locked as too heated and limited conversation to collaborators Aug 10, 2021
@anoymouserver
Copy link
Contributor

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)

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

No branches or pull requests