From 5b8de971a4b81bc2bd6de0ffc6386587226295c6 Mon Sep 17 00:00:00 2001 From: Anders Blomdell Date: Fri, 11 Jul 2014 19:10:21 +0200 Subject: Use C-locale for numeric/string conversion routines (strtod, ...) or config file parsing might fail. Change-Id: I649f29bbf87222399a0c2d1ed5a3bf136c613b9b BUG: 1117951 Signed-off-by: Anders Blomdell Reviewed-on: http://review.gluster.org/8299 Tested-by: Gluster Build System Reviewed-by: Prashanth Pai Reviewed-by: Vijay Bellur --- libglusterfs/src/logging.c | 1 + tests/bugs/bug-1117951.t | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 tests/bugs/bug-1117951.t diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c index e9734bcfca1..01e34b4c6a7 100644 --- a/libglusterfs/src/logging.c +++ b/libglusterfs/src/logging.c @@ -501,6 +501,7 @@ gf_openlog (const char *ident, int option, int facility) /* TODO: Should check for errors here and return appropriately */ setlocale(LC_ALL, ""); + setlocale(LC_NUMERIC, "C"); /* C-locale for strtod, ... */ /* close the previous syslog if open as we are changing settings */ closelog (); openlog(ident, _option, _facility); diff --git a/tests/bugs/bug-1117951.t b/tests/bugs/bug-1117951.t new file mode 100644 index 00000000000..47a0781def5 --- /dev/null +++ b/tests/bugs/bug-1117951.t @@ -0,0 +1,24 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 $H0:$B0/brick +EXPECT 'Created' volinfo_field $V0 'Status'; +TEST $CLI volume start $V0 + +# Running with a locale not using '.' as decimal separator should work +export LC_NUMERIC=sv_SE.utf8 +TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0 +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0 + +# As should a locale using '.' as a decimal separator +export LC_NUMERIC=C +TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0 +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0 + +cleanup -- cgit