Went down the list in shmkeys.h, added sane error msgs on perms
errors accessing rest of the shmsegs there.
Realized we probably do need 666 to the shmsegs.
Also deleted a little dead code that was copy-pasted everywhere.
Squashed commit of the following:
commit faaee9141a
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Wed Oct 3 13:03:02 2018 -0500
Commented a debugging printout.
commit e47e784c53
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Wed Oct 3 12:13:23 2018 -0500
Moved the SKIP_OAM_INIT check for cleanliness, added 'config.h' to
other places that need it.
commit 6626045535
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Tue Oct 2 16:33:06 2018 -0500
WIP. First cut of excising OAM and root access from the dev process.
This passes most tests; need to make sure that the tests that fail
have nothing to do with this change.
DMLProc is doing something that results in a sudo password prompt.
Will obliterate that next.
This passes most tests; need to make sure that the tests that fail
have nothing to do with this change.
DMLProc is doing something that results in a sudo password prompt.
Will obliterate that next.
When a thread has been idle for 10 minutes and we have too many threads
in the threadpool the thread will be pruned. This is done by the
thread's main function just returning. Unfortunately this does not free
up the memory, the thread either needs to be joined or detatched.
We cannot use detached threads since there are mutexes and conditional
variables between the main thread and the threadpool threads. If the
main thread finishes before the threadpool threads (as would happen in
cpimport) then crashes occur. The parent needs to wait on the child
threads which is the whole point in joining.
So this fix spawns a new thread which every minute will check the list
of threads to be joined due to timeout and join them.
We have had to use an adapted version of boost::thread_group so that we
can join a single thread based off its thread ID.
In addition with have modified PriorityThreadPool to use detached
threads since this does not need to signal the child threads at the end.