Commit Graph

41 Commits

Author SHA1 Message Date
UbitUmarov
af9bff7ed2 try fix mantis 8283 2018-01-22 21:43:21 +00:00
UbitUmarov
3ba63dde6e udp is not tcp. If mono versions have bronke udp sento, better update, also having 300 threads because object select is not funny 2017-06-13 12:17:39 +01:00
UbitUmarov
e650a4ff16 remove excessive notion of paralelism 2017-06-13 08:56:21 +01:00
Melanie Thielker
b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
Melanie Thielker
69776aa70c Remove the AllowAlternatePorts option. It wasn't implemented anyway.
Instead, handle the port being 0 as "any port" and assign a random
port for regions in that case.
2016-12-13 19:47:26 +00:00
Melanie Thielker
ee58beddec Make sure sims on Linux can be restarted without waiting on a 2 mintue socket timeout 2016-12-13 14:43:10 +00:00
UbitUmarov
b2c553b459 work around some warnings 2016-11-21 01:16:35 +00:00
UbitUmarov
371c9dd2af bad merge? 2015-09-01 14:54:35 +01:00
Diva Canto
f27ce66877 Squooshed a warning that could result in a runtime null pointer exception. It says that code is for debugging, but it was buggy. 2015-06-14 08:18:21 -07:00
Freaky Tech
c6731c73fb increased IPv4 TTL of LLUDP Sockets
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2015-03-03 15:34:34 -05:00
Mic Bowman
e71549a2cb Add debugging code for simulating packet loss in outgoing UDP packets. The
algorithm for dropping packets is a modified two state algorithm for creating
bursts of dropped packets. As configured there is about a 1.5% drop rate.

Invocation of the packet loss code is commented out by default.
2014-12-29 12:02:36 -08:00
Justin Clark-Casey (justincc)
5d5ea9234f Stop Mono 3.2.8 from binding a UDP socket to a port already in use.
At least on Mono 3.2.8 (but not under Windows), one can bind multiple UDP sockets to the same port by default.
Different simulators cannot demultiplex each other's messages, so a set of confusing non-obvious errors arise if this occurs.
This change prevents such multiple binding.
2014-11-25 23:23:09 +00:00
Justin Clark-Casey (justincc)
12daa3c3d9 refactor: Move LLUDPServer console commands into their own class. 2014-11-25 23:18:39 +00:00
Melanie Thielker
785a2cc729 Remove JustinCCs UDP patch - it is harmful to Avination's grid management 2014-11-10 04:48:36 +01:00
UbitUmarov
54ab9e7d4d set udp SocketOptionName.ReuseAddress to false, to not allow two regions
to bind to same port, as seems to be possible at least with mono 3.2.8,
 same as patch just pushed to core by justin. This is not necessary on
 windows, possible a bug on some mono versions.
2014-10-30 21:57:20 +00:00
Melanie Thielker
12ebc92e55 Revert "*TEST* send udp sync. Stop uncontroled and hidden use of IO threads."
This reverts commit 8c41271b33.

Conflicts:

	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
2014-10-13 23:52:19 +02:00
UbitUmarov
8c41271b33 *TEST* send udp sync. Stop uncontroled and hidden use of IO threads.
Testing this may require several people.
2014-10-13 13:17:48 +01:00
Melanie
75c68fa29e Merge branch 'master' into careminster
Conflicts:
	OpenSim/Data/MySQL/MySQLSimulationData.cs
	OpenSim/Data/MySQL/Resources/RegionStore.migrations
	OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
	OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
	OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
	OpenSim/Region/CoreModules/World/LightShare/LightShareModule.cs
	OpenSim/Region/Framework/Scenes/Scene.cs
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
	OpenSim/Region/Framework/Scenes/Tests/ScenePresenceCapabilityTests.cs
	OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
2013-10-04 20:03:12 +01:00
Justin Clark-Casey (justincc)
f384a6291e Instead of swallowing any socket begin/end receive exceptions, log them for debugging purposes.
This may reveal why on some teleports with current code, the UseCircuitCode message gets through but CompleteMovement disappears into the ether.
2013-09-25 00:02:17 +01:00
Melanie
e82d4154a2 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
	OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
	OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
	OpenSim/Region/Physics/Manager/PhysicsActor.cs
	OpenSim/Region/Physics/Manager/PhysicsScene.cs
2013-07-24 04:45:07 +01:00
Justin Clark-Casey (justincc)
60732c96ef Add clientstack.OutgoingUDPSendsCount stat to show number of outbound UDP packets sent by a region per second 2013-07-23 00:35:34 +01:00
Justin Clark-Casey (justincc)
8396f1bd42 Record raw number of UDP receives as clientstack.IncomingUDPReceivesCount 2013-07-23 00:35:23 +01:00
Justin Clark-Casey (justincc)
bf517899a7 Add AverageUDPProcessTime stat to try and get a handle on how long we're taking on the initial processing of a UDP packet.
If we're not receiving packets with multiple threads (m_asyncPacketHandling) then this is critical since it will limit the number of incoming UDP requests that the region can handle and affects packet loss.
If m_asyncPacketHandling then this is less critical though a long process will increase the scope for threads to race.
This is an experimental stat which may be changed.
2013-07-23 00:35:09 +01:00
Justin Clark-Casey (justincc)
66048e1a70 minor: provide user feedback in the log for now when udp in/out bound threads are started/stopped 2013-07-21 08:58:02 -07:00
Justin Clark-Casey (justincc)
63c42d6602 Do some simple queue empty checks in the main outgoing udp loop instead of always performing these on a separate fired thread.
This appears to improve cpu usage since launching a new thread is more expensive than performing a small amount of inline logic.
However, needs testing at scale.
2013-07-21 08:56:48 -07:00
Melanie
569f39e124 Merge branch 'master' into careminster 2012-12-21 22:13:41 +00:00
Justin Clark-Casey (justincc)
ae67435146 Disable UDPPacketBuffer pooling for now to resolve an issue on Windows of interference between incoming packets.
On Windows, concurrent multi-threaded processing of inbound UDP somehow allows different data input processing to interfere with each other.
Possibly the endpoint reference is being switched, though I don't yet know the mechanism.  Not seen on Mono.
Also resolveable by setting RecyclePackets = false or RecycleBaseUDPPackets = false in [PacketPool]
Or async_packet_handling = false in [ClientStack.LindenUDP]
For now, will simply disable this particular pooling though will revisit this issue.
In response to http://opensimulator.org/mantis/view.php?id=6468
2012-12-19 01:51:30 +00:00
Melanie
5895c4cc6f Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
2012-11-15 03:46:10 +00:00
Justin Clark-Casey (justincc)
038528dc80 Make PacketPool class stats pull stats instead of push stats so they can be lifted up into LLUDPServer and be distiguished by scene name 2012-11-15 02:02:59 +00:00
Justin Clark-Casey (justincc)
2c36106675 Add IncomingPacketsProcessedCount stat for diagnostics.
Also puts some packet processing counts in a container named after the scene so that stats can be collected from more than one scene.
2012-11-15 01:14:18 +00:00
Melanie
484eca323b Merge branch 'master' into careminster 2012-10-23 17:25:40 +01:00
Justin Clark-Casey (justincc)
319ebaca06 Make it possible to turn the base UDP object packet pools on and off whilst running via the "debug lludp pool <on|off>" console command. For debug purposes.
This does not currently apply to the higher LLUDP packetpool.
2012-10-23 02:44:15 +01:00
Justin Clark-Casey (justincc)
4578ff74fe Add object count stats for new IncomingPacket and UDPPacketBuffer pools if they are enabled. Add count stats for existing LLUDP pool.
This introduces a pull stat type in addition to the push stat type.
A pull stat takes a method on construction which knows how to update the stat on request.
In this way, special interfaces for pull stat collection are not necessary.
2012-10-23 01:52:10 +01:00
Melanie
ad60a29c93 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
2012-10-17 00:03:02 +01:00
Justin Clark-Casey (justincc)
fc861c7904 Add optional pool for the UDPPacketBuffer objects that handle all incoming UDP data.
Even when an avatar is standing still, it's sending in a constant stream of AgentUpdate packets that the client creates new UDPPacketBuffer objects to handle.
This option pools those objects.  This reduces memory churn.
Currently off by default.  Works but the scope can be expanded.
2012-10-16 23:35:05 +01:00
Melanie
c4fcfec24e Merge branch 'master' into careminster 2012-10-16 23:22:37 +01:00
Justin Clark-Casey (justincc)
db4ca57590 Make it possible to separate start and stop lludp packet processing from the console for debug processes.
This is controlled via the "debug lludp start <in|out|all>" and "debug lludp stop <in|out|all>" region console commands.
The command "debug lludp status" will show current status.
2012-10-16 21:55:00 +01:00
Melanie
d913303875 Merge branch 'master' into bigmerge 2011-12-09 08:13:57 +00:00
Justin Clark-Casey (justincc)
bc13855e64 Reactivate BasicCircuitTests.TestAddClient()
This checks that the initial UseCircuitCode packet is handled correctly for a normal client login.
2011-12-08 20:52:34 +00:00
Melanie
4beb0c9b9b Merge branch 'master' into careminster-presence-refactor 2011-05-05 09:49:10 +01:00
Diva Canto
d8ee0cbe1c First stab at cleaning up Caps. Compiles. Untested. 2011-04-30 09:24:15 -07:00