[ 
https://issues.apache.org/jira/browse/IMPALA-532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17209717#comment-17209717
 ] 

Tim Armstrong commented on IMPALA-532:
--------------------------------------

[~thundergun] looks like we could detect this by instantiating std::locale("") 
and catching the exception, then failing with a fatal error - that is what 
boost is doing here - 
https://github.com/boostorg/filesystem/blob/boost-1.61.0/src/path.cpp#L906.

Here's a minimal c++ program that can reproduce the uncaught exception.

{code}
#include <locale>

int main() {
  std::locale loc("");
  return 0;
}
{code}

{noformat}
tarmstrong@tarmstrong-Precision-7540:~$ g++ locale.cc -o locale && LC_ALL="bad 
local" ./locale 
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
Aborted (core dumped)
tarmstrong@tarmstrong-Precision-7540:~$ g++ locale.cc -o locale && LC_ALL="" 
./locale 
OK
{noformat}

> Impala should tolerate bad locale settings.
> -------------------------------------------
>
>                 Key: IMPALA-532
>                 URL: https://issues.apache.org/jira/browse/IMPALA-532
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 1.1
>            Reporter: Ishaan Joshi
>            Priority: Minor
>
> Currently, the Statestore does not tolerate a bad locale setting and crashes 
> while starting up.
> {code}
>  USE_DEBUG_BUILD=false
> + perl -pi -e 
> 's#{{CMF_CONF_DIR}}#/var/run/cloudera-scm-agent/process/2469-impala-STATESTORE#g'
>  
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/state_store_flags
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
>     LANGUAGE = (unset),
>     LC_ALL = (unset),
>     LANG = "fr_FR.UTF-8"
>     are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
> + '[' -f 
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/.htpasswd
>  ']'
> + chmod 600 
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/.htpasswd
> + false
> + export 
> IMPALA_BIN=/opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/sbin-retail
> + IMPALA_BIN=/opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/sbin-retail
> + '[' impalad = statestore ']'
> + '[' statestore = statestore ']'
> + exec 
> /opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/../../bin/statestored 
> --flagfile=/var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/state_store_flags
> terminate called after throwing an instance of 'std::runtime_error'
>   what():  locale::facet::_S_create_c_locale name not valid
> {code}
> It should fall back to the standard locale ("C"), if the user's locale is 
> messed up.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to