|Anonymous | Login | Signup for a new account||2019-10-20 15:31 PDT|
|Main | My View | View Issues | Change Log | Roadmap | Summary | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006375||opensim||[REGION] OpenSim Core||public||2012-10-24 06:42||2014-07-29 13:41|
|Product Version||master (dev code)|
|Target Version||master (dev code)||Fixed in Version|
|Summary||0006375: [PATCH] Bug fixes for scene shutdown, GetRootFolder(), and CollisionSoundsAssetSet.xml|
|Description||This issue includes several small bug fixes:|
When a scene shuts down there are nearly always a few errors, because the main Update loop is still running and the objects that it's accessing suddenly become null. I added a Shutdown lock that stops shutdown from proceeding until the Update loop exits. (This is very fast, because it just takes one frame.)
This patch fixes two different ways in which XInventoryService can fail to return the root folder: in GetRootFolder() and in GetSystemFolderForType(AssetType.RootFolder).
There were several assets with the same UUID in CollisionSoundsAssetSet.xml. I changed them to use unique UUID's.
Fixed spelling of "course" to "coarse".
|Tags||No tags attached.|
|Git Revision or version number||50409ac8042126172f9261d9316e84ee5de96894|
|Run Mode||Grid (Multiple Regions per Sim)|
|Environment||Mono / Linux32|
|Attached Files|| 0001-Prevent-errors-when-a-scene-shuts-down-by-locking-ac.patch [^] (4,480 bytes) 2012-10-24 06:42 [Show Content]
0001-Changed-duplicate-Asset-ID-s-to-unique-ID-s-in-Colli.patch [^] (2,862 bytes) 2012-10-24 06:43 [Show Content]
0001-Changed-course-to-coarse-in-several-places.patch [^] (8,273 bytes) 2012-10-24 06:43 [Show Content]
0001-Fixed-bugs-when-getting-the-root-folder.patch [^] (1,998 bytes) 2012-12-16 01:32 [Show Content]
Applied 3rd and 4th patches, thanks Oren.
Regarding patch 2, I am happy to apply but please could you add more detail to the commit message (exactly what it is fixing). This is essential if a patch needs to be identified due to a regression or when cherry-picking fixes.
Regarding patch 1, I have commonly seen exceptions thrown on shutdown as well in regions with scripts that are constantly firing events. However, in my case, I believe this is due to a window introduced by the disposal of the Physics scene (commit c150320 on Thu Jul 26 15:27:18 2012). The script engine shutdown was triggered after this via EventManager.OnShutdown() as called by SceneBase.Close(), so there was a window in which script events could still fire that would make calls that would attempt to access PhysicsScene.
I have resolved this in commit 22e216f and so far I haven't seen the exceptions that I have been seeing.
I find it difficult to believe that m_shuttingDown = true is an issue due to the big 500ms sleep immediately after this is set. It's a very blunt tool, but as each scene loop (in theory) takes 18ms, it would need a pathologically delayed scene loop for this to still be running after the sleep elapses.
Admittedly this may well still be a good idea anyway, though I'm a bit loathe to put more lock calls in the critical main update loop.
Or I may be barking up the wrong tree and the exceptions that you're seeing are clearly connected with the scene loop still being active even after the 500ms sleep. If that's the case, please do post further details.
|I replaced patch 2 to add more details. The filename has changed; the new patch is 0001-Fixed-bugs-when-getting-the-root-folder.patch.|
|Regarding patch 1 (the Shutdown lock): I disabled my patch and used your (Justin's) patch that changes the shutdown order instead. I haven't had problems so far. So I'm withdrawing this patch. If the problem reoccurs then I will submit it again.|
|Applied new patch 2 as git master a0739a8. Thanks Oren.|
|2012-10-24 06:42||orenh||New Issue|
|2012-10-24 06:42||orenh||Status||new => assigned|
|2012-10-24 06:42||orenh||Assigned To||=> justincc|
|2012-10-24 06:42||orenh||File Added: 0001-Prevent-errors-when-a-scene-shuts-down-by-locking-ac.patch|
|2012-10-24 06:43||orenh||File Added: 0001-Fixed-XInventoryService.GetRootFolder.patch|
|2012-10-24 06:43||orenh||File Added: 0001-Changed-duplicate-Asset-ID-s-to-unique-ID-s-in-Colli.patch|
|2012-10-24 06:43||orenh||File Added: 0001-Changed-course-to-coarse-in-several-places.patch|
|2012-10-24 06:43||orenh||Status||assigned => patch included|
|2012-10-25 16:05||justincc||Note Added: 0022926|
|2012-10-25 16:05||justincc||Status||patch included => patch feedback|
|2012-12-16 01:31||orenh||File Deleted: 0001-Fixed-XInventoryService.GetRootFolder.patch|
|2012-12-16 01:32||orenh||File Added: 0001-Fixed-bugs-when-getting-the-root-folder.patch|
|2012-12-16 01:33||orenh||Note Added: 0023264|
|2012-12-16 07:03||orenh||Note Added: 0023270|
|2012-12-16 07:04||orenh||Status||patch feedback => patch included|
|2013-01-01 16:08||justincc||Note Added: 0023351|
|2013-01-01 16:08||justincc||Status||patch included => resolved|
|2013-01-01 16:08||justincc||Resolution||open => fixed|
|2014-07-29 13:41||chi11ken||Status||resolved => closed|
|Copyright © 2000 - 2012 MantisBT Group|