I have found that when OpenSim tries to store an asset using
AssetServicesConnector, it doesn't handle failures well. There are several
problems in AssetServicesConnector.Store(), and some of them seem to be
based on historical considerations that may no longer be relevant, so I'd
like to see if
Regarding the hiding of exceptions: to be clear, I was already bitten by this
behavior; that's why I started to investigate how assets are stored. I have
therefore already changed Kitely's version of OpenSim to propagate
exceptions, and the question is whether other people would like me to
to derail this topic. That can wait for another day.
Mike
-Original Message-
From: opensim-dev-boun...@lists.berlios.de
[mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
Sent: Friday, April 18, 2014 7:06 AM
To: opensim-dev@lists.berlios.de
Subject: Re
://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
--
Oren Hurvitz
VP RD
Kitely Ltd.
Email: or...@kitely.com i...@kitely.com
, if it gets disconnected, could
run on locally cached assets and manage to reconnect after 20
minutes and simply upload all new assets since then. Screaming
failure at the user is pointless in such a scenario.
- Melanie
On 18/04/2014 22:56, Oren Hurvitz wrote:
There seems to be a misunderstanding
I changed BaseHttpServer to require handler paths to match a full path
component.
For example, these match: /assets and /assets/12345
But these don't match: /assets and /assets_exist
--
View this message in context:
I've added AssetsExist to master. It's implemented using REST, at
/get_assets_exist.
Regarding getting server capabilities: later I realized that Hypergrid
already has the helo command, which serves this purpose. Currently it
returns only one type of property: whether the server is based on
I'm seeing strange behavior from viewers: after an avatar HG teleports to
another grid, his attachments sometimes aren't visible to *some* of the
avatars in the region.
The isn't that the attachments have been detached: the log shows that they
came across perfectly. And some of the avatars in the
Here's another interesting finding: even when the attachments aren't visible,
I can click on them to edit them. The viewer renders a yellow outline around
the shape of the attachment (in Singularity), even while the area inside the
outline still doesn't show the attachment.
--
View this message
I got some great advice off-list from Nicky Perian. When there's a problem of
missing prims, go to the Graphics Preferences and toggle the option Basic
shaders. I tried this, and toggling this option (on or off, both work)
makes the missing prims appear immediately.
This proves that the viewer
I've done in Robust.
On Wed, Apr 2, 2014 at 6:38 PM, Mic Bowman [via opensim-dev]
ml-node+s2196679n7579156...@n2.nabble.com wrote:
How is this hooked up in the simulator? I'll need to update the simian
connectors.
On Wed, Apr 2, 2014 at 12:11 AM, Oren Hurvitz [hidden
email]http://user
The actual work is done in the assets server, and there's code in the
simulators to call this API.
On Wed, Apr 2, 2014 at 10:28 PM, Nebadon Izumi [via opensim-dev]
ml-node+s2196679n7579160...@n2.nabble.com wrote:
excuse my ignorance here but are these changes directly to the asset
server
I tried to add a REST handler at the endpoint /assets_exist. It turns out
that I can't do that, because REST handlers are searched using partial
string matches, so servers that don't implement the new handler will
mistakenly choose the /assets endpoint instead.
For now, I solved the problem by
Re: why use POST instead of HEAD: because this lets me check the existence of
many assets at once with a single HTTP request. The main use of the
AssetsExist call is with HGAssetGatherer, which knows the full list of
assets that it wants to send, so it's able to check all of them at once.
--
The AssetsExist API is implemented efficiently in all levels of the stack
including the database, where a single query checks all the assets. So a
single HTTP request will be vastly more efficient than multiple calls, even
if KeepAlive works. And I never trust KeepAlive anyway because I've used
I have implemented this method. I found that the Assets Service already had a
method to check for assets' existence, so I just had to extend it to check
multiple asset ID's at once, and make it available remotely. But now I'm not
sure what to do about backwards compatibility.
I'm sending the
into the existing post handler.
Melanie
On 31 Mar 2014, at 13:55, Oren Hurvitz [hidden
email]http://user/SendEmail.jtp?type=nodenode=7579101i=0
wrote:
I have implemented this method. I found that the Assets Service already
had a
method to check for assets' existence, so I just had to extend
This isn't overloading: it's an RPC endpoint that accepts many methods. You
wouldn't create a separate endpoint for each method, would you?
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
Sent from the
If you say that the intention was to use REST then of course I accept what
you say. But whatever the vision was, the implementation today is very
different: many services use RPC. The /auth endpoint, for example, handles
6 methods. The /avatar endpoint handles 5 methods. And that's just for
I want to improve how assets are transferred between grids in the Hypergrid.
Currently there are two ways this is done: push and pull. In both cases,
HGUuidGatherer is used to find all the assets that are embedded in the
top-level asset. The Pull operation is efficient because it won't load from
It's already possible to know which assets are on the server by performing
GETs, so this method doesn't change the security situation.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579096.html
Sent from the
I ended up just removing 'SculptData' from the XML format:
http://opensimulator.org/mantis/view.php?id=7038#c25621
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Stop-saving-SculptData-in-serialized-SceneObjects-tp7579079p7579092.html
Sent from the opensim-dev
When a prim is a Sculptie or Mesh, the prim's shape contains a field called
SculptData which stores the full mesh or texture (for sculpties). If the
prim is serialized then the field SculptData is also serialized, which is
a problem because it contains the entire contents of the mesh or texture.
The mesh/texture data is needed only if the prim is resized or otherwise
edited as you've described. But in the vast majority of cases, prims are
just viewed. We should optimize for the common case, i.e. release the
memory. If the asset is needed again it will be loaded from the cache, which
is
As you've said, I followed the existing practice, which was to increase the
version number locally. We've been using a locally-versioned Prebuild for a
long time. There's no harm in changing the versioning practice next time,
although I don't know if adding a textual string will work.
BTW I tried
This doesn't change the amount of data logged; it just makes it easier to use
since the files are smaller, and it makes finding events of interest easier.
Your objection is to the *number* of files? I admit that this wasn't a
concern for me because I do save the logs in a log subdirectory. So how
Yikes! How can I know these things in order to fix GetNumberOfSides()?
If shape.pathTaperX0 or shape.pathTaperY0 then +1 side? But I think this
doesn't actually happen unless Radius is also 0. I really don't understand
how these parameters interact.
Maybe we should just drop GetNumberOfSides()
This should have gone in the Mantis, so that we can keep track of the status
of this bug.
I tested this scenario and the asset data wasn't sent. See my comment in
http://opensimulator.org/mantis/view.php?id=7038 .
--
View this message in context:
I included a comment in the config files (e.g., OpenSim.exe.config) that
shows how to enable log-rolling. Just modify a few lines in the file.
It would be a lot of work to implement this as an option in OpenSim because
it would require using the log4net API to change how it works at runtime.
It's
I'm a bit confused by your question because my patches are *already* in the
OpenSim Git, so I don't know what you mean by Would it make sense to merge
these [changes]. Merge them with what?
Anyhoo, if you're up to resurrecting Prebuild in Github then more power to
you! My patches to Prebuild are,
I added to Git master a couple of features that help in debugging OpenSim.
First, I improved logging of HTTP activity significantly. This isn't a new
feature, but there are numerous changes which make it more useful. These
include: logging responses (not just requests); fixed cases where logging
I found a bug in OpenSim: it doesn't count correctly the number of sides in a
Torus if the torus uses tapering.
How to reproduce the problem:
1. Create a torus, and set TaperY=0.85 and Radius=0.7.
2. Change the prim's texture. The texture will change momentarily and
immediately revert to the
Implemented in Git master df9845a2. The Suitcase is now created automatically
when the user logs-in.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Proposal-notify-clients-when-Robust-changes-a-user-s-inventory-tp7579018p7579041.html
Sent from the opensim-dev mailing
Zadark, you make a good point! Users need the My Suitcase folder available
to them if they want to take anything when they travel to another grid. So
it's better to create it in advance rather than on-demand (as today).
Since this is obviously a Good Thing (tm), I'm going to implement it. I just
Sometimes Robust makes changes to a user's inventory on its own initiative
(i.e., not as the result of a client request). E.g., this happens when it
creates the My Suitcase folder. When that happens we should notify the
client, so that the new item or folder will be visible in the inventory
window
Yes, this would be stateless. If the user's client can't be found then the
message would be dropped.
The logic to find the user's client, especially in the presence of HG, is
very complicated. I wouldn't want to replicate it, and of course we wouldn't
want duplicate code. There are only two
Thanks, just what I was looking for!
I notice that IUserAgentService has a comment, HG1.5 only. I assume that
means HG1.5 or higher, i.e. that it will work with HG 2.0 as well, right?
--
View this message in context:
Is there a way to find a user's UUID on another grid, using their name? I'm
looking for a Hypergrid version of IUserAccountService.GetUserAccount():
UserAccount GetUserAccount(string serverURL, UUID scopeID, string
FirstName, string LastName);
OSGrid has a web service that does this, called
I started using Hypergrid recently, and came across the Unknown User
problem. So far I've seen UserUMMAU4 and UserUMMTGUN9. I poked around to see
if I can do anything about this, and it seems that the mapping of UUID -
Name is stored in memory only (UserManagementModule.m_UserCache). This has
the
Maybe we should go a step further: create a global shared user directory.
This would eliminate 100% of Unknown User problems, and would also allow
IM to work regardless of which grids/simulators the users are on.
The shared directory could be implemented without a central service, by
having
Regarding GUN9: the viewer actually showed just (waiting), and when I
debugged this I saw that the name that was chosen was GUN9 but there was
code that prevented sending this to the viewer.
--
View this message in context:
That's ok. The amount of code I have written in my life which I had to throw
away would be enough to run the space shuttle.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Sending-extra-prim-properties-to-clients-tp7578537p7578539.html
Sent from the opensim-dev
To anyone who's following this thread: Melanie contributed code that allows
setting a prim's Physics Shape Type to None, which has a similar effect to
making it phantom. Therefore, it's no longer necessary to make single prims
phantom.
--
View this message in context:
I used XML serialization because it preserves more type information than
JSON. For example, XML serialization preserves the OSD types 'url' and
'uuid' whereas JSON serialization changes them into 'string'.
--
View this message in context:
Hi,
Recently Melanie added support for the Extra Physics Parameters, such as
Physics Shape Type and Density. I implemented support for receiving these
parameters from the client. However, I'm not sure how to send these
parameters *back* to the client, so right now on the client it looks as if
the
Did you say that you CAN change that flag in the viewer? How? I tested on my
own region, and although I can change the REGION's maturity level, I can't
change the avatar's maturity level in the Avatar Preferences dialog. Which
viewer are you using?
Also: could you include links to the places
Yes, I know where to find this setting. But when I try to change it,
Firestorm says that I'm not allowed. That's the problem that I'm trying to
solve.
--
View this message in context:
Ah, I see it. Thanks!
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/How-does-the-viewer-know-the-user-s-maturity-rating-tp7578517p7578526.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev
I just tried this and it doesn't work. I can set a prim's Physics Shape Type
to None, but it still collides.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Setting-a-single-child-prim-to-Phantom-tp7578513p7578515.html
Sent from the opensim-dev mailing list archive at
Hi,
It looks like OpenSim doesn't tell the viewer which maturity ratings a user
is allowed to use. I'm using the latest Firestorm, and in the Avatar
Preferences dialog I try to change the value of the listbox I want to
access content rated from General to Moderate or Adult, but Firestorm says
I have recently become aware that there's an entire cottage industry of
scripts whose purpose is to make a single prim in a linkset phantom. These
scripts are needed because:
a) Usually the phantom flag is set for an entire linkset, so it's necessary
to use a script to change the flag for a single
Ok, great. I hope all goes well and this will be added to master soon.
What do you mean by put the code in for MSSQL? The code already supports
MySQL, MSSQL and SQLite.
Oren
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Dynamic-attributes-tp7578464p7578470.html
I have submitted the patch: http://opensimulator.org/mantis/view.php?id=6510
Oren
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Dynamic-attributes-tp7578464p7578467.html
Sent from the opensim-dev mailing list archive at Nabble.com.
In the interest of clarity I'm starting a new thread for this topic. Previous
discussion can be found here:
http://opensim-dev.2196679.n2.nabble.com/IRegisterInterface-for-extending-scene-entities-td7578406.html
Justin, the dynamic attributes branch allows storing attributes both in
Prims and in
Sorry, I've been busy with other things so I haven't had a chance to continue
with the attributes, but I will get to them in a few days.
I'm fine with mandating that all clients must store their data in an
OSDMap: this is similar to requiring that programs have their own folder in
the filesystem,
The typing problem is already solved since the dynamic attributes are
implemented using OSD.
Your proposal is much more complicated than the currently proposed
attributes, and I don't want to suppress a good solution in favor of a
perfect solution that might never be implemented (I assume you're
For namespacing we can take a pointer from MIME types:
1. Keys used by core OpenSim will have no prefix, e.g. media or
prop.attr.
2. Keys created outside core OpenSim will use the vnd. prefix, followed by
the name of the creating entity. For example: vnd.acme.myprop.
We should stick to storing
I just looked at the dynamic-attributes branch and it looks extremely useful!
I was just now considering ways to attach data to scene objects, and this
would fit the bill exactly. So I'd like to bring the dynamic attributes code
over to the master branch (updating it as needed), plus add
On Fri, Jul 20, 2012 at 4:15 PM, Robert L martin [via opensim-dev]
ml-node+s2196679n7578165...@n2.nabble.com wrote:
okay so if i wanted to make an OAR for Bad Wolf Island with a total
of nine regions it would have
row 1 (south) Southwest, South center , South East
row 2 (center) West Center,
There are two big advantages. First, sometimes a group of regions comprises
a logical, indivisible unit. E.g., RPG groups often create their world
using many regions. Saving and loading their data in a single file is far
more convenient than having to load each OAR separately. This is my
.nabble.com wrote:
On Fri, Jul 20, 2012 at 9:38 AM, Oren Hurvitz [hidden
email]http://user/SendEmail.jtp?type=nodenode=7578168i=0
wrote:
If I understand you correctly, you're asking for the load-oar command to
create regions where none existed before. It doesn't do that currently,
and
I don't
That's an interesting idea. I'm wondering whether this would be slower,
however, since OpenSim would have to untar all the data twice: once in the
outer OAR, and again in the inner OARs. It might also take twice the RAM,
depending on how the untar library works.
--
View this message in context:
I want to extend the OAR format to support multiple regions. That's a
significant change, so I'd like to get some feedback about the design before
diving in.
A multi-region OAR will store each region in its own subdirectory. Only the
assets will remain in a top-level directory, to avoid storing
The table of contents in archive.xml defines the spatial relationship of
the regions. It can represent any rectangular shape. Holes are represented
by an empty region/ element.
--
View this message in context:
Thanks for this reply. It's sure something to think about, but I'm still
hoping for a solution that doesn't require debugging ODE itself. Perhaps
BulletSim will be the, um, silver bullet...
--
View this message in context:
Hi,
I want to bring up again the problem of avatars sinking into the terrain.
This problem has been discussed since at least 2008. Here are some previous
bug reports:
http://opensimulator.org/mantis/view.php?id=2905 (starts as another problem,
but morphs into the terrain problem)
My initial post in this thread was mistaken: OpenSim *does* allow group
features even if the user is just a member of the group (but it's not the
active group). The only problem is that getAgentGroupMembership() has a bug
if the user has never set *any* group as his active group. So that's what
I'm not changing the behavior of groups. I'm only going to fix one function
in XmlRpcGroups, which isn't working correctly in an edge case.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Some-features-work-only-with-the-Active-group-tp7512633p7516110.html
Sent from the
Hi,
A user can belong to many groups, but only one of these groups can be
active. Some group features, such as Notices, work with all the members of
the group. But other features, such as rezzing on group-owned land, are only
permitted if the user activates that group.
I was wondering: why is
I'm using Flotsam's XmlRpcGroups. In xmlrpc.php, I see that
getAgentGroupMembership() only returns True if the queried group is the
user's active group. I think this is a mistake: if we change it to return
True for any group membership, many features would start working as
expected. That would
The situation is better than I thought. The problem only happens if a user
has never set an active group, because in that case the user doesn't have an
entry in the osagent table. If the user did set an active group, no matter
what it is, then group features work as expected (i.e., the user
Hi,
There are 3 OSSL functions that only work if the requester is a God:
* osSetRegionWaterHeight
* osSetRegionSunSettings
* osSetEstateSunSettings
I believe these checks should be removed, since estate managers should be
able to call these functions. OpenSim now allows specifying that only
Hi,
There are two OSSL functions that check the wrong string for their threat
level:
osParseJSONNew() - checks osParseJSON
osNpcStopMoveToTarget() - checks osNpcStopMoveTo
I was going to fix this, but then I thought that perhaps this was done so
that the same threat level can be used for
While I'm on the subject of OSSL permissions, here's one more suggestion: if
an OSSL function's Allowed setting is set to ESTATE_MANAGER then all the
estate managers *except* for the owner are allowed to call that function. I
think that isn't what users expect: since the list of estate managers
I found another place that should be changed: if the permission level is set
to PARCEL_OWNER then we should check
World.Permissions.CanEditParcelProperties() instead of just checking if this
is the parcel's owner. That would allow the function to be called by Gods,
Estate Managers, and possibly
Currently CheckThreatLevel() doesn't check for God at all. It should probably
allow gods to call any function, regardless of its threat level.
There is no other change necessary to OSSL in order to support
administrators, since there are already permission checks for estate owners
and managers.
The decision whether to allow the parcel owner to call a function or not is
set by whoever setup OpenSim.ini: they can choose to allow PARCEL_OWNER, or
only ESTATE_OWNER. If they decided to allow the PARCEL_OWNER then we should
also allow the estate manager/owner to call that function. In
About gods: ok. I don't allow any users to be gods for security reasons,
but I had assumed that if someone *does* have god permissions then they
should be able to do anything. Since that is not the case, I won't be
making any changes related to gods.
I assume by -1 on changing existing functions
I thought that estate managers do have full permissions over all of their
parcels. After all, they can choose who *gets* the parcels. The solution
you suggested already exists: it is possible to specify multiple
permissions for OSSL functions. So that's off the table.
It's still confusing to have
I found the problem. The walking script is notified whenever the user presses
or releases a movement key, e.g. the Forward key. When that happens, the
script checks which movement animation the avatar is currently using, and
starts or stops the custom animation according to whether the movement
Hi,
My avatar has a walk animation. When I use an arrow key to walk, and then
release the key, the avatar stays put but the walk animation remains active.
If I press the up or down arrow keys then the animation stops.
I'm using OpenSim 0.7.3-post-fixes. This didn't happen in OpenSim 0.7.2.
If I
Hi Diva,
Any updates on the source code for HttpServer? If you don't have time to add
it to Subversion or Git then could you zip up whatever you have and post it
here? I would like to update my copies of OpenSim in order to incorporate my
bugfix (the one from the beginning of this thread), but I
Justin, I saw the Mono patch, but indeed it's for a different problem.
--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/HTTP-Server-source-code-tp6883843p6887768.html
Sent from the opensim-dev mailing list archive at Nabble.com.
Hi,
Where is the source code for the HTTP Server used by OpenSim? All I can find
is the binary version, HttpServer_OpenSim.dll. I believe I found a bug in
this library and I would like to fix it.
Oren
--
View this message in context:
Is it this one? - http://webserver.codeplex.com/
If so then it seems the version we're using in OpenSim is very old. The part
that contains my bug has been completely rewritten. How about I try to
update the library to the current version?
--
View this message in context:
Hmm, what a sordid history this library has...
I checked out the latest version from Subversion (thanks Nebadon) and
applied my fix. It seems to work fine. The change is very simple: there's a
certain uncaught exception that causes OpenSim/Robust to terminate. I just
added a catch-all statement.
Alternatively, zip up the HttpServer directory and send it to me; I'll
recompile and update the DLL myself. If someone could give me write access
to this Subversion repository I can try to update it, too -- perhaps I'll
have better luck in this, since I had no problems performing a checkout.
--
I'm actually adding deduplication right now, although we store the assets in
our cloud infrastructure and not on disk.
My motivation for this thread was the problem I've seen with attachments.
All of our avatars (on Kitely) have an attachment with a Walk script. I've
seen that often when viewers
Thanks for that info! Indeed it's unsafe to delete assets in the scenario
that I've described. It looks like it's not safe to delete assets at all
(except for trivial assets such as map tiles) unless we add some form of
reference-counting or garbage collection, since any asset might be in use in
Occasionally, OpenSim updates the asset of an attachment. This is done in
AttachmentsModule.UpdateKnownItem(). For example, this is done whenever the
attachment is detached from the avatar. I have a couple of questions about
this:
1. A new asset is created, but the old asset is not deleted; it
I added a page to the wiki to describe the different techniques used in
OpenSim to load plugins. If there are any mistakes then please let me know,
or edit the page directly. In particular, I'm curious about the seemingly
unused extension points: are they really unneeded, or have I missed where
Ok, I implemented this according to the second proposal (the more limited
one).
Patch submitted: http://opensimulator.org/mantis/view.php?id=5557
--
View this message in context:
):
CommonCompiler_compiled_14d3d7a9-0e3b-456d-8f09-54a31b5b2a22_94d3076.dll
Any thoughts?
--
Oren Hurvitz
VP RD
Kitely Ltd.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
Cool.
Well, about not deleting the scripts: my proposal combined both a mechanism
(don't delete the scripts) and a policy (don't delete if the version
isn't X). How about I implement only the mechanism, and leave the policy to
the sim owner?
So, I would add a configuration option such as this
94 matches
Mail list logo