MantisBT - opensim
View Issue Details
0005921opensim[REGION] OpenSim Corepublic2012-03-07 12:002014-07-29 13:41
cmickeyb 
cmickeyb 
normalfeatureN/A
closedfixed 
master (dev code) 
master (dev code)master (dev code) 
NA
Standalone (1 Region)
BasicPhysics
Unknown
None
0005921: Serialize all connections to a specific TCP host:port pair through WebUtils
This is an experimental patch that puts a lock around HTTP requests sent to a specific service (as identified by a host:port pair). The effect is to ensure that there is at most one outstanding request to the service. This is particularly important with mono where concurrent connections can cause significant performance problems.

Please evaluate the patch & report your findings.
No tags attached.
patch SerializeWebRequests.patch (3,022) 2012-03-07 12:00
http://opensimulator.org/mantis/file_download.php?file_id=2958&type=bug
Issue History
2012-03-07 12:00cmickeybNew Issue
2012-03-07 12:00cmickeybStatusnew => assigned
2012-03-07 12:00cmickeybAssigned To => cmickeyb
2012-03-07 12:00cmickeybFile Added: SerializeWebRequests.patch
2012-03-09 17:41justinccNote Added: 0021066
2012-03-09 17:43DivaNote Added: 0021067
2012-03-09 20:41DivaNote Added: 0021069
2012-03-09 22:17cmickeybNote Added: 0021070
2012-03-10 08:11DivaNote Added: 0021074
2012-07-20 10:53cmickeybNote Added: 0021850
2012-07-20 10:53cmickeybStatusassigned => resolved
2012-07-20 10:53cmickeybFixed in Version => master (dev code)
2012-07-20 10:53cmickeybResolutionopen => fixed
2014-07-29 13:41chi11kenStatusresolved => closed

Notes
(0021066)
justincc   
2012-03-09 17:41   
If this were to be used, should it also apply to the likes of AsynchronousRestObjectRequester.MakeRequest() also in WebUtil?
(0021067)
Diva   
2012-03-09 17:43   
FYI I'm about to test this on a linux grid.
(0021069)
Diva   
2012-03-09 20:41   
I tested on 2 grided sims, each with 9 regions (3x3) and a server-side DrawDistance of 6x6 regions. In other words, child agents in all 18 regions. The position updates don't show any issues, and neither do crossings/TPs.
(0021070)
cmickeyb   
2012-03-09 22:17   
Justin: yes, to avoid the problem with multiple connections to a single endpoint, it would be good to add the same code there. i didn't attempt to track down where that construct is being used (or why we have both methods for making calls).
(0021074)
Diva   
2012-03-10 08:11   
I pushed this for wider testing.
[08:10] <CIA-80> opensim: cmickeyb * r7b8e9d88e38e /OpenSim/Framework/WebUtil.cs: Serialize all web requests to a particular host:port pair; only applied to the PostToService variants.
(0021850)
cmickeyb   
2012-07-20 10:53   
applied