Commit Graph

288 Commits (bb4b81d70fece4e0257f1e2f361489062c3595af)

Author SHA1 Message Date
Melanie Thielker c5395feadd Avoid an invalid cast on legacy data 2009-01-18 23:31:13 +00:00
Sean Dague 7934094cf3 * Added MySQL Grid unit tests
From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>
2009-01-14 19:34:14 +00:00
Justin Clarke Casey 8d035b196d * Apply http://opensimulator.org/mantis/view.php?id=2948
* This fixes adding and updating user profiles in MySQL on platforms that have a commas as a decimal separator
* Thanks Tommil!
2009-01-07 18:46:27 +00:00
Sean Dague d8a2ad5cb5 change the drop order to see if this affects unit test fails
From: Sean Dague <sdague@gmail.com>
2009-01-05 15:59:08 +00:00
Justin Clarke Casey e64d9b66a9 * Fix http://opensimulator.org/mantis/view.php?id=2889
* Primshapes uuid wasn't being converted to raw (non-dashed) format before being used in primshapes delete command
2008-12-23 20:41:52 +00:00
Homer Horwitz fb49e010b7 Update the MySQL connector to 5.2.5. Fixes Mantids#2673. Thanks for the hint, jhurliman. 2008-12-22 19:49:17 +00:00
Sean Dague 444436db15 change a UUID cast to an actual new UUID call to be consistant with
the rest of the assignments here.
2008-12-08 17:06:47 +00:00
Sean Dague a260466147 fix an issue I found where primshapes weren't every being removed
because of a logic error.
attempt to speed up deletes a bit by batching up all the primitem
deletes and primshape deletes into single delete statements.  This
removes the lock/release/lock/release/lock/release for loop.
2008-12-08 16:29:48 +00:00
Justin Clarke Casey 26fd6c741f * Resolve http://opensimulator.org/mantis/view.php?id=2743 and http://opensimulator.org/mantis/view.php?id=2739 by no longer bothering to store or retrieve the local parentID in
the region database
* The original issue is that the now randomly generated local ids do not fit into the int parentID datatype
* However, as far as I know it's actually pointless to store this local parent ID anyway (we already store the groupUUID), especially as we don't bother to store the localID (as 
opposed to UUID itself).
* Conservatively, the actual column will be removed in a later commit
2008-12-02 14:59:52 +00:00
Melanie Thielker bf4ccf3858 Catch all possible exceptions in the mysql module. It throws non-mysql
exceptions as well.
2008-12-02 01:50:15 +00:00
Melanie Thielker 733faf9748 Fix the terrain loader 2008-12-01 19:08:58 +00:00
Melanie Thielker 5727146d61 More reverts. Revert the MySQL database module. This caused more issues
than it solved by trying to use, and then exhausting, the connection pool
2008-12-01 18:59:13 +00:00
Melanie Thielker 38380def17 More changes to the MySQL adapter. take advantage of pooling and run lock-free.
This should finally kill the "There is already an open data reader associated
with this connection, which must be closed first" error that makes people's
builds not save
2008-11-30 05:20:19 +00:00
Jeff Ames 077314cdd3 Update svn properties. Add copyright header. Minor formatting cleanup. 2008-11-30 00:51:40 +00:00
Melanie Thielker d579246257 Explicitly Dispose() all cmd objects 2008-11-29 21:24:54 +00:00
Justin Clarke Casey 8ba6b2b11a * minor: remove mono compiler warnings 2008-11-27 19:51:11 +00:00
Justin Clarke Casey 45c50998c2 * Remove unused and largely unimplemented UpdateUserCurrentRegion()
* please say if this causes you a problem
2008-11-27 19:43:26 +00:00
Justin Clarke Casey c85e2a0fb0 * restore deleted method documentation, some to IRegionDataStore and some to MySQLRegionData
* I would like to keep documentation on methods, even if it sometimes seems obvious (and not all of these are)
2008-11-26 17:42:35 +00:00
Melanie Thielker fdf5f55a5b Yay for unit tests. Increased the type width of the prims and primshapes
tables, and changed the database modules to actually push these doubles
down into the database layer.
2008-11-26 12:23:56 +00:00
Melanie Thielker 4fdda32cd3 A migration to make the floats in prims table be doubles 2008-11-26 11:38:58 +00:00
Melanie Thielker 841c53003f A migration to convert the floats int the database to doubles.
Maybe we don't have to say "Shift happens" as often anymore....
2008-11-26 09:05:11 +00:00
Melanie Thielker 3388584aa8 Fix 2 of the failed tests. Cause terrain queries to return null when no
terrain is found, rather than a default "0" terrain.
Remove the "remove object wrong region" test. UUIDs either are unique
or they're not. This test tested a bad behavior I have chosen not to 
duplicate.
2008-11-26 08:06:14 +00:00
Melanie Thielker 3efdccbb12 Committing the LCO database layer. Native MySQL, no ADO. New reconnect
mechanism to prevent prim loss. Preserve link order on sim restart
and drag copy. Fix drag-copied prims' inventories. Fix persistence
of child prim inventories.
2008-11-26 07:34:38 +00:00
Melanie Thielker 95fec14201 Remove code from an experimantal patch that wasn't supposed to be committed 2008-11-23 21:03:54 +00:00
Melanie Thielker fba9e3f513 Don't serve texture preview from other people's objects if you
havenever seen that texture before.
2008-11-23 20:39:51 +00:00
Melanie Thielker cbd0221870 Plumb in the presence notifications and region shutdown/restart messages
from the presence module to the message server, through the user server
and on into the database. This should fix the "Already logged in" issue
that grids see after a sim crashes, or a user crashes out of a sim.
Not yet a 100% solution for friends, but getting there.
2008-11-23 05:16:07 +00:00
Justin Clarke Casey 915593bfbc * refactor: Rip out SOP inventory from the partial into a separate class
* SceneObjectPartInventory.cs isn't a particularly good name but it's probably not got a long life
* A proper inventory interface to follow
* Parallel changes for other inventory partial classes to follow at a later date
2008-11-21 21:16:42 +00:00
Jeff Ames ecac5c9c5a Update svn properties, minor formatting cleanup. 2008-11-21 18:44:48 +00:00
Charles Krinke 44c56a974c Mantis#2656. Thank you kindly, Nlin for a patch that:
Attached patch implements llCollisionSound. Thanks T. Sado.
2008-11-19 18:30:16 +00:00
Sean Dague 5517ea3dfd Fixed MySQL and SQLite so they will save the
variable sun vector, adding 3 new fields on both.

From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>
2008-11-18 12:48:36 +00:00
Melanie Thielker 8e119130c5 Make a quick stab at the "Open data reader" issue.
MySqlDataReader needs to be Close()d explicitly. Disposing it or letting
it fall out of scope will not free it's hold on the connection.
2008-11-16 04:39:41 +00:00
Homer Horwitz e26169f0b0 Mantis#2552: Thanks idb, for a patch that fixes persistence of physical prims.
(added a fix for the broken build from last commit, too)
2008-11-15 18:00:34 +00:00
Melanie Thielker 1bd0721dbe Add SQLite and the missing migrations files for last commit 2008-11-14 19:00:14 +00:00
Melanie Thielker d66f3993de Add group permissions to agent inventory.
Contains a migration. May contain nuts.
Please back up your inventory data store. This revision changes the interface
version!! No older regions can connect to these new UGAIM, and the new regions
can't connect to the old UGAIM. Fixes a long-standing issue of permissions loss
Currently persisted on MySQL only.
2008-11-14 18:54:38 +00:00
Sean Dague cc5ccfb315 make inventory item listing more robust. It turns out that a bad item
(one that won't parse right) will prevent all other items in that folder
to load when inventory is requested.  This is very careful to no longer
add inventory items that return as null to the hash table for
getInventoryInFolder, as well as be more careful parsing UUIDs for
fields that aren't marked not null in MySQL.

The net result, you may see previously missing inventory items return
after this checkin.  Folders probably need to be hardened in the same
way, but I'm out of time for today.
2008-11-13 22:53:49 +00:00
Melanie Thielker c18ce34d06 Update avatar picker search to work with OpenSearch people search 2008-11-13 03:24:23 +00:00
Justin Clarke Casey 0e180b0ad3 * refactor: Expose SOG.SetRootPart for outsiders to use rather than setting RootPart and adding the part separately
* Make RootPart read only
2008-11-10 20:04:55 +00:00
Homer Horwitz 344b725d3b Mantis#2598: Thanks Fly-Man- for a patch that fixes a client-thread crash by
allowing landFlags bit 31 to be used (Int32 -> UInt32).
2008-11-08 20:04:28 +00:00
Jeff Ames bbb8d6fc51 Remove empty OSUUID.cs file. Add copyright headers. Minor formatting cleanup. 2008-11-08 14:28:43 +00:00
Sean Dague 629b0d9f28 add create_time and access_time to asset db for mysql, as well
as the code to update these at the appropriate time.  This isn't
surfaced in AssetBase yet.

Change the replace into to an insert into for asset create.  Assets
are not supposed to be updatable, and the replace into is more
expensive.

From: Sean Dague <sdague@gmail.com>
2008-11-06 21:21:46 +00:00
Sean Dague 46492f3c11 From: arthursv@linux.vnet.ibm.com
Add more unit tests for user cases
Persist more user fields into mysql that already had columns
defined but weren't getting passed to the mysql manager.
2008-11-06 17:07:08 +00:00
Sean Dague 7d6dc3b099 add some null protection on email
From: Sean Dague <sdague@gmail.com>
2008-11-04 19:26:17 +00:00
Sean Dague 702249358b implement email field for MySQL and SQLite
From: Sean Dague <sdague@gmail.com>
2008-11-04 14:54:42 +00:00
Adam Frisby 84136c70d8 * Minor cleanup
* Added additional error message when a Object/SOG DB save fails so we can trace why.
2008-11-01 22:20:54 +00:00
Homer Horwitz 38e8853e57 Megapatch that fixes/adds: friend offer/deny/accept, friendship termination,
on-/offline updates, calling cards for friends.
This adds methods in the DB layer and changes the MessagingServer, so a full
update (incl. UGAIM) is necessary to get it working. Older regions shouldn't
break, nor should older UGAIM break newer regions, but friends/presence will
only work with all concerned parts (UGAIM, source region and destination
region) at this revision (or later).
I added the DB code for MSSQL, too, but couldn't test that.
BEWARE: May contain bugs.
2008-11-01 22:09:48 +00:00
Homer Horwitz 44e377d1fb Fix a compile warning about unreachable code 2008-11-01 21:55:48 +00:00
Melanie Thielker 4fb2d70373 A stab a getting the user server to act right. Move acquisition of the
locks to just before the try/catch/finally block, so that an exception
thrown between taking the lock and entering the try doesn't leave a mutex
locked
2008-11-01 15:10:45 +00:00
Adam Frisby 129610e797 * Added some debug information to MySQL UserDataManager to help diagnose a potential issue when in high load. Related to mantis #2508. 2008-10-31 04:58:14 +00:00
Sean Dague 9e353d5713 - Includes consistency test for new and updated objects, as
some fixes in MySQL and SQLite

From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>
2008-10-30 12:56:10 +00:00
Sean Dague 409e7262df Mid-work, trying to fix region part insertion and retrieval
SQLite reports System NUll Reference, but works, inside
LoadItems, on SQLiteRegionData.cs

From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>
2008-10-30 12:56:04 +00:00
Melanie Thielker efe3f3eb2a Megapatch. :) Fix skull attachment editing. Streamline Object terse updates.
Add rezzing time to objects. Add Object return and traffic fields to land
database. Add plumbing for auto return. Implement auto return.
Contains a migration. May contain nuts.
2008-10-18 05:51:36 +00:00
Sean Dague 72725a0894 - Enforced no user or agent with UUID 0 on agent DB insertion 2008-10-16 15:57:59 +00:00
Justin Clarke Casey fac4d02d7e * minor: comment out persisting prim inventory log messages 2008-10-15 19:54:07 +00:00
Sean Dague fa8c0d7683 - Makes MySQL reject inserting UUID 0
- Makes SQLite mimick MySQL default behavior on first
  and last name already on db: it does not insert the
  new record.
- Added tests for UUID 0 and for new UUID with existing
  first and last name.
2008-10-15 18:15:43 +00:00
Homer Horwitz 16d68749a4 Add the missing bits for the new region-search:
- Added lookup in the data-layer
  - MySQL works
  - SQLite doesn't have a grid-db, so it won't work there
  - I added MSSQL-code to the best of my knowledge; but I don't know MSSQL :-)
- Added the plumbing up to OGS1GridServices. This speaks with the grid-server
  via XMLRPC.
- Modified MapSearchModule to use the new data. It's backward compatible; if
  used with an old grid-server, it just returns one found region instead of a
  list.
- Refactored a bit.
Note: This updates data, grid-server and region code. No new files.
2008-10-03 23:00:42 +00:00
Melanie Thielker ec47a1bff2 Add database persistence for material setting 2008-10-03 12:11:38 +00:00
Sean Dague d009927194 add delete prim tests. Found and fixed bugs where region
is not respected by sqlite or mysql drivers so that deleting
and object in a region actually deletes that object from any
region.
2008-10-01 15:41:36 +00:00
Jeff Ames 0b4415849a Update svn properties. Minor formatting cleanup. Fix a compiler warning. Fix a UUID vs null comparison. 2008-09-28 03:21:11 +00:00
Teravus Ovares 16b6738cda * Patch from JHurliman
* Updates to libomv r2243, 
* Remove lots of unnecessary typecasts
* Improves SendWindData()
Thanks jhurliman. 
* Will update OpenSim-libs in 10 minutes..
2008-09-26 17:25:22 +00:00
Sean Dague 7117f8b680 removal of more dead alter table code 2008-09-25 00:20:57 +00:00
Sean Dague c3f66be405 light mysql user tests 2008-09-24 21:17:00 +00:00
Sean Dague 2ef1b194fd expose it for real, missed the public keyword 2008-09-24 21:16:58 +00:00
Sean Dague b4f204e526 expose MySQLUserData class so that it can be tested 2008-09-24 21:16:56 +00:00
Sean Dague dabb311711 remove configurable table names from the mysql user driver. That
doesn't work in a world of migrations anyway, and is only cruft that
will confuse people.
2008-09-24 21:16:47 +00:00
Homer Horwitz fe9aea258f Add persistence of active gestures. This needs an UGAIM update to work.
Active gestures are sent as part of the login-response. Added
fetchActiveGestures to SQLite and MySQL; added an empty one for MSSQL and
NHibernate. Using the empty ones won't cause errors, but doesn't provide
persistence either, of course.
2008-09-24 21:12:21 +00:00
Sean Dague cffb975dd9 light the mysql region tests 2008-09-24 21:03:11 +00:00
Sean Dague 6392671335 let the asset tests run on MySQL. Interesting difference here, the
sqlite driver can handle .Data = Null, the mysql driver can not.  We
should decide which is the right behavior and adjust code for it.
2008-09-24 20:43:32 +00:00
Sean Dague a70efd1fdf create the first attempted mysql test. This only runs locally if you
have a database configured as opensim-nunit with user opensim-nunit /
password opensim-nunit that has full perms on the database.
2008-09-23 21:03:03 +00:00
Sean Dague 9a17d2b1fd remove log4net references, see if that helps fix bamboo 2008-09-23 19:11:06 +00:00
Sean Dague 908f1bcbe2 check in stubbing for mysql tests. This is ignored with
Assert.Ignore() for now, so it won't change anything, but
I want to make sure it doesn't break the bamboo infrastructure
in it's current state.
2008-09-23 18:38:25 +00:00
Homer Horwitz 1c08f46ec3 - Add Dispose method to IRegionDataStore
- Add necessary dummy Dispose-methods where they are missing
- Implement the SQLite Dispose-methods
(currently only used for unit tests, in the next commit)
2008-09-18 20:10:09 +00:00
Melanie Thielker 2819559499 Mantis #2124
Thank you, RuudL, for a patch that brings MSSQL up to the same
implementation level as MySQL.
2008-09-14 13:23:02 +00:00
Charles Krinke 1d5e870ee2 Thank you kindly, CMickeyb for a patch that:
Moved intialization of appearance from the SendInitialData 
event handler into CompleteMovement handler. That ensures 
that m_appearance is initialized before the inventory is 
retrieved (so there is a place to check on attachments).
2008-09-14 02:56:51 +00:00
Justin Clarke Casey 2d7aca6d9d * Add userstore sql upgrade I carelessly forgot to check in a couple of revisions ago
* Hopefully there wasn't a problem anyway, since the look at stuff isn't enabled yet
2008-09-12 20:38:20 +00:00
Justin Clarke Casey 52a4c4d82f * Check in first part of http://opensimulator.org/mantis/view.php?id=2073
* This patch aims to introduce look at direction persistence between logins.  It won't be active until the second part of the patch is committed in about two weeks time.  At 
this point, region servers that haven't upgraded past this revision may run into problems
* This checkin upgrades the user database.  As always, we recommend you have backups in case something goes wrong.
* Many thanks to tyre for this patch.
2008-09-12 20:12:03 +00:00
Melanie Thielker a68e34b558 Mantis #511
Allow parsing of hexadecimal int constants from strings.
Also fixes a DBNull value in the touch type field crashing the sim
2008-09-10 06:14:38 +00:00
Mike Mazur e0d092ec53 Thanks, nlin, for a patch implementing persistence for "When Left Clicked"
object property. Fix issue 2149.
2008-09-10 00:19:36 +00:00
Jeff Ames fae34bb10c Update svn properties, formatting cleanup. 2008-09-09 01:26:48 +00:00
Melanie Thielker 490ac0be00 Implement proper persistence of the following prim properties:
Floating text, Rotation, Texture animation, Particle System
This will make "Eye Candy" scripts work without modification in
XEngine. The use of the CHANGED_REGION_RESTART hack is no longer
needed. Implemented in MySQL only, hovertext also in SQLite.
2008-09-08 02:40:20 +00:00
Melanie Thielker 9e545c9984 Mantis #2133
Thank you, Xugu Madison and ChrisDown, for a patch that
fixes linux filename extensions from .Xml back to .xml
2008-09-06 14:58:23 +00:00
Teravus Ovares 7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point.  Regular people should let the dust settle.
* This has been tested to work with most basic functions. However..   make sure you back up 'everything' before using this.  It's that big!  
* Essentially we're back at square 1 in the testing phase..  so lets identify things that broke.
2008-09-06 07:52:41 +00:00
Jeff Ames 9053e8510c Update svn properties. 2008-09-03 14:05:49 +00:00
Melanie Thielker e98780fea5 Mantis #2099
Thank you, cmickeyb, for a patch that corrects the database connection
handling in the multithreaded user server.
2008-09-03 02:51:34 +00:00
Sean Dague abb0ad36bd apparently I missed one of the old version routines that could be
removed.  Removing that now.
2008-09-02 20:17:57 +00:00
Adam Frisby 2133fa56e7 * Added new MySQLSuperManager support for the grid servers.
* In theory, login and a large number of grid functions should now at least be multithreaded.
2008-08-30 19:35:22 +00:00
Adam Frisby 72b0a53ada * Fixed #2807 Again, Whoops. 2008-08-30 16:46:51 +00:00
Adam Frisby e471a33961 * Fix for Mantis #2087, Standalone MySQL broken with threading improvements. (Didnt realise this code was being shared with the gridservers) 2008-08-30 14:27:28 +00:00
Adam Frisby b63922dcfe * Minor fix to previous threading patch, every nTH request would previously have been delayed for 1000ms. This has been fixed. 2008-08-30 13:46:04 +00:00
Adam Frisby 0a5280edb5 * Added new "SuperManager" class for MySQL connections, for allowing multiple concurrent MySQL threads.
* Implemented SuperManager inside of UserData. This means the userserver when running on MySQL will use 10 connections (+1 system connection) to handle requests, preventing the previous mire of locking resulting in singlethreadedness.
* This requires testing and grids relying on stability should not upgrade to this revision until it's been properly tested.
2008-08-30 13:38:46 +00:00
Sean Dague 5bf5e1c320 remove legacy pre-Migration database upgrade routines 2008-08-27 18:51:43 +00:00
Sean Dague 49df787665 remove the legacy pre-Migration database upgrade paths 2008-08-27 18:51:42 +00:00
Sean Dague ba16a27ab0 remove pre-Migration upgrade paths 2008-08-27 18:51:40 +00:00
Sean Dague 53afa23608 we're past checkin 6000, so now cleaning up all the cruft of the pre
migration database upgrade paths.  This is coming in in stages.
2008-08-27 18:51:36 +00:00
Charles Krinke d2f2ec12fd Mantis#2027. Thank you kindly, HomerHorwitz for a patch that addresses:
Analysis shows that the XMLRPC-request contains an empty string (<string />) 
for the custom_type parameter, which is deserialized wrongly to a null-value, 
thus leading to the exception above. The attached patch (against r5967) fixes 
the symptom and uses "" for customType in that case.
2008-08-24 18:32:39 +00:00
Melanie Thielker 07cb1d4f0e Selling an object in-place (as original) now works. Builders can
now ply their trade. Is that nuts?
2008-08-24 06:39:54 +00:00
Melanie Thielker c9b5641c49 Plumb the data path for all those eye candy values. Saves texture
animation, target omega, looped sound, script access pin, allowed
drop state and sale data. Loads it, too. Not all tested.
Code: No Nuts. Data: Cannot Guarantee Nut Free.
2008-08-24 05:25:26 +00:00
Melanie Thielker f9ec65bc21 Add the fields for the eye candy and sale featires to the prims table.
No user functionality yet.
Run prebuild. Contains a Migration. May contain nuts.
2008-08-24 03:15:02 +00:00
Melanie Thielker 41440e184b Attachment persistence (Mantis #1711)
Change user server to handle attachment assets record properly. Ensure
that attachments are not re-rezzed on region crossing. Persistence
will NOT WORK with earliser UGAI!!
Change region server to match.
2008-08-19 18:34:46 +00:00
Jeff Ames bea7d4d81a Update svn properties, formatting cleanup. 2008-08-19 02:59:27 +00:00
Melanie Thielker 6d2e1ad6ba Attachment persistence!!! Patch #9169 (Mantis #1171)
Attachments now save to MySQL. No reattach on login yet.
2008-08-19 02:12:40 +00:00