Probably bug, 1.8rc3 windows player hangs

After playing videos for about 6 hours xibo client hangs.
Configuration: IIS 7.0 1.8rc3 CMS
Client is installed on windows 10.

On that client PC I have two displays: First (main) - 1080x1920, second 1920x1080
I configured two Xibo players accordingly to FAQ.
The layout for the second display has 7 .mp4 videos playing consequently in full screen mode.
Everything worked fine until the second display hanged.
I looked in error column inside “manage” display:
Every minute the display (while working normally) shows this error in CMS:
2850 2017-03-13 18:07 SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column ‘page’ at row 2

The first display doesn’t show this error.
At that time I was not in debugging mode. Right now I am in debugging mode.
After I manually restarted second display - it works again perfectly, but still sends these errors to CMS.

Thank you.

If you are running 2xdisplays you will also need to manually configure the XiboWatchdog for both displays, otherwise it will only be monitoring 1 application process.

What CMS version do you have?

About watchdogs: I agree that I need to manually configure wathdogs, but I haven’t found how to perform this configuration in Xibo manual. Could you please provide a step-by-step procedure?

Below I attached my xibo folder structures and watchdog.config files.

About CMS: CMS is 1.8rc3. IIS 7.0. PHP 5.6.30

I am experiencing a similar SQL error, which I reported here.

I am on RC1 and have not yet tried moving to RC3. I have a client-side log file I could share if it’s useful. I resolved the issue in the short term by disabling client-side logging. I was going to wait for the 1.8 production release and see if the problem went away.

If I can help at all with problem determination on this, please let me know!

1 Like

You are almost there already, you just need to rename the watchdog.exe / config files, the same as you have done with the XiboClient. You would then need to start those manually somehow (add them to startup for example).

As Peter said in the other topic - you could enable auditing on the Display record to get further details on this issue. The error is being logged when a message from the player is being sorted and recorded as a log message against the display - enabling auditing on the display logs the entire log request from the player, and therefore will make it easy to see which specific message is causing that error.

You do that on the advanced tab of the display record.

A player log would contain the source message causing the problem, but it would be very hard to pick that out, without any frame of reference.

I am back to Watchdog App in multy monitor configuration.

I hadn’t been able to launch more than one instances (renamed .exe’s) of watchdog until I found out that there was a protection in source code.

Here is the line in “main”:
static Mutex mutex = new Mutex(true, “Watchdog”);

If a second instance launches and sees the same named mutex - it automatically exists.

I have changed this line to:

static Random my_rnd = new Random(DateTime.Now.Millisecond);
static Mutex mutex = new Mutex(true, “Watchdog” + my_rnd.Next(1,int.MaxValue).ToString());

Now I can launch as many watchdogs as I want.

Question to xibo developers:
My configuration is: one PC - two monitors.
Are the following steps right to use xibo watchdogs (after my modification of source code)?:

  1. Create watchdog_1.exe, watchdog_2.exe.
  2. Configure all pathes in watchdog_1.exe.config and watchdog_2.exe.config, so they both can launch xibo_player_1.exe and xibo_player_2.exe
  3. Put watchdog_1.exe and watchdog_2.exe in startup folder (or alternativly set-up task scheduler in windows to start watchdog_1.exe and watchdog_2.exe after windows logon).

Thank you.

Ah the MUTEX, of course… Good spot.

Ultimately I think it would be nicer if a single watchdog could monitor multiple players, but until such a time, then your proposed steps are correct.

I haven’t fully experimented yet.
Won’t be there such a situation that I launch watchdog, watchdog launches player, player launches watchdog and so on…

Thank you.

Yeah, that is a possibility - although if you make the mutex the name of the watchdog executable, then I think this would be mitigated?

This is exactly the change I made to mine in order to get it to work with 2 screens and it worked fine after that.

1 Like