Xibo Android Player: Unable to start XMR queue: class java.lang.UnsupportedOperationException

Hi,
I’m running the Xibo Docker (1.8.2) with remote mysql on CentOS 7. Xibo CMS is running fine and is able to connect to the MySQL DB. The android player can do the initial connection to the CMS as well but fails to download content.

I get the following errors alternatively in the Display management log:

  1. Unable to start XMR queue: class java.lang.UnsupportedOperationException
  2. XMR unresponsive, issue reconfigure.

XMR is enabled on port 9505 (public) and 50001 (private). Xibo CMS is running on local port 8989 with Apache doing a reverse proxy on SSL only (port 80 isn’t enabled).

Screenshot of error:

Output of docker ps -a:
IMAGE COMMAND CREATED STATUS PORTS NAMES xibosignage/xibo-cms:release_1.8.2 "/entrypoint.sh" 13 minutes ago Up 13 minutes 127.0.0.1:8989->80/tcp xibodocker_cms-web_1 xibosignage/xibo-xmr:release_1.8.2 "/entrypoint.sh" 13 minutes ago Up 5 minutes 9505/tcp, 0.0.0.0:9505->50001/tcp xibodocker_cms-xmr_1

Where am I going wrong?

Thank you.

Assuming that XMR public address is correctly configured in CMS Settings, that’s all you should need to do in docker installation regarding it.

You can issue the XMR reconfigure on the display:
Displays page -> Edit display -> Advanced tab -> Reconfigure XMR & Save the form.

I’m not sure if that’s the only problem there, you can enable auditing on the Displays (also on advanced tab) and see if there are any other errors logged.

When I attempt that, I get the following message:

This Player is not configured or ready to receive push commands over XMR. Please contact your administrator.

Are you using 1.8 series player?

Yes - I’m using the Xibo_for_Android_v1.8_R102.apk.

If you’re using 1.8.2 CMS and R102 player and XMR public address is correctly configured in CMS settings, then I’m not certain why would see this message then.

XMR aside, that will not be the root cause behind your downloading problem there, at a guess it will be something with your reverse proxy config, if you’d enable auditing on the display, there should be error messages logged that should help us to tell you where exactly is the problem.

Thanks Peter.

Is there any way to verify that the XMR public address is working properly? For example, can I telnet to mydomain.com:9505 and expect a response?

UPDATE: I can telnet to port 9505 successfully when polling the server via local subnet IP as well as public FQDN.

Even PortQuery returns listening on 9505.

On local subnet IP:

Starting portqry.exe -n 10.1.2.41 -e 80,443,9505 -p TCP ...
Querying target system called:

 10.1.2.41

Attempting to resolve IP address to a name...


IP address resolved to xxx.mydomain.com

querying...

TCP port 80 (http service): LISTENING

TCP port 443 (https service): LISTENING

TCP port 9505 (unknown service): LISTENING
portqry.exe -n 10.1.2.41 -e 80,443,9505 -p TCP exits with return code 0x00000000.

Through Public IP / FQDN:

Starting portqry.exe -n xxx.mydomain.com -e 80,443,9505 -p TCP ...
Querying target system called:

 xxx.mydomain.com

Attempting to resolve name to IP address...

Name resolved to 61.x.x.x

querying...

TCP port 80 (http service): LISTENING

TCP port 443 (https service): LISTENING

TCP port 9505 (unknown service): LISTENING
portqry.exe -n xxx.mydomain.com -e 80,443,9505 -p TCP exits with return code 0x00000000.

I think we can conclude that the XMR port is open and the service is responding. Is there any other way to check?

Secondly, I have turned on Audit logs for the Display. Where do I find the output? In the Logs section?

The following output is appearing in the Display Management screen:

ID 	Date 	Message
10442 	2017-10-11 10:02 	Unable to start XMR queue: class java.lang.UnsupportedOperationException/xxx.mydomain.com
10439 	2017-10-11 10:02 	XMR unresponsive, issue reconfigure.
10388 	2017-10-11 09:56 	Unable to start XMR queue: class java.lang.UnsupportedOperationException/xxx.mydomain.com
10385 	2017-10-11 09:56 	The Schedule has not been downloaded yet.
10382 	2017-10-11 09:56 	Unable to prepare next layout and unable to show splash screen. Unable to create layout
10379 	2017-10-11 09:56 	/data/data/uk.org.xibo.client/files/0.xlf: open failed: ENOENT (No such file or directory)
10376 	2017-10-11 09:56 	/data/data/uk.org.xibo.client/files/0.xlf: open failed: ENOENT (No such file or directory)
10373 	2017-10-11 09:56 	Cannot set the next Layout from the Schedule. Schedule Invalid
10370 	2017-10-11 09:56 	/data/data/uk.org.xibo.client/files/0.xlf: open failed: ENOENT (No such file or directory)
10328 	2017-10-11 09:54 	Unable to start XMR queue: class java.lang.UnsupportedOperationException/xxx.mydomain.com

UPDATE:

I’m able to fetch content via the client now. I installed a Windows client separately on my own laptop and tested the connectivity with it. The clue was in the Xibo Temp Library folder in the file requiredFiles.xml.

The client was attempting to access xdms.php using non-secure http protocol.

<?xml version="1.0" encoding="utf-8"?>
<RequiredFiles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RequiredFileList>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>35</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>afb33470c582079834acd8b9f979ce1a</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=35</Path>
      <SaveAs>35.otf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>19684</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>29</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>86aadd0451f9e7dafa957e1e61dd2ed7</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=29</Path>
      <SaveAs>29.ttf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>116580</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>23</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>621ba5aaf66e52f3def0cf69807104b9</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=23</Path>
      <SaveAs>23.otf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>30060</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>17</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>ffcde6f93e4ac6cb6d4dddad45d344db</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=17</Path>
      <SaveAs>xibo-dataset-render.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>1585</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>11</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>b9d7742384bdf912c51b6a1b5d674f7a</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=11</Path>
      <SaveAs>flipclock.min.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>21107</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>59</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>5e0a5193437b2e5bcc86026f074a16da</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=59</Path>
      <SaveAs>fonts.css</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>387</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>5</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>212480cf1292db459557814e2d7a571d</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=5</Path>
      <SaveAs>jquery-cycle-2.1.6.min.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>28876</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>50</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>6698a483d207adf4dc92682732356d9a</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=50</Path>
      <SaveAs>xibo-text-render.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>11041</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>44</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>758c582a7fd2f30ec9dd8f91803a9882</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=44</Path>
      <SaveAs>compatibility.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>18126</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>38</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>dec9b89b936438760291e401c09f52aa</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=38</Path>
      <SaveAs>pdf.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>333388</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>32</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>58963d3a57da7a70ac36d331416746c5</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=32</Path>
      <SaveAs>32.ttf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>45884</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>26</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>d321fa78bb7190a8ca7e14213ef63203</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=26</Path>
      <SaveAs>26.otf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>27644</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>20</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>6152d3e99b2c61bb3db365d108337483</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=20</Path>
      <SaveAs>xibo-image-render.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>2988</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>14</Id>
      <LastChecked>2017-10-11T11:41:43.2591441+07:00</LastChecked>
      <Md5>7fb2977f1880dba96af9eab6ad088807</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=14</Path>
      <SaveAs>xibo-layout-scaler.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>4460</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>8</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>67bb26c11dba6c366834e65f5933aff2</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=8</Path>
      <SaveAs>moment.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>160251</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>53</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>d59f5fc84ef7747f27baddc07fe81487</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=53</Path>
      <SaveAs>xibo-webpage-render.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>4832</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>2</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>3c9137d88a00b1ae0b41ff6a70571615</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=2</Path>
      <SaveAs>jquery-1.11.1.min.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>95785</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>47</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>2286bb4f44d9ea301131a25c5204ca0a</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=47</Path>
      <SaveAs>jquery.marquee.min.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>2248</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>media</FileType>
      <Id>41</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>926affd0ae3d3b69e6071b26875638c8</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=M&amp;itemId=41</Path>
      <SaveAs>pdf.worker.js</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>512000</ChunkSize>
      <Size>1337459</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>layout</FileType>
      <Id>5</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Md5>a80104d2ef45b5bd4b36c93fcd039b90</Md5>
      <Path>http://xxx.mydomain.com/xmds.php?file=YPistIyWqOiFjxpG072srNjcGcOpViRU&amp;displayId=8&amp;type=L&amp;itemId=5</Path>
      <SaveAs>5.xlf</SaveAs>
      <Downloading>true</Downloading>
      <Complete>false</Complete>
      <Http>true</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>0</ChunkSize>
      <Size>1624</Size>
      <Retrys>0</Retrys>
      <LayoutId>0</LayoutId>
    </RequiredFile>
    <RequiredFile>
      <FileType>resource</FileType>
      <Id>5</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Path>5.htm</Path>
      <SaveAs>5.htm</SaveAs>
      <Downloading>false</Downloading>
      <Complete>true</Complete>
      <Http>false</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>0</ChunkSize>
      <Size>10000</Size>
      <Retrys>0</Retrys>
      <LayoutId>5</LayoutId>
      <RegionId>5</RegionId>
      <MediaId>5</MediaId>
    </RequiredFile>
    <RequiredFile>
      <FileType>resource</FileType>
      <Id>8</Id>
      <LastChecked>2017-10-11T11:41:43.2596486+07:00</LastChecked>
      <Path>8.htm</Path>
      <SaveAs>8.htm</SaveAs>
      <Downloading>false</Downloading>
      <Complete>true</Complete>
      <Http>false</Http>
      <ChunkOffset>0</ChunkOffset>
      <ChunkSize>0</ChunkSize>
      <Size>10000</Size>
      <Retrys>0</Retrys>
      <LayoutId>5</LayoutId>
      <RegionId>8</RegionId>
      <MediaId>8</MediaId>
    </RequiredFile>
  </RequiredFileList>
  <CurrentCacheManager>
    <_files>
      <Md5Resource>
        <md5>5c8285ccafb8932c414e2a9ea377d5e3</md5>
        <path>5.htm</path>
        <cacheDate>2017-10-11T11:16:40.4769362+07:00</cacheDate>
      </Md5Resource>
      <Md5Resource>
        <md5>2db100a33979ed295faf296a8bf3048c</md5>
        <path>8.htm</path>
        <cacheDate>2017-10-11T11:16:40.4794421+07:00</cacheDate>
      </Md5Resource>
    </_files>
  </CurrentCacheManager>
</RequiredFiles>

As per your suggestions in the installation manual, I had http turned off completely in favour of https. Once I re-opened http port, the content started downloading.

Same goes for the Android client.

This is definitely a BIG STEP UP from getting no content at all. :grinning:

It is possible to let the clients fetch content over https only? I attempted turning on Force HTTPS on in Xibo CMS settings - but since I’m using Apache reverse proxy to serve https here, turning on this setting in the CMS sends the page into a redirect loop and the CMS stops loading altogether. How do I accomplish this?

Secondly, the XMR issue still appears to remain. If you see the attached screenshot - the content is downloading now, but XMR error message is still there.

Thanks,
Joe

That is your problem. You’re mapping port 9505 of the host machine to port 50001 of the container. The two ports aren’t interchangeable.

You need to map port 9505 of the host to port 9505 of the container, and then the network we create with docker-compose should allow port 50001 to be available to the CMS.

Certainly what that’s showing there isn’t the standard configuration we ship, so I wonder if you’re not using compose? Or what modifications you’ve made if you are please?

Alex - thanks a million. That totally fixed it.

I’m using docker-compose with the only difference here being the ports and remote mysql. Somewhere along the way I didn’t understand the port structure for XMR correctly and did that forced mapping from 9505 → 50001 in the cmx-xmr section of this file.

cms_remote-mysql.yml

version: "2.1"

services:
    cms-xmr:
        image: xibosignage/xibo-xmr:release_1.8.2
        ports:
            - "10.1.2.41:9505:9505"
        restart: always
        env_file: config.env
        mem_limit: 256m
    cms-web:
        image: xibosignage/xibo-cms:release_1.8.2
        volumes:
            - "./shared/cms/custom:/var/www/cms/custom"
            - "./shared/backup:/var/www/backup"
            - "./shared/cms/web/theme/custom:/var/www/cms/web/theme/custom"
            - "./shared/cms/library:/var/www/cms/library"
            - "./shared/cms/web/userscripts:/var/www/cms/web/userscripts"
        restart: always
        links:
            - cms-xmr:50001
        environment:
            - XMR_HOST=cms-xmr
        ports:
            - "127.0.0.1:8989:80"
        env_file: config.env
        mem_limit: 1g

Once I changed it back to 9505->9505, works perfectly.

Now the display list shows XMR registered. This should confirm that things are OK, right??

Regards,
Joe

Something very weird though…

While the display list shows XMR Registered as a check mark, the Display > Manage screen still keeps showing the XMR errors:

Is tcp://10.1.2.41:9505 what you have configured for the XMR public address?

XMR Registered just means the Player has sent it’s public key to the CMS. It doesn’t indicate connection.

It looks like you’ve bound the XMR public port to an internal only interface. That is designed to be publicly facing, so I’d expect it to be bound just “9505:9505”

Not really - the public address is a fqdn which maps to that IP.

So the XMR public address is registered as tcp://xxx.mydomain.com:9505.

xxx.mydomain.com:9505 uses NAT on our perimeter firewall to map onto 10.1.2.41:9505.

You’re sure you’re not just seeing old log messages? They can take some time to be sent to the CMS. What does the Player status screen show if you look directly at that?

I’ve removed the internal IP binding. Now the containers look like:

IMAGE                                COMMAND             CREATED             STATUS              PORTS                               NAMES
xibosignage/xibo-cms:release_1.8.2   "/entrypoint.sh"    6 seconds ago       Up 5 seconds        127.0.0.1:8989->80/tcp              xibodocker_cms-web_1
xibosignage/xibo-xmr:release_1.8.2   "/entrypoint.sh"    7 seconds ago       Up 6 seconds        0.0.0.0:9505->9505/tcp, 50001/tcp   xibodocker_cms-xmr_1

I don’t think they’re old messages. If you look at the timestamps - they keep progressing…

The player is loading content just fine and here’s output of STATUS screen:


There’s no errors shown on the status screen, and I’d expect the same ones to be shown if it were still a problem.

With the redactions you’ve made it’s impossible to give any more insight I’m afraid.

The simplest thing is to show a layout with a clock on it, and then request a screenshot. If the screenshot comes back within a few seconds, and has the correct time on it, then XMR is absolutely working.

Can I upload the pics somewhere private? I just don’t want oto give out the domain ip etc. publicly.

Meanwhile I’ll try the screenshot and get back.

Thanks.

If you want private commercial support, it’s something the project sponsors offer: https://xibo.org.uk/help

Thanks. I tried the screenshot method and I am getting back different screenshots. Does that prove XMR is working and I can disregard the error message?

Were using a big pool of Android licenses - I can continue with the commercial support option, if required.

Sincere thanks.

If the screenshot is coming back straight away, then yes it proves it’s working. If it’s coming back after a delay (ie the collection interval), then it’s not working.