CompEvol / beast2

Bayesian Evolutionary Analysis by Sampling Trees
www.beast2.org
GNU Lesser General Public License v2.1
236 stars 83 forks source link

Warning: Duplicate cpuset controllers detected #1127

Open MordorianGuy opened 11 months ago

MordorianGuy commented 11 months ago

I installed the last 2.7 Linux_x86 version instead of 2.6 on a remote cluster. After this, I get the warnings like "[0.002s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /dev/cpuset." any time I run beast shell script. There was no anything similar with 2.6. Is it okay?

rbouckaert commented 11 months ago

The difference between the v2.6 and v2.7 beast script is that it calls uname -m to determine the CPU type and it is using a different java version. Can you run that command on its own and see whether it produces the same warning?

https://github.com/NixOS/nixpkgs/issues/163164 suggests it may have something to do with java: can you try java -version and /path/to/beast/jre/bin/java -version (replace /path/to to where beast is installed) as well?

MordorianGuy commented 11 months ago

The difference between the v2.6 and v2.7 beast script is that it calls uname -m to determine the CPU type and it is using a different java version. Can you run that command on its own and see whether it produces the same warning?

NixOS/nixpkgs#163164 suggests it may have something to do with java: can you try java -version and /path/to/beast/jre/bin/java -version (replace /path/to to where beast is installed) as well?

uname -m returns x86_64.

My Java, java -version returns:

openjdk version "11.0.9.1-internal" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1-internal+0-adhoc..src)
OpenJDK 64-Bit Server VM (build 11.0.9.1-internal+0-adhoc..src, mixed mode)

The Java come with BEAST 2.7 returns:

[0.002s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /dev/cpuset.
openjdk version "17.0.3" 2022-04-19 LTS
OpenJDK Runtime Environment Zulu17.34+19-CA (build 17.0.3+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.34+19-CA (build 17.0.3+7-LTS, mixed mode, sharing)
rbouckaert commented 11 months ago

Thanks! So, it looks like it is the java implementation included with BEAST v2.7 that is causing the error message. If beast still starts after producing this warning, I think it should be OK. From what I understand, adding -Xlog:disable as java directive suppresses this warning.

I would appreciate if you can confirm that beast runs as before and /path/to/beast/jre/bin/java -Xlog:disable -version suppresses the warning, I can update the beast script.

MordorianGuy commented 11 months ago

Thanks! So, it looks like it is the java implementation included with BEAST v2.7 that is causing the error message. If beast still starts after producing this warning, I think it should be OK. From what I understand, adding -Xlog:disable as java directive suppresses this warning.

I would appreciate if you can confirm that beast runs as before and /path/to/beast/jre/bin/java -Xlog:disable -version suppresses the warning, I can update the beast script.

Yes, it seems to be working. I have launched about fifty analyses, and they look normal for a while. The argument -Xlog:disable indeed suppresses the warning.

MordorianGuy commented 11 months ago

But, I am unsure if it should be suppressed in the script. Since the problem is not one excessive line of warnings but the question: does it influence the results, especially when multithreading is turned on?

rbouckaert commented 11 months ago

Thanks for the confirmation. From what I can find out, it seems to be a configuration issue with the system that runs java (making multiple cpusets available), which is annoying when processing the output but seems harmless otherwise. Can you perhaps ask the system administrator of the cluster to have a look into this?

MordorianGuy commented 11 months ago

Thank you very much for your help!