spotfiresoftware / SpotfireDockerScripts

Provide Scripts for Containerizing Spotfire Server Components
BSD 3-Clause "New" or "Revised" License
8 stars 5 forks source link

NodeManagerWPDocker: (line) charts never finish loading when running webplayer on docker #3

Open bcmedeiros opened 4 years ago

bcmedeiros commented 4 years ago

I've set up a Spotfire Server successfully using a variant of SpotfireServerLinuxDocker, it's going great. I also set up the Web player on a windows node group, using NodeManagerWPDocker as the baseline.

Exact docker image, as well as the install log when generated during docker build:

Dockerfile.txt nm_install-docker.txt

Web player seems to work, dashboards open fine, but some charts are not rendered at all. We can confirm that any line chart is broken, but I couldn't say for sure it's limited to that.

Here is an example of what shows in Spotfire Desktop: image

Here is what shows in the web player: image

It's also worth mentioning that no errors show up in the logs when the problem happens, no error message at all. The charts just keep showing this loading animation forever, without any clue of what is really happening.

After dropping docker for the Web Player node (but still running the server on docker Linux) and installing the web player node in a dedicated Windows Server 2019, the problem doesn't seem to manifest.

PS: Probably this is just outdated docs, but during this journey, I ended up founding this:

image

If this "Containers are not supported" is true, what's the point of this repository? Why no mentions at all about the possibility of huge problems like this one when using docker?

Trying to use this docker support proved itself to be a huge waste of time, In my experience Spotfire is not prepared to run as containers at all (not only because of this issue, but other thinks such as not being able to set node id, etc).

pmckinnis commented 4 years ago

Thank you for the information.

First off regarding the support for containers, I apologize for not making it clear on the GitHub repository regarding the support for containers. Containers are not officially supported, but I created these scripts which have been used by various customers to create containers for Spotfire. The linked TIBCO Spotfire Server Docker Scripts TIBCO Community article has a disclaimer at the top. I will add the same disclaimer to the GitHub repository information.

I have not heard from others regarding the issue with Line Charts, but I am curious about what is happening. Thank you for the docker file and information. I will investigate when I get a change which unfortunately may be a couple of weeks. I have not tested every version of Spotfire nor of Windows Server, so I will first see if I can duplicate your issue with the information you have provided. Have you tried any other versions of Spotfire or Windows OS?

Thanks, Peter

bcmedeiros commented 4 years ago

I will add the same disclaimer to the GitHub repository information.

Thanks for that, it would be nice to know how "beta" this is, I believe it would allow people to make more informed decisions.

so I will first see if I can duplicate your issue with the information you have provided. Have you tried any other versions of Spotfire or Windows OS?

About versions, I tried Spotfire Server/WP 10.4, 10.9 (first upgrade trying to fix the problem) and finally 10.3.9 (a full reinstall also trying to get rid of the problem), all of them leading to the same problem. Everything was running on the latest EKS 1.15 windows 2019 server nodes EMIs, you can try to find any specific Windows version number you need from AWS docs.

Let me know if you need anything else.

bcmedeiros commented 4 years ago

@pmckinnis any news on that?

pmckinnis commented 4 years ago

@brunojcm Your question came at a perfect time. I was planning on posting an update today as I determined some possible resolutions last Friday. The basic issue is that Web Player is not supported on Windows Server Core since it is missing some elements that Web Player needs. Specifically, it is missing some DLLs to act as a rendering device.

While, like you, I did not see any errors in the Web Player log, one may see an error message stating that "No hardware rendering device is available for this operation."

One solution is to use a Docker Windows image for a more complete version like mcr.microsoft.com/windows:1809 or mcr.microsoft.com/windows:1909 depending on the host OS one is working on. Unfortunately, these images are at least 2 times larger than the Windows Server Core.

Based on searching the internet, I found another solution/workaround which works in my test environment for Windows Server Core. I was able to get these charts to work in Web Player on Windows Server Core by copying the d3d10warp.dll file from C:\Windows\System32 and C:\Windows\SysWOW64 to the same location in the Docker image. Note: the d3d10warp.dll in the System32 and SysWOW64 directories are different so must be copied separately.

One note about the map chart is that the container will need access to geoanalytics.tibco.com since that is where the map tiles come from.

I am not ready to put up new scripts yet because I am in the process of parameterizing the Spotfire Server and Node Manager (Web Player) container creation to make the images more generic and have more configuration be done during container creation.

Thanks, Peter