Closed PDN-AUTDE closed 2 years ago
A few follow-up questions:
Thanks for the information. I don't think I've seen this before.
Can you provide more detailed logs than the one that you sent over email? It might help for us to see how you are launching the node, and what output preceded the crash.
You state that this occurs when calling the _findanchors service...does it also happen if you launch the node while providing the anchor id on startup (by setting the _anchorid parameter in the launch file)?
Thanks a lot for your quick responses! We don't have any more logs unfortunately as we deleted the troubling anchors and replaced them with new ones. However, I will try and make some more tests during the next couple of days and provide you with more info once the error occurs again.
We did not try to provide the anchor_id in the launch file. I will test that as well though, once the error occurs again.
OK sounds good. Hopefully this was an isolated incident, but if it happens again, please share whatever information you can gather and we'll be happy to try to debug it. I will leave this issue open in the meantime.
Will do, thanks for your help so far.
Our understanding is that the Azure cloud will (under conditions that I don't think are visible to us end users) consider older anchors to be expired and thus delete them. Perhaps this is the culprit?
To our knowledge, ASA does not delete anchors. Many use-cases use anchors for much longer durations, so we'd be surprised if that happens. I personally used the same anchor for multiple weeks in a row, also using this ros wrapper. I also couldn't find any hint towards such a deletion behavior in the documentation. Did you read that somewhere on an official Microsoft page? If so, I'd be super thankful if you could point me to that so that I can dig deeper.
The deletion did not cause the issues, as we could still find the anchors in the database. Apart from that we could also locate them using the Hololens.
Maybe you could check your CreateAzureAnchor
method (or equivalent). You might find a line such as this one:
localCloudAnchor.Expiration = DateTimeOffset.Now.AddDays(7);
This line sets an anchor to expire automatically after the indicated time.
That is correct, I found that line. Thanks for the hint!
@roalchaq Thanks for catching this.
Setting the expiration for CloudAnchors is available in the API, but is not exposed in the ROS wrapper because as far as I can tell, the default is for the anchors to never expire. Indeed, this is the first instance that we're aware of where any anchors were "deleted", although the fact that they are still in the database and locatable from the HoloLens seems to indicate some other, as yet unexplained behavior. Despite my skepticism, please let us know if this resolves your problem.
Also, if anchor expiration is a desired feature, please feel free to submit a PR.
I've encountered an issue yesterday when querying anchors which were place a few days back using the _findanchors service. Using the hololens it worked fine. It was only when using the ROS SDK.
Using the ROS sdk I've queried the anchor ID's from the cloud using the TableService of the from azure.cosmosdb.table package which works fine. I then create a comma separated string including all IDs and send a ROS service request for _findanchors to the running instance of the _asa_rosnode which then crashed, leaving the following log in the message:
The nodes are all running on a SPOT Core and were occuring with and without any other nodes running (eg. Spot Driver, Realsense Driver). The crash happened immediately and each time after calling the _findanchors service. However, those errors did not occur, when querying an ID of a spatial anchor which was recently (same day