summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2014-11-15 23:40:14 +0100
committerVijay Bellur <vbellur@redhat.com>2014-11-16 22:55:45 -0800
commitca5d23c8f62eb38ea98fbb63b06f72c21ce17c87 (patch)
treed05c6afc2d9c58603aa5ee8edc4bd622a215e4c0
parentb01660c5d7cf4a59a85a8edc3c816e4585aa211b (diff)
Use C-locale for numeric/string conversion routines
(strtod, ...) or config file parsing might fail. Cherry picked from commit 5b8de971a4b81bc2bd6de0ffc6386587226295c6: > Change-Id: I649f29bbf87222399a0c2d1ed5a3bf136c613b9b > BUG: 1117951 > Signed-off-by: Anders Blomdell <anders.blomdell@control.lth.se> > Reviewed-on: http://review.gluster.org/8299 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Prashanth Pai <ppai@redhat.com> > Reviewed-by: Vijay Bellur <vbellur@redhat.com> Change-Id: I649f29bbf87222399a0c2d1ed5a3bf136c613b9b BUG: 1157107 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/9132 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r--libglusterfs/src/logging.c1
-rw-r--r--tests/bugs/bug-1117951.t24
2 files changed, 25 insertions, 0 deletions
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c
index e82e0247234..ab7b96a54d4 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