[ 
https://issues.apache.org/jira/browse/HBASE-27742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Grigore Lupescu updated HBASE-27742:
------------------------------------
    Description: 
The following bash shell script invocations may stall or not `hbase shell -n` 
indefinitely. This might be how tty / pipes interact with the hbase shell. 
Opening this to better understand either if this is a bug or limitation in 
hbase shell, or what workarounds are there.

{color:#00875a}Works executed in CLI bash{color}
{code:java}
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout 30s bash -c check_alter_hbase{code}
{color:#de350b}Doesn't work as bash script, stalls until timeout ** {color}
{code:java}
# cat stall.sh
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout 30s bash -c check_alter_hbase
# echo $?
124{code}
{color:#00875a}Works executed in CLI as bash script{color}
{code:java}
# cat works.sh
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout --foreground 30s bash -c check_alter_hbase
# bash works.sh
Table my_table is ENABLED ...
# echo $?
0{code}
{color:#ff0000}Doesn't work as internal init script, stalls (called indirectly 
not via CLI){color}
{code:java}
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout --foreground 30s bash -c check_alter_hbase
{code}
Running the same bash stall logic in HBase 2.4.11 doesn't seem to reproduce the 
issue, though there is a slight difference that we have containers there (e.g. 
pod hbasemaster-0).

  was:
The following bash shell script invocations may stall or not `hbase shell -n` 
indefinitely. This might be how tty / pipes interact with the hbase shell. 
Opening this to better understand either if this is a bug or limitation in 
hbase shell, or what workarounds are there.

{color:#00875a}Works executed in CLI bash{color}
{code:java}
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout 30s bash -c check_alter_hbase{code}
{color:#de350b}Doesn't work as bash script, stalls until timeout ** {color}
{code:java}
# cat stall.sh
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout 30s bash -c check_alter_hbase
# echo $?
124{code}
{color:#00875a}Works executed in CLI as bash script{color}
{code:java}
# cat works.sh
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout --foreground 30s bash -c check_alter_hbase
# bash works.sh
Table my_table is ENABLED ...
# echo $?
0{code}
{color:#ff0000}Doesn't work as internal init script, stalls (called indirectly 
not via CLI){color}
{code:java}
function check_alter_hbase () {
  HBASE_SHELL_CMD="hbase shell -n"
  hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
  echo $hbase_state
}
export -f check_alter_hbase
timeout --foreground 30s bash -c check_alter_hbase

{code}
Running the same bash stall logic in HBase 2.4.11 doesn't seem to reproduce the 
issue, though there is a slight difference that we have containers there (e.g. 
pod hbasemaster-0).


> Hbase shell non interactive stalls
> ----------------------------------
>
>                 Key: HBASE-27742
>                 URL: https://issues.apache.org/jira/browse/HBASE-27742
>             Project: HBase
>          Issue Type: Bug
>          Components: shell
>    Affects Versions: 2.4.8
>         Environment: Issue observed only in hbase 2.4.8
>            Reporter: Grigore Lupescu
>            Priority: Major
>
> The following bash shell script invocations may stall or not `hbase shell -n` 
> indefinitely. This might be how tty / pipes interact with the hbase shell. 
> Opening this to better understand either if this is a bug or limitation in 
> hbase shell, or what workarounds are there.
> {color:#00875a}Works executed in CLI bash{color}
> {code:java}
> function check_alter_hbase () {
>   HBASE_SHELL_CMD="hbase shell -n"
>   hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
>   echo $hbase_state
> }
> export -f check_alter_hbase
> timeout 30s bash -c check_alter_hbase{code}
> {color:#de350b}Doesn't work as bash script, stalls until timeout ** {color}
> {code:java}
> # cat stall.sh
> function check_alter_hbase () {
>   HBASE_SHELL_CMD="hbase shell -n"
>   hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
>   echo $hbase_state
> }
> export -f check_alter_hbase
> timeout 30s bash -c check_alter_hbase
> # echo $?
> 124{code}
> {color:#00875a}Works executed in CLI as bash script{color}
> {code:java}
> # cat works.sh
> function check_alter_hbase () {
>   HBASE_SHELL_CMD="hbase shell -n"
>   hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
>   echo $hbase_state
> }
> export -f check_alter_hbase
> timeout --foreground 30s bash -c check_alter_hbase
> # bash works.sh
> Table my_table is ENABLED ...
> # echo $?
> 0{code}
> {color:#ff0000}Doesn't work as internal init script, stalls (called 
> indirectly not via CLI){color}
> {code:java}
> function check_alter_hbase () {
>   HBASE_SHELL_CMD="hbase shell -n"
>   hbase_state=$( echo "describe 'my_table'" | $HBASE_SHELL_CMD )
>   echo $hbase_state
> }
> export -f check_alter_hbase
> timeout --foreground 30s bash -c check_alter_hbase
> {code}
> Running the same bash stall logic in HBase 2.4.11 doesn't seem to reproduce 
> the issue, though there is a slight difference that we have containers there 
> (e.g. pod hbasemaster-0).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to