You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Tomek Rękawek (JIRA)" <ji...@apache.org> on 2017/08/11 06:02:00 UTC

[jira] [Created] (OAK-6547) The machine id conflicts when running Oak in Docker containers

Tomek Rękawek created OAK-6547:
----------------------------------

             Summary: The machine id conflicts when running Oak in Docker containers
                 Key: OAK-6547
                 URL: https://issues.apache.org/jira/browse/OAK-6547
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: documentmk
            Reporter: Tomek Rękawek
            Priority: Minor
             Fix For: 1.8


When running multiple Oak cluster instances in the Docker containers on the same host, following message can be spotted:

{noformat}
10.08.2017 21:10:34.047 *INFO* [FelixStartLevel] org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo Found an existing possibly active cluster node info (1) for this instance: mac:0242ac120003//, will try use it.
10.08.2017 21:10:34.047 *INFO* [FelixStartLevel] org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo Waiting for cluster node 1's lease to expire: 96s left
10.08.2017 21:10:39.049 *INFO* [FelixStartLevel] org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo Waiting for cluster node 1's lease to expire: 91s left
{noformat}

This caused by the fact that all the instances have exactly the same machine id and process id when running in a containers.

My proposal is to use the Docker container id as the machine id. It can be read from the {{/proc/1/cgroup}}:

{noformat}
14:name=systemd:/docker/9a98ded1e2a49d87d59462b22e7eba647a7a2d4a46756a0839fe002db58a98f8
13:pids:/docker/9a98ded1e2a49d87d59462b22e7eba647a7a2d4a46756a0839fe002db58a98f8
...
1:name=openrc:/docker
{noformat}

The same file may be used to determine whether the Oak is running inside the Docker or not.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)