|Anonymous | Login | Signup for a new account||2020-04-01 12:41 PDT|
|Main | My View | View Issues | Change Log | Roadmap | Summary | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0008620||opensim||[REGION] OpenSim Core||public||2019-10-29 08:53||2019-10-29 13:43|
|Target Version||Fixed in Version|
|Summary||0008620: Simulator hangs forever after <ctrl>-c on Linux|
|Description||On the Metropolis grid regions are deregistred from the grid whenever the simulator has been shut down by issuing a shutdown or quit command at the OpenSim console. Especially on home based simulators this leads to conflicts, as grid coordinates and region names can be reused by others. |
For this reason it's a well known practice to shutdown the simulator using <ctrl>-c from the OpenSim console. While this works well on Windows systems it seems to block the terminal window in Linux systems.
It doesn't matter whether <ctrl>-c has been pressed in the simulator console window or a SIGINT signal has been sent by issuing a "kill -2 <pid>" command from another terminal window.
|Steps To Reproduce||1) Run the simulator|
2) enter <ctrl>-c from the simulator console
|Additional Information||Related to 0007743, where shutdown and quit were affected as well.|
|Tags||No tags attached.|
|Git Revision or version number||4797f8210c|
|Run Mode||Standalone (1 Region) , Standalone (Multiple Regions) , Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)|
|Environment||Mono / Linux64|
|Did not yet test in detail, but I've seen this on both, Simulator/Region console and Robust as well.|
Yes, we still have that issue on Mono.
cntrl-c and signals still bypass normal shutdown. Doing fast application shutdown
But doing that, Mono runtime still fails to stop some threads, it was suposed to (background threads), so it just hangs..
.net runtime code does not show that issue.
Yes, already tested, it only applies to Linux (I dont know about Mac).
Do you have any ideas how it could be improved?
I was thinking about a Console.CancelKeyPress event and stop threads from there or set a flag that can be ckecked.
|For Metropolis or grids like that it would make more sense to either handle reservations for coordinates via a separate system or patch the deregistration out entirely, both can be easily done. That has nothing to do with the bug itself, but I felt like mentioning that the method described is kind of a hack and should be handled more gracefully(shutdown is there for a reason else you lose progress)|
Ferd Frederix (reporter)
Ctrl-C can destroy or lose fresh objects, scripts, and other assets as the backup task only runs every 5 minutes. Be sure to type 'backup', and let it finish before slaughtering the sim. Ctrl-C can still kill assets as it is non-ACID. It's just a bad idea that should be avoided. See https://en.wikipedia.org/wiki/ACID [^]
Opensim already has a way to hold a region persistent, so you can shut it down properly with quit. Just add it to the list as Region_Name=Persistent in Robust.ini, in section [GridService]. When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
Another tip: double quotes are never needed in the INI files.
If you want quick kill on linux just kill it's pid, but I'd agree that it's a bad idea to quick kill a running simulator ..
Personally I'd like it better if Ctrl-C did NOTHING .. Just my .02
|2019-10-29 08:53||piusnoel||New Issue|
|2019-10-29 08:56||piusnoel||Relationship added||related to 0007743|
|2019-10-29 09:00||piusnoel||Note Added: 0035795|
|2019-10-29 09:03||UbitUmarov||Note Added: 0035796|
|2019-10-29 09:25||piusnoel||Note Added: 0035797|
|2019-10-29 11:54||tampa||Note Added: 0035801|
|2019-10-29 13:40||Ferd Frederix||Note Added: 0035803|
|2019-10-29 13:43||BillBlight||Note Added: 0035804|
|Copyright © 2000 - 2012 MantisBT Group|