Meecast / meecast

MeeCast - multiplatform highly customizable open source weather forecast client based on OMWeather code. Copyright (C) 2006-2024
https://meecast.org/
GNU Lesser General Public License v2.1
30 stars 19 forks source link

MeeCast fails to retrieve data for some stations from Weather.com #35

Closed Olf0 closed 4 years ago

Olf0 commented 4 years ago

Observation

Since yesterday I observed that MeeCast fails to retrieve data from Weather.com for three of the four stations I have subscribed. I observed this issue at the events-view and lockscreen first (per MeeCast Event View, MeeCast Demon and Analog Clock for Lockscreen), as old (starting from the day before yesterday) weather data was displayed there. When MeeCast is started manually, it displays "Looks like there's no info for this location. [Try to update]" for these three stations (see screenshot 1, far below). Though I am not really sure about the fourth station (Berlin) from Weather.com, as the data displayed for it is one day old (and starts yesterday, so it may also be affected).

Bug 1

Well, the original one: MeeCast fails to retrieve data for stations from Weather.com since 2020-06-02 / -03.

Bug 2

Hence I started MeeCast at the command line per harbour-meecast 2>&1 | tee tmp/meecast-failure_2020-06-04.log.txt to see what is happening, when I hit the button labeled "Try to update": MeeCast crashes! See meecast-failure_2020-06-04.log.txt To see the regular debug output of MeeCast, I started MeeCast again, but did not push the "Try to update"-button and then killed MeeCast by a swype from the top screen edge: meecast-killed_2020-06-04.log.txt Mmmh, something goes severely wrong, resulting in a Buffer overflow which looks like the reason for MeeCast to be terminated ("crashing"). But ultimately I believe MeeCast's data parser should not cause a buffer overflow in the first place, no matter what data it is fed with.

Bug 3

Suspecting that some API or data format change by Weather.com is the root cause, I tried one of the failing stations (when using Weather.com) using Foreca.com as data provider. This is working fine, but I stumbled over a slight error: MeeCast displays the freshly downloaded data as "Last update: 18417 days ago" (see screenshot 2, right below)! Screenshot_20200604_002

Screenshot 1

Screenshot_20200604_001

P.S.: Tested on an Xperia X with SailfishOS 3.2.1 and MeeCast for SailfishOS 1.1.25-16.

P.P.S.: @vasvlad, please ask for anything specific, if more information or testing would be helpful for you; I would be glad to contribute that in order to get MeeCast working again.

Olf0 commented 4 years ago

Now retrieving the weather data for "Berlin" from Weather.com also fails in the same way as the other stations from Weather.com on my Xperia X, plus (newly tested) a Jolla 1 phone with SailfishOS 2.2.1 and an FxTec Pro¹ with SailfishOS 3.3.0.

Olf0 commented 4 years ago

Oh, Bug 3 was already filed as issue #17 (and closed, because it shows up rarely).

vasvlad commented 4 years ago

Fixed in the version 1.1.26

Olf0 commented 4 years ago

@vasvlad, thank you very much for fixing this issue. MeeCast for SailfishOS 1.1.26-4 was offered as an update in Storeman: It installed and is working fine.

But MeeCast-Daemon 1.14-1 is not offered as an update on my Xperia X@SFOS3.2.1 (with v1.13-1 installed and running) in Storeman. Hence I now can update stations provided by Weather.com manually in MeeCast again (with the recent MeeCast release), but automatic updates still fail for these stations.

Because a pkcon refresh did not resolve this, I downloaded the current RPM per pkcon download harbour-meecast-daemon and looked at its dependencies per rpm -q --requires harbour-meecast-daemon-1.4-1.armv7hl.rpm: Too many dependencies for me to determine easily if something is only provided by SFOS > 3.2.1. So I tried pkcon install-local harbour-meecast-daemon-1.4-1.armv7hl.rpm, which results in "Fatal error: nothing provides libm.so.6(GLIBC_2.29) needed by harbour-meecast-daemon-1.4-1.armv7hl".

Well, I can workaround this by using stations from Foreca.com (instead of Weather.com) until I upgrade to SFOS >= 3.3.0, but I wonder if this apparently new dependency is really necessary for the single change from v1.13-1 to v1.14-1 or if it was rather accidentally introduced (e.g. by using the current SDK)?

Olf0 commented 4 years ago

BTW (a little off topic, but I stumbled across it when browsing through the recent commits): Where do I see the visibility / visible value, i.e. which label does this value carry at the GUI?

vasvlad commented 4 years ago

@vasvlad, thank you very much for fixing this issue. MeeCast for SailfishOS 1.1.26-4 was offered as an update in Storeman: It installed and is working fine.

But MeeCast-Daemon 1.14-1 is not offered as an update on my Xperia X@SFOS3.2.1 (with v1.13-1 installed and running) in Storeman. Hence I now can update stations provided by Weather.com manually in MeeCast again (with the recent MeeCast release), but automatic updates still fail for these stations.

Because a pkcon refresh did not resolve this, I downloaded the current RPM per pkcon download harbour-meecast-daemon and looked at its dependencies per rpm -q --requires harbour-meecast-daemon-1.4-1.armv7hl.rpm: Too many dependencies for me to determine easily if something is only provided by SFOS > 3.2.1. So I tried pkcon install-local harbour-meecast-daemon-1.4-1.armv7hl.rpm, which results in "Fatal error: nothing provides libm.so.6(GLIBC_2.29) needed by harbour-meecast-daemon-1.4-1.armv7hl".

Well, I can workaround this by using stations from Foreca.com (instead of Weather.com) until I upgrade to SFOS >= 3.3.0, but I wonder if this apparently new dependency is really necessary for the single change from v1.13-1 to v1.14-1 or if it was rather accidentally introduced (e.g. by using the current SDK)?

Please try the version 1.5.

vasvlad commented 4 years ago

BTW (a little off topic, but I stumbled across it when browsing through the recent commits): Where do I see the visibility / visible value, i.e. which label does this value carry at the GUI?

You can see it on page 'Now' Screenshot_20200610_002

Olf0 commented 4 years ago

Please try the version 1.5.

Which installed fine on SFOS 3.2.1. And I trust you that it will be working fine, too. Thanks a lot!

You can see it on page 'Now'

Oh, I never tapped above the day list (only on specific days, until now), hence I have never seen this despite using MeeCast since 2015. Thanks for this hint. It is almost like an "easter egg" for me. :)

Olf0 commented 4 years ago

... as always, MeeCast and meecast-deamon were working fine after this update. But unfortunately Weather.com broke it twice since then, again. And you adapted MeeCast / meecast-deamon quickly to their changes, each time.

Thus I pick the chance to say: Many, many thanks for maintaining MeeCast, its deamon and the eventview component for SailfishOS so diligently all these years!