| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- fixes wild swings in memory usage related to usage of GetDrawStringSize()
We've been seeing wild swings in memory usage and a large chunk of
memory leak. From analysing this it's pretty clear that the mono
garbage collector is rather buggy! When exercised heavily it looks
like it frees more than its meant to resulting in crashes.
GetDrawStringSize() measures the size in pixels of text. To do this
memory for an image is allocated and used to call the GDI text
measure functions. Although no reference to the temporary memory
for the measuring is kept, it takes quite a while for the mono
garbage collector to clean up - so if lots calls to
GetDrawStringSize() are made at once there can be a spike in memory
usage. If the garbage collector is not fast enough then the GDI
layer runs out of memory. It also looks like the garbage collector
is not always reclaiming all of the memory.
I've attached an OpenSim patch which works around the garbage collector
issues. Instead of dynamically allocating memory for measuring
text sizes, it serialises (on a per region basis) access to a single
block of memory. The effect of this is to be nicer to the garbage
collector as it has a lot less work to do, at the cost of some
theoretical loss in performance (nothing noticeable with our tests
which hit it pretty hard).
OpenSim still does leak memory slowly, but it is a lot more stable
with this patch. I suspect that either the garbage collector misses
bits of freed memory or the GDI/cairo layer leaks a bit each time a
texture is created. Thats going to be a lot harder to hunt down, but
for reference if someone has OpenSim running on Windows it would be
interesting to see if it has the same problem as it would tell us if
its a mono/GDI problem or an OpenSim problem.
|
|
|
|
|
|
|
|
|
|
|
| |
Modify dynamic texture handling so that an explicitly targetted
face is not scheduled for immediate expiration. The requirement
for precaching explicitly requires these assets to persist. They
do however remain temporary.
This approach leaves the legacy mode of operation (ALL_SIDES)
unchanged in this respect.
|
|
|
|
|
|
|
|
| |
(Mantis #3759)
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
|
| |
|
|
|
|
|
|
|
| |
(Mantis #3759)
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
LICENSE.txt.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Them being synchronous in certain cases (asset in cache, for example) may account for slowness reported by folks in osgrid when they have the cache module on. Turns out that some of the provided handlers do non-trivial processing (the ones coming from J2KImage, for example), which means that the several asset requests that hit the cache end up being synchronous. The jury is still out on this.
|
| |
|
| |
|
| |
|
|
|
|
| |
ISharedRegionModule.
|
|
|
|
| |
figuring out Mono.Addins.
|
|
|
|
| |
gridservers to perform on region servers. Used for grid-wide announcements, etc.
|
|
|
|
| |
expects. May break everything. You decide!
|
|
|
|
|
| |
Minor log message change in the module itself.
|
| |
|
|
|
|
| |
GlynnTucker.Cache.dll.
|
| |
|
|
|
|
|
|
| |
stop crashing http server threads.
|
|
|
|
|
|
|
|
|
| |
* unfortunately, while the client requires uuids and we want to be able to have arbitrary string ids, these cannot be kept in sync
* I think the problems last time were due to a serialization change
* So the major inteface version has been bumped to take care of any lingering issues here.
* This means that region servers beyond this revision can only connect to similarly uptodate grid services, and vice versa
|
| |
|
| |
|
|
|
|
|
|
| |
unless the user has that permission through the group.
|
|
|
|
|
|
| |
for more fine-grained control
|
| |
|
| |
|
|
|
|
| |
HGUuidGatherer, which is a subclass of UuidGatherer. Hence, on-line HG asset transfers use exactly the same UUID collection code as save oar/xml. If it doesn't work, it's Justin's fault :D
|
|
|
|
|
|
|
|
|
|
| |
needed to be able to 'NAT-wrap' the login sequence.
* If you have something using XmlRpc that isn't in core, change your method signature from:
(XmlRpcRequest request)
to:
(XmlRpcRequest request, IPEndPoint remoteClient)
|
|
|
|
| |
hadn't been manually post intiailized
|
|
|
|
|
|
|
|
|
|
| |
Changes to support client-side image pre-caching in the region. This
commit adds an additional calling sequence to the DynamicTexture data
and URL calls. The new interface allows a dynamic image to be loaded
into a specific object face (rather than the mandatory ALL_SIDES
supported today.
This is in part fulfilment of ticket #458.
|
|
|
|
|
|
| |
NOTE: we currently have a gazillion warnings caused stuff flagged as
"obsolete" (OGS1 stuff) --- what's up with that?
|
| |
|
| |
|
|
|
|
| |
grid is a standalone, this still doesn't work -- something wrong with RegionAssetService's DB connection.
|
|
|
|
|
|
|
|
| |
Applied with changes (commented the logging entirely, since Linux defaults
to debug level)
Fixes Mantis #3689
|
| |
|
|
|
|
|
|
| |
* Return something more sensible if a file isn't found
|
|
|
|
|
|
|
|
|
| |
The image render module is returning everything twice. Once with
data, once with null. This change adds a return to stop this
behavior. This was not apparent until I added a message to the
catching routine which issued a warning message when no data was
returned.
|
|
|
|
|
|
|
|
| |
because it will be removed soonish. This is NOT the way to go.
Thanks, mpallari, for pointing this out.
Fixes Mantis #3684
|