[BUG-231884] llRequestAgentData(id,DATA_NAME) stops responding after 3000-5000 requests #9259
Comments
Fred Allandale commented at 2022-03-05T18:02:17Z, updated at 2022-03-05T23:54:17Z The attached script can be used to replicate the issue. Basically it reads a list of avatar keys from notecards and requests the avatar name from the datasever via llRequestAgentData(AvKey,DATA_NAME). It outputs the returned name, the count of keys read, count of names returned, and dataserver response time. It also includes a 60 second timeout in the event of no dataserver response, and goes to the next key. CAUTION: This script requires several notecards with several thousand unique, valid avatar keys. This problem does not occur until between 2000 and 5000 consecutive requests have been made (approx 1 per second). It does NOT occur if repeated requests are made for the same key. It does NOT occur if the name has been cached to the local simulator previously. It only occurs if the request has to communicate back to the central database. NOTE: My observation is this behaves very much like throttles that are imposed on certain other LSL functions (e.g. llGiveInventory()), however there has (to my knowledge) never been a request rate throttle on llRequestAgentData(). Even if this is the result of a new, undocumented throttle, my replicatioin stays well below the 2 per second continuous rate that other throttles impose. Its behaviour is also similar to other throttles in that it is applied to all scripted objects with the same owner in the same sim once it triggers, and stopping it for some period time allow it to resume normal operation until it triggers again after some time. Here is a sample output from the replication script at the point where the dataserver stopped responding: Note that the problem occurred after 2579 consecutive requests. On two other runs, the problem occurred after 3700 and 3241 requrests, respectively [21:27] Dataserver Delay test: KeyCount=2573 NameCount=2572 name=Shila Szondi dataserver reply time=0.866264 |
Fred Allandale commented at 2022-03-06T20:25:03Z, updated at 2022-03-06T23:47:45Z Ran testers in Distorted and Geum regions today. Dataserver started continuous timeouts (no response for 60 seconds) at 3218 and 3232 requests, respectively. Timeouts only happen with llRequestAgentData(id,DATA_NAME). |
Maestro Linden commented at 2022-03-15T01:03:10Z, updated at 2022-03-15T16:55:03Z Sorry for the delay, Fred - we're investigating this issue. I have my own test script running right now with a dataset of 10k agents' names to resolve. Update: I can confirm that I can reproduce this issue. |
Fred Allandale commented at 2022-03-19T20:41:05Z Thanks for looking into this. Any progress on a fix? |
Fred Allandale commented at 2022-04-10T17:58:50Z Reminder. This bug was accepted on March 14, 2022 but remains unassigned. Is anyone going to be working on it in the near future? |
Lucia Nightfire commented at 2022-04-11T01:14:52Z @fred, region version 2022-04-01.570305 has a fix for this. It is currently on all RC channel regions. Please verify if the bug still reproduces on regions running this version. |
Fred Allandale commented at 2022-04-11T20:05:52Z Confirmed this bug does NOT occur in regions running Second Life Server 2022-04-01.570305. |
What just happened?
I sell a product that sends inventory to a list of subscribers. Part of its function requires getting the avatar's name from its key (uuid) using llRequestAgentData. Within the past week I've gotten several reports from customers that after making about 3000-5000 requrests, the dataserved stops responding for typically 30-50 consecutive requests. After which it may or may not resume responding for some number of requests before failing again. My script has a 60 second timeout on dataserver responses.
What were you doing when it happened?
The device was processing a long list of avatar keys to get the avatar's name via llRequestAgentData(id,DATA_NAME). After about 3000-5000 requests, the dataserver stops responding. After stopping it for about an hour, was able to resume normal operation for a few hundred more requests, after which it stops responding again. I regulate the request rate to no more than one per second. I also observed that when one sender device encounters this problem, and another sender is rezzed, it almost immediately encouters the same problem, i.e. it appears to be affecting requests from all devices in the region.
What were you expecting to happen instead?
Expected the dataserver to be able to sustain a continuous request stream indefinitely at a rate of one request per second.
Other information
My product (Online Sender) has been operating correctly for several years with over 1000 sold. The current issue started roughly with the rollout of Second Life Server 2022-02-10.568388 and has been resported by several customers in different regions. I have now been able to replicate it in my home region (Distorted). I have also created a very simple script that also replicates the problem to be sure it is not related to the actual Online Sender. See attachment for the replication script.
Attachments
Links
Related
Original Jira Fields
The text was updated successfully, but these errors were encountered: