Open AuMilliat opened 3 weeks ago
It might be the frequency of the data recieved, I've reduced it and the crash is not happening.
Thanks for the details on this issue. Apparently, it is easy to overflow the Average()
operator with too many DateTimes in the list. We will push a fix soon that should allow it to work at your original frequency.
The fact that this TimeSpan values are so large is a bit suspicious though. What do the latencies look like on the streams you ship over from the Quest headset side? Do they look reasonable, or do they look really huge? There might be an issue in your message timestamps...
Yeah, looking closer at those TimeSpan values, it appears that something is wrong with your message timestamps somewhere. They are showing spans of 584,388 days, which is roughly 1601 years. January 1, 1601 is the Windows epoch time. So I'm guessing you're not using the right UTC time somewhere, resulting in thousand-year latencies :)
Thanks for the reply Sean, it seems a parsing/serialisation issue in DateTime, the years are not correct.
Here, the GetCurrentTime from pipeline in Unity side and the OriginatingTime in the server side:
I've wrote a TCPWriter for DateTime in Unity and using the same method for serialization as Format
But it's not a Diagnostics crash issue :)
Hello,
When I activate diagnostics, the pipeline crash rapidly after RunAsynch call:![image](https://github.com/microsoft/psi/assets/73344115/c6186d0f-d57e-4e70-a93b-e712a5f77e1e)
Context: 3 TCPSource Tuple<Vector3, Vector3> from Quest 2 headset with Unity.
Server code:
The only thing I can think of, is the RemoteClockImporter setting the pipeline VirtualTimeOffset while it's running... But it should trigger exception on the messages side (?)