]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: Allow 64-char hostname to be added as the "host" in CRUSH 32947/head
authorMichal Skalski <mskalski@juniper.net>
Wed, 29 Jan 2020 00:29:58 +0000 (01:29 +0100)
committerMichal Skalski <mskalski@juniper.net>
Wed, 29 Jan 2020 16:50:11 +0000 (17:50 +0100)
On Linux system it is possible to set 64 character length hostname when
HOST_NAME_MAX is set to 64. It means that if we execute gethostname
function we should expect HOST_NAME_MAX characters + 1 for null
character ending hostname string as described here:
http://man7.org/linux/man-pages/man2/sethostname.2.html

With the current code on host with 64 long hostname osd during start
updates crush map with host=unknown_host.

Signed-off-by: Michal Skalski <mskalski@juniper.net>
src/crush/CrushLocation.cc

index 0e5a0855cd6a0b9b84fa472e22d92c990c87c646..9b02b0073336215ead22e74280160f500493e6eb 100644 (file)
@@ -105,7 +105,7 @@ int CrushLocation::init_on_startup()
 
   // start with a sane default
   char hostname[HOST_NAME_MAX + 1];
-  int r = gethostname(hostname, sizeof(hostname)-1);
+  int r = gethostname(hostname, sizeof(hostname));
   if (r < 0)
     strcpy(hostname, "unknown_host");
   // use short hostname