[SERVER-9325] Add blockCheckSupported() features to Solaris/SmartOS build Created: 11/Apr/13 Updated: 11/Jul/16 Resolved: 08/Jun/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | None |
| Fix Version/s: | 2.4.6, 2.5.1 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Tad Marshall | Assignee: | Tad Marshall |
| Resolution: | Done | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Solaris/SmartOS build |
||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
mongod will use the mincore() kernel function (or the similar Windows QueryWorkingSetEx() API) on platforms where we have provided support in a src/mongo/util/processinfo_<platform>.cpp file to enable better runtime decisions about when to throw a PageFaultException. We do not provide a processinfo_*.cpp file for Solaris/SmartOS, though Solaris has support for mincore() (according to http://www.opensolarisforum.org/man/man2/mincore.html) and has supported the mincore() function since Solaris 9 (according to http://fossies.org/linux/privat/libsigsegv-2.10.tar.gz:a/libsigsegv-2.10/src/stackvma-mincore.c). The missing support results in a warning message being displayed by mongod in the Solaris/SmartOS build, and in the jstests/block_check_supported.js test reporting failure (because Solaris is not being excluded from testing):
It would be good to add a src/mongo/util/processinfo_solaris.cpp file (similar to the Linux version) to enable this support. If required, the structure of this support allows this to be a runtime test. |
| Comments |
| Comment by auto [ 18/Jul/13 ] |
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: Implement a processinfo_*.cpp file for Solaris, providing support for |
| Comment by auto [ 17/Jul/13 ] |
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: This makes the build compile on Solaris 11.1 in addition to SmartOS. |
| Comment by Tad Marshall [ 08/Jun/13 ] |
|
Suggest backport to 2.4 and 2.2. Backports will need a tweak to use pid_t instead of ProcessId, which was added in 2.5, otherwise the code should just work. |
| Comment by auto [ 08/Jun/13 ] |
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: Implement a processinfo_*.cpp file for Solaris, providing support for |
| Comment by auto [ 30/Apr/13 ] |
|
Author: {u'date': u'2013-04-22T17:10:00Z', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: Until |
| Comment by auto [ 18/Apr/13 ] |
|
Author: {u'date': u'2013-04-15T13:21:17Z', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: This makes the build compile on Solaris 11.1 in addition to SmartOS. |
| Comment by Tad Marshall [ 15/Apr/13 ] |
|
We are also missing most of the information in db.hostInfo() in the Solaris/SmartOS build. |