MantisBT - opensim
View Issue Details
0007895opensim[REGION] OpenSim Corepublic2016-04-26 20:082016-05-11 16:44
master (dev code) 
Grid (1 Region per Sim)
Mono / Linux64
0007895: Region crash with SIGSEGV.

Native stacktrace:

        mono() [0x4aba28]
        mono() [0x4ff1de]
        mono() [0x424462]
        /lib64/ [0x7f8728fb4100]
        /lib64/ [0x7f8728fb5172]
        mono() [0x635bbb]
        mono() [0x58bef3]

Debug info from gdb:

Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
Got this error on two idling regions, two days in a row now. Built with, and running under, Mono
No tags attached.
related to 0007900closed  Crash due to setting after thread start. [PATCH] 
Issue History
2016-04-26 20:08smxyNew Issue
2016-05-01 21:36smxyNote Added: 0030256
2016-05-02 03:00zadarkNote Added: 0030257
2016-05-02 05:36smxyNote Added: 0030258
2016-05-02 05:37smxyNote Edited: 0030256bug_revision_view_page.php?bugnote_id=30256#r5374
2016-05-02 19:54smxyNote Added: 0030263
2016-05-11 16:44smxyRelationship addedrelated to 0007900

2016-05-01 21:36   
(edited on: 2016-05-02 05:37)
With approximately 55 regions, I'm seeing this fairly regularly. Not sure what to do about it though.

2016-05-02 03:00   
@smxy. This issue is more pronounced with later Linux kernels. It also affects MS DotNet installations though less obvious.
If you would be prepared to edit (one liners) OpenSim source and confirm a fix I will pass you the edit requirements. There are only so many permutations of Linux I have access to and any additional support for the effectiveness of the change would be appreciated.
Once testing is completed I will issue a patch.
2016-05-02 05:36   
Later kernels, eh? I did just recently switch from CentOS 6 to 7, with a kernel change from 2.6.32 to 3.10.0 ...

Send me your proposed fix and let's see if it helps. :)
2016-05-02 19:54   
Just so it's documented, the fix you have me trying out is to comment out this line, in OpenSim/Framework/Monitoring/WorkManager.cs:

thread.Name = name;

and this line, in ThirdParty/SmartThreadPool/SmartThreadPool.cs:

workerThread.Name = string.Format("STP:{0}:{1}", Name, _threadCounter);