nielsboecker / HoloRepository-HoloLens

A system for transforming medical imaging studies into holograms, storing them in the cloud and providing them to other systems.
GNU Affero General Public License v3.0
4 stars 0 forks source link

Connectivity issue with HoloStorageAccessor on AKS #15

Open nielsboecker opened 4 years ago

nielsboecker commented 4 years ago

Background

This is an issue we encoundered very late in the project. We might not be able to resolve this ourselves, but we are documenting it here, in case ourselves or someone else will continue working on this component in the future.

Description

Essentially, we have mostly ran the HoloStorageAccessor service locally (however, configured such that it reads from the productive HoloStorage database). In the last week we have deployed all components to AKS. After replacing the local URL to the Accessor with the AKS endpoint, some connectivity issue occurred:

Fanbo: Find an issue: as the Accessor server has been deployed on azure kubernetes, I changed the endpoint in connector scripts and deployed the HoloLens app into HoloLens device. The patient and hologram information can be displayed well, however, the holograms are not loaded.

I built some test scene try to find the reason, I tried both 'UnityWebRequest' and the 'Response' library from MRTK to get data from server, both of them return "Cannot connect to destination host" error, (UnityWebRequest works well for retrieving patients and hologram data). Then I directly enter the download url in HoloLens browser, at the first time it shows 'cannot reach this page', and after that when I enter the url in the browser, it just refreshes the page and nothing happened.

It seems like the HoloLens cannot recognize the download url and cannot get the byte[] data from it. I researched about the "Cannot connect to destination host" bug, but none of the solutions works. (Everything works well in Unity editor)

ImmanuelBaskaran commented 4 years ago

Hello

Me and Abhinath have made some headway with discovering the bug. We have looked at the logs on the hololens and have found the following stack trace:

Index was outside the bounds of the array. at Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.ConstructGltf.d23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.ConstructGltf.d22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.ConstructGltf.d19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at HoloStorageConnector.HoloStorageClient.d14.MoveNext()

We think it has something to do with Hololens running a MRTK 2.0 application