Commit Graph

78 Commits

Author SHA1 Message Date
UbitUmarov
f636ef037a http send is blocking, so we need we need to do it async in all cases. - this will need revision after server changes 2016-07-16 20:23:30 +01:00
UbitUmarov
cdaed11387 at last we can login and see objects ( friends is dead and disable in
scenepresence)
2015-09-03 18:39:08 +01:00
UbitUmarov
a11edceb00 seems to compile ( tests comented out) 2015-09-02 19:54:53 +01:00
UbitUmarov
371c9dd2af bad merge? 2015-09-01 14:54:35 +01:00
UbitUmarov
48ef22f62e change pollService stop() to send 503 error and no keepalive. ( untested ) 2015-08-18 23:59:55 +01:00
UbitUmarov
2cac56340a try to serialize http requests from same connection, so they are processed
in order. ( next commits will be about necessary keepAlive changes needed)
2015-08-18 21:03:34 +01:00
Justin Clark-Casey (justincc)
86367d7219 refactor: Move methods to start a monitored thread, start work in its own thread and run work in the jobengine from Watchdog to a WorkManager class.
This is to achieve a clean separation of concerns - the watchdog is an inappropriate place for work management.
Also adds a WorkManager.RunInThreadPool() class which feeds through to Util.FireAndForget.
Also switches around the name and obj arguments to the new RunInThread() and RunJob() methods so that the callback obj comes after the callback as seen in the SDK and elsewhere
2014-11-25 23:56:32 +00:00
UbitUmarov
cd87c4bec5 change/fix previus commits 2014-10-13 12:00:31 +01:00
UbitUmarov
8558e97a44 tune poll smartThreadpool use and give it a name 2014-10-13 11:38:51 +01:00
UbitUmarov
86a9710e77 change previus code, send a NoEvents response back to http server, even
if we know there is no one there, so that the server finishes handling
 it.
2014-07-24 23:32:39 +01:00
UbitUmarov
f236b2e5d3 request.DoHTTPGruntWork(..) is now identical to our version, so use
those again, getting code closer to os
 again
2014-07-23 02:14:15 +01:00
Justin Clark-Casey (justincc)
fad1d70180 Add httpserver.<port>.QueuedPollResponses and httpserver.<port>.ProcessedPollResponses statistics 2014-03-18 23:47:33 +00:00
Justin Clark-Casey (justincc)
9e0d419239 minor: Correction to description of QueuedPollResponses since this covers long poll and other 'poll' types 2014-03-18 23:24:22 +00:00
Justin Clark-Casey (justincc)
eed343ed8a Add httpserver.<port-number>,QueuedPollResponses stat
This shows the number pf poll responses queued for processing.
2014-03-18 23:21:07 +00:00
Justin Clark-Casey (justincc)
f3e177814a Add regression test for http inventory fetch.
Involved some restructuring to allow regression tests to dequeue inventory requests and perform poll responses synchronously rather than async
2014-03-17 20:51:35 +00:00
Justin Clark-Casey (justincc)
77d418a36d remove mono compiler warnings from PollServiceRequestManager 2013-08-17 00:56:19 +01:00
Diva Canto
3dac92f345 Increased the rate of the PollServiceRequestManager to 0.5 secs (it was 1sec). Group chat is going over the EQ... Hopefully this won't increase CPU when there's nothing going on, but we need to watch for that. 2013-07-26 21:40:04 -07:00
Melanie
a7eb1b5b85 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
	OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
	OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
2013-07-24 03:50:09 +01:00
Diva Canto
18d5d8f5dd Removed verbose debug from previous commit 2013-07-21 09:00:08 -07:00
Diva Canto
edafea6ae6 PollServiceRequestManager: changed the long poll from a Queue to a List. No need to dequeue and enqueue items every 1sec. 2013-07-21 08:59:48 -07:00
Diva Canto
98d47ea428 Delay the enqueueing of non-longpoll requests for 100ms. No need to have these requests actively on the processing queue if it seems they're not ready. 2013-07-21 08:57:16 -07:00
Diva Canto
b5062ae7ee Changed the timoeut of EQ 502s (no events) to 50 secs. The viewer post requests timeout in 60 secs.
There's plenty of room for improvement in handling the EQs. Some other time...
2013-07-18 13:30:04 -07:00
Diva Canto
552b85d33d Revert "Revert "Putting the requests back in the queue while testing for count >0 is not the smartest move...""
This reverts commit 7127891957.
2013-07-18 12:25:04 -07:00
Diva Canto
9e35b069a4 Reverting the reverts I did yesterday. cpu-branch has now been
successfully tested, and I'm merging back those changes, which proved to
be good.
Revert "Revert "Cleared up much confusion in PollServiceRequestManager. Here's the history:""

This reverts commit fa2370b32e.
2013-07-18 12:23:27 -07:00
Diva Canto
fa2370b32e Revert "Cleared up much confusion in PollServiceRequestManager. Here's the history:"
This reverts commit e46459ef21.
2013-07-17 15:05:36 -07:00
Diva Canto
7127891957 Revert "Putting the requests back in the queue while testing for count >0 is not the smartest move..."
This reverts commit f4317dc26d.
2013-07-17 15:04:27 -07:00
Diva Canto
519dba9a69 Revert "Now trying DoubleQueue instead of BlockingQueue for the PollServiceRequestManager."
This reverts commit 5f95f4d78e.
2013-07-17 15:03:16 -07:00
Diva Canto
5c54eb30ed Revert "This is a completely unreasonable thing to do, effectively defying the purpose of BlockingQueues. Trying this, to see the effect on CPU."
This reverts commit 5232ab0496.
2013-07-17 15:02:54 -07:00
Diva Canto
5232ab0496 This is a completely unreasonable thing to do, effectively defying the purpose of BlockingQueues. Trying this, to see the effect on CPU. 2013-07-17 14:36:55 -07:00
Diva Canto
5f95f4d78e Now trying DoubleQueue instead of BlockingQueue for the PollServiceRequestManager. 2013-07-17 14:09:04 -07:00
Diva Canto
f4317dc26d Putting the requests back in the queue while testing for count >0 is not the smartest move... 2013-07-17 12:57:34 -07:00
Diva Canto
e46459ef21 Cleared up much confusion in PollServiceRequestManager. Here's the history:
When Melanie added the web fetch inventory throttle to core, she made the long poll requests (EQs) effectively be handled on an active loop. All those requests, if they existed, were being constantly dequeued, checked for events (which most often they didn't have), and requeued again. This was an active loop thread on a 100ms cycle!
This fixes the issue. Now the inventory requests, if they aren't ready to be served, are placed directly back in the queue, but the long poll requests aren't placed there until there are events ready to be sent or timeout has been reached.
This puts the LongPollServiceWatcherThread back to 1sec cycle, as it was before.
2013-07-17 11:19:36 -07:00
Justin Clark-Casey (justincc)
1b7b664c86 Add request received/handling stats for caps which are served by http poll handlers.
This adds explicit cap poll handler supporting to the Caps classes rather than relying on callers to do the complicated coding.
Other refactoring was required to get logic into the right places to support this.
2013-07-15 23:27:46 +01:00
Melanie
162dfd8a38 Merge branch 'avination-current' into careminster 2013-06-11 21:03:02 +01:00
Melanie
a022ee5766 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
	OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
	OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
2013-06-11 01:03:15 +01:00
Justin Clark-Casey (justincc)
7af97f88b7 Add port numbers to poll service thread names so that we can tell which belong to which HttpServer 2013-06-10 23:39:17 +01:00
Justin Clark-Casey (justincc)
32d1e50565 Reinstate explicit starting and stopping of PollServiceRequestManager added in 3eee991 but removed in 7c0bfca
Do not rely on destructors to stop things.
These fire at unpredictable times and cause problems such as http://opensimulator.org/mantis/view.php?id=6503
and most probably http://opensimulator.org/mantis/view.php?id=6668
2013-06-10 23:30:35 +01:00
Melanie
7c0bfca7a0 Adding Avination's PollService to round out the HTTP inventory changes 2013-06-07 23:43:45 +01:00
Melanie
17a902fed4 Clean up poll service 2013-06-07 22:39:27 +02:00
Melanie
e39156c656 Send 503 when throttling textures 2013-04-25 01:38:21 +02:00
Melanie
12efac494a Merge branch 'master' into careminster
Conflicts:
	OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
	OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
	OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
2013-01-19 02:38:04 +00:00
Justin Clark-Casey (justincc)
3eee991935 Explicitly stop PollServiceRequestManager() rather than relying on its destructor.
Hopes to address occasional shutdown failures from http://opensimulator.org/mantis/view.php?id=6503
2013-01-19 02:04:36 +00:00
UbitUmarov
a0065ad616 create a new PollServiceHttpRequest req per loop since they can be sent to
another working thread
2012-09-27 00:14:50 +01:00
UbitUmarov
617f1b9223 just remove the damm thing 2012-09-26 16:17:49 +01:00
UbitUmarov
7e3eba1064 Seems nothing actually need the request body for getevents. so change
control flag to false
2012-09-26 15:41:57 +01:00
UbitUmarov
67fa657746 keep watchdog happy using it to kill his threads 2012-09-26 04:52:19 +01:00
UbitUmarov
654dd289f2 more changes to PollService 2012-09-26 03:05:27 +01:00
Melanie
2d02405186 Change the poll service to use a thread pool for replies to make sure the
event queues aren't blocked by other traffic.
2012-09-23 23:16:25 +02:00
Melanie
387e59ff7f Revamp the HTTP textures handler to allow a maximum of four fetches
at any time and to drop requests for avatars n longer in the scene
2012-09-14 21:24:25 +02:00
Melanie
7e17f4296e Fix background inventory loading (Viewer 3) so it won't lag out the sim 2012-08-24 23:48:01 +02:00