Weather Widget Issues

CMS Version

Version 2.1.0

Installation Method

Docker Install

Operating System

Ubuntu Server

Issue

Hello, we have rebuilt our Xibo instance twice now and both times the weather widget works for a couple days and then breaks. Basically, the weather widget starts showing “Unexpected Error, please contact support.” in the layout previews. And shortly thereafter, the clients that show weather data start to show nothing but a black screen. Logs start to show “[47.html] Download error: [HTTP] 500 Internal Service Error”. API calls to dark sky completely stop.

Can you confirm that you have setup the Weather Widget as per the manual and created an account with DarkSky: https://xibo.org.uk/manual/en/media_module_weather.html

Thank you

Natasha, from what I can tell, we have everything setup correctly. I am using the templates already provided within the Widget. Additionally, we have the API setup correctly in our DarkSky and Xibo portal. I have even added the “Powered by DarkSky” into the layout name like the disclaimer says. Still a no go.

When we first set everything up, the widget worked perfectly and as expected for 3 or 4 days. Then it just quits with the errors I provided.

Side note: Logging into the DarkSky portal today I see that they have been purchased by Apple. But will be providing API subscribers with access until the end of 2021.

Yeah we also saw that this morning, its bad news for Xibo users, but we will find an alternative source of data.

I don’t think your problem is related though, if you already have an API key you are good to use that until 2021.

[47.html] Download error: [HTTP] 500 Internal Service Error

This should show up in the CMS logs under the “XMDS” channel filter - please can you have a look in there to see if there are any errors reported. Or alternatively use the report fault process to get a troubleshoot.zip file.

Thanks

Dan, here is what I am seeing in the logs under XMDS -
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction

J

Have you for a lot of Display’s hitting your CMS? Or perhaps multiple Players configured with the same hardware key?

A deadlock error like that is usually an indication that the CMS is under load and unable to handle the requests fast enough.

I have very few displays, 6 right now to be exact. None of them should have the same hardware key and none of them are showing the same layouts (2 ppts, 2 web, 1 weather, 1 testing). There is only one showing the weather layout.

I will verify that none are sharing a hardware key.

J

Verified that there are no shared hardware keys.
J

Still looking for a solution. Thanks.

To be honest, I am not sure.

Lets firstly work out whether the deadlock errors are a one off occurrence, or something happening frequently.

Can you look through the logs to see how often they occur? Is there any surrounding information?

What cache period have you got configured for your Weather module?

When it happens next in the Layout Designer can you run through the report fault process and get a troubleshoot.zip file for us to look at?

Cache is set to 60/m
I actually haven’t gotten any deadlock errors today. I had the weather layer turned off until about 20 min ago when I started testing for you again.

Here is what I see in the troubleshooting logs when I try to go into the layer and do a “Get Forecast” call and then re-publish the layout -

Unknown error during getResource. E = Concurrent record locked, time out.

[55.html] Download error: [HTTP] 500 Internal Service Error

Unable to reach Forecast API: cURL error 28: Operation timed out after 20001 milliseconds with 0 out of 0 bytes received (see libcurl - Error Codes)


J

Unable to reach Forecast API: cURL error 28: Operation timed out after 20001 milliseconds with 0 out of 0 bytes received (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

That’s your problem I suspect - until you get one successful call you’ll get locks (so that we don’t repeatedly call the API).

Is there any reason your CMS wouldn’t be able to get access to the API? Can you, for example, make a request from the host machine successfully?

Yes. We have had many successful calls to the API from the Xibo Ubuntu server itself and from within the container. As I mentioned in the first post, everything works great as a fresh new server. But let it sit for a couple days, and it breaks. We rebuilt it twice to prove this out.

Strange.

When it happens again, can you try restarting the container rather than rebuilding it?

It seems to me that a request timeout after 20 seconds would indicate a network issue from inside the container - Xibo uses curl to call the DarkSky API.

This has all been rewritten in 2.3.3 (due to DarkSky going away), so it may well be worth trying an upgrade.

We have tried restarting everything. The weather widget never starts working again. Its permanently down.

We will try upgrading to see if this changes anything. Thanks.

Honestly, I don’t think updating will help, but its worth a try anyway.

Everything i’m reading about cURL error 28 points to firewall, dns or other network problems. It sounds like its a networking problem in the container, but why that wouldn’t be solved on restart I don’t know.

You might need to exec into the container and run a nslookup/ping command to the API to see if its still accessible or not.

Dan, is there a specific container to be looking in?

All requests are made from the web container - cms-web in the standard docker-compose.yml file.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.