]> 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 33147/head
authorMichal Skalski <mskalski@juniper.net>
Wed, 29 Jan 2020 00:29:58 +0000 (01:29 +0100)
committerShyukri Shyukriev <shshyukriev@suse.com>
Sat, 8 Feb 2020 21:12:07 +0000 (23:12 +0200)
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>
(cherry picked from commit 5201048bbb16d6b4833585b9998c9d0364aaeac4)

src/crush/CrushLocation.cc

index a73a739c785c637f0a5d2d6006fe49f4bde5d508..2032bf71c98fe316c5e54b8a57f484310b4f49a9 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