Bug #49724 LockPagesInMainMemory failure should give error code
| Submitted: | 15 Dec 2009 20:49 | Modified: | 25 Jan 2010 10:24 |
|---|---|---|---|
| Reporter: | Andrew Hutchings | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S4 (Feature request) |
| Version: | OS: | Any | |
| Assigned to: | Andrew Hutchings | CPU Architecture: | Any |
| Tags: | Contribution | ||
[15 Dec 2009 20:49]
Andrew Hutchings
[22 Jan 2010 0:20]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/97787 3359 Andrew Hutchings 2010-01-22 Bug #49724 LockPagesInMainMemory failure should give error code Add strerror(errno) to the error message, for example: 2010-01-21 23:59:17 [ndbd] WARNING -- Failed to memlock pages: Operation not permitted
[22 Jan 2010 9:30]
Magnus Blåudd
Please include the raw errno in error message as well.
[22 Jan 2010 9:52]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/97822 3360 Andrew Hutchings 2010-01-22 Bug #49724 LockPagesInMainMemory failure should give error code Add errno and strerror(errno) to the error message, for example: 2010-01-22 09:48:18 [ndbd] WARNING -- Failed to memlock pages, error: 12 (Cannot allocate memory)
[22 Jan 2010 10:40]
Magnus Blåudd
Few more comments:
1) The pointer returned by 'strerror' point to an operating system buffer and may be reset/modified by functions called from g_eventLogger->warning() (it can log to console, file or syslog). Suggest allocating a buffer on the stack and formatting the message there before calling the two functions.
2) The call to 'warningEvent' will pack the message into a signal and distribute it to all event listeners(i.e it will end up in the cluster log of ndb_mgmd) -> the buffer can be limited to 100 byte since the max message length in 'warningEvent' is 96.
3) There is a tab in front of 'warningEvent', please convert it to spaces.
4) Do "bzr uncommit" two times and start from scratch
Example:
=== modified file 'storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp'
--- storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp 2009-11-12 21:25:49 +0000
+++ storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp 2010-01-22 10:25:36 +0000
@@ -428,8 +428,12 @@
refresh_watch_dog(9);
int res = NdbMem_MemLockAll(0);
if(res != 0){
- g_eventLogger->warning("Failed to memlock pages");
- warningEvent("Failed to memlock pages");
+ char buf[100];
+ BaseString::snprintf(buf, sizeof(buf),
+ "Failed to memlock pages %d xxxx %s",
+ errno, strerror(errno));
+ g_eventLogger->warning("%s", buf);
+ warningEvent("%s", buf);
}
}
[22 Jan 2010 12:38]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/97868 3359 Andrew Hutchings 2010-01-22 Bug #49724 LockPagesInMainMemory failure should give error code Add errno and strerror(errno) to the error message, for example: 2010-01-22 09:48:18 [ndbd] WARNING -- Failed to memlock pages, error: 12 (Cannot allocate memory)
[25 Jan 2010 8:54]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/98016
[25 Jan 2010 8:57]
Magnus Blåudd
Pushed to 6.3.31 and 7.0.11
[25 Jan 2010 10:24]
Jon Stephens
Documented in the NDB-6.3.31 and 7.0.11 changelogs as follows:
When setting LockPagesInMainMemory failed, only the error -Failed to
memlock pages...- was returned. Now in such cases the operating
system error code is also returned.
Closed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.065 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.