ksql
ksql copied to clipboard
ksqlDB CLI crashed - java.io.IOError: java.io.IOException: Error executing 'stty -icrnl -ixon -echo -icanon -iexten min 0 time 1':
Pressing Ctrl-C (perhaps a bit too enthusiastically) in ksqlDB CLI with v0.12 on Docker resulted in it crashing out
Exception in thread "main" java.io.IOError: java.io.IOException: Error executing 'stty -icrnl -ixon
-echo -icanon -iexten min 0 time 1':
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54
FROM at org.jline.terminal.impl.AbstractTerminal.enterRawMode(AbstractTerminal.java:123)
EMIT at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:602)
^C at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:455)
^C at io.confluent.ksql.cli.console.JLineReader.readLine(JLineReader.java:70)
at io.confluent.ksql.cli.console.JLineTerminal.readLine(JLineTerminal.java:107)
at io.confluent.ksql.cli.console.Console.readLine(Console.java:312)
at io.confluent.ksql.cli.Cli.readLine(Cli.java:268)
at io.confluent.ksql.cli.Cli.runInteractively(Cli.java:188)
at io.confluent.ksql.Ksql.run(Ksql.java:115)
at io.confluent.ksql.Ksql.main(Ksql.java:74)
Caused by: java.io.IOException: Error executing 'stty -icrnl -ixon -echo -icanon -iexten min 0 time
1':
at org.jline.utils.ExecHelper.exec(ExecHelper.java:42)
at org.jline.terminal.impl.ExecPty.doSetAttr(ExecPty.java:101)
at org.jline.terminal.impl.AbstractPty.setAttr(AbstractPty.java:29)
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:52
)
... 10 more
This wouldn't matter so much except it was on a live demo being streamed to conference attendees :)
This can be reproduced with a ksqlDB cli locally outside of docker. Just spam ctrl+c a lot. There's a variety of errors that occur such as
Exception in thread "main" java.io.IOError: java.io.IOException: Error executing 'stty -a':
at org.jline.terminal.impl.AbstractPosixTerminal.getAttributes(AbstractPosixTerminal.java:46)
at org.jline.terminal.impl.AbstractTerminal.enterRawMode(AbstractTerminal.java:117)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:602)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:455)
at io.confluent.ksql.cli.console.JLineReader.readLine(JLineReader.java:70)
at io.confluent.ksql.cli.console.JLineTerminal.readLine(JLineTerminal.java:107)
at io.confluent.ksql.cli.console.Console.nextNonCliCommand(Console.java:316)
at io.confluent.ksql.cli.Cli.nextNonCliCommand(Cli.java:340)
at io.confluent.ksql.cli.Cli.runInteractively(Cli.java:259)
at io.confluent.ksql.Ksql.run(Ksql.java:126)
at io.confluent.ksql.Ksql.main(Ksql.java:75)
Caused by: java.io.IOException: Error executing 'stty -a':
at org.jline.utils.ExecHelper.exec(ExecHelper.java:42)
at org.jline.terminal.impl.ExecPty.doGetConfig(ExecPty.java:175)
at org.jline.terminal.impl.ExecPty.getAttr(ExecPty.java:87)
at org.jline.terminal.impl.AbstractPosixTerminal.getAttributes(AbstractPosixTerminal.java:44)
... 10 more
Exception in thread "main" java.io.IOError: java.io.InterruptedIOException: Command interrupted
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:716)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:455)
at io.confluent.ksql.cli.console.JLineReader.readLine(JLineReader.java:70)
at io.confluent.ksql.cli.console.JLineTerminal.readLine(JLineTerminal.java:107)
at io.confluent.ksql.cli.console.Console.nextNonCliCommand(Console.java:316)
at io.confluent.ksql.cli.Cli.nextNonCliCommand(Cli.java:340)
at io.confluent.ksql.cli.Cli.runInteractively(Cli.java:259)
at io.confluent.ksql.Ksql.run(Ksql.java:126)
at io.confluent.ksql.Ksql.main(Ksql.java:75)
Caused by: java.io.InterruptedIOException: Command interrupted
at org.jline.utils.ExecHelper.exec(ExecHelper.java:46)
at org.jline.terminal.impl.ExecPty.doGetConfig(ExecPty.java:175)
at org.jline.terminal.impl.ExecPty.getAttr(ExecPty.java:87)
at org.jline.terminal.impl.ExecPty.doSetAttr(ExecPty.java:93)
at org.jline.terminal.impl.AbstractPty.setAttr(AbstractPty.java:29)
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:52)
... 9 more
Caused by: java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)
at org.jline.utils.ExecHelper.waitAndCapture(ExecHelper.java:66)
at org.jline.utils.ExecHelper.exec(ExecHelper.java:36)
... 14 more
Synced with Robin—let's tackle this one. Is this fix-it-weekable, or is it a larger piece of work?
I just looked at this a bit more. If I launch the CLI (0.13) and once it's started, hold Ctrl-C, I get the error.
===========================================
= _ _ ____ ____ =
= | | _____ __ _| | _ \| __ ) =
= | |/ / __|/ _` | | | | | _ \ =
= | <\__ \ (_| | | |_| | |_) | =
= |_|\_\___/\__, |_|____/|____/ =
= |_| =
= Event Streaming Database purpose-built =
= for stream processing apps =
===========================================
Copyright 2017-2020 Confluent Inc.
CLI v0.13.0, Server v0.13.0 located at http://ksqldb:8088
Server Status: RUNNING
Having trouble? Type 'help' (case-insensitive) for a rundown of how things work!
ksql>
^C
ksql>
^C
ksql>
^C
ksql>
Exception in thread "main" java.io.IOError: java.io.IOException: Error executing 'stty -a':
at org.jline.terminal.impl.AbstractPosixTerminal.getAttributes(AbstractPosixTerminal.java:46)
at org.jline.terminal.impl.AbstractTerminal.enterRawMode(AbstractTerminal.java:117)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:602)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:455)
at io.confluent.ksql.cli.console.JLineReader.readLine(JLineReader.java:70)
at io.confluent.ksql.cli.console.JLineTerminal.readLine(JLineTerminal.java:107)
at io.confluent.ksql.cli.console.Console.readLine(Console.java:313)
at io.confluent.ksql.cli.Cli.readLine(Cli.java:268)
at io.confluent.ksql.cli.Cli.runInteractively(Cli.java:188)
at io.confluent.ksql.Ksql.run(Ksql.java:115)
at io.confluent.ksql.Ksql.main(Ksql.java:74)
Caused by: java.io.IOException: Error executing 'stty -a':
at org.jline.utils.ExecHelper.exec(ExecHelper.java:42)
at org.jline.terminal.impl.ExecPty.doGetConfig(ExecPty.java:175)
at org.jline.terminal.impl.ExecPty.getAttr(ExecPty.java:87)
at org.jline.terminal.impl.AbstractPosixTerminal.getAttributes(AbstractPosixTerminal.java:44)
... 10 more
HI! I experienced something similar in (unfortunately) our production environment. Would just like to check if spamming the Ctl+C in the ksqldb CLI will unintentionally affect(disrupt/ fail) any existing pull/push queries on KSQLDB directly?
Context: i have some microservices that will insert into some streams but noticed that they started failing sometime after I accidentally did Ctl+C one time too many. Just trying to understand what the impact is for this action :)
Exception in thread "main" java.io.IOError: java.io.InterruptedIOException: Command interrupted
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:716)
at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:455)
at io.confluent.ksql.cli.console.JLineReader.readLine(JLineReader.java:70)
at io.confluent.ksql.cli.console.JLineTerminal.readLine(JLineTerminal.java:107)
at io.confluent.ksql.cli.console.Console.nextNonCliCommand(Console.java:326)
at io.confluent.ksql.cli.Cli.nextNonCliCommand(Cli.java:389)
at io.confluent.ksql.cli.Cli.runInteractively(Cli.java:269)
at io.confluent.ksql.Ksql.run(Ksql.java:126)
at io.confluent.ksql.Ksql.main(Ksql.java:73)
Caused by: java.io.InterruptedIOException: Command interrupted
at org.jline.utils.ExecHelper.exec(ExecHelper.java:46)
at org.jline.terminal.impl.ExecPty.doGetConfig(ExecPty.java:175)
at org.jline.terminal.impl.ExecPty.getAttr(ExecPty.java:87)
at org.jline.terminal.impl.ExecPty.doSetAttr(ExecPty.java:93)
at org.jline.terminal.impl.AbstractPty.setAttr(AbstractPty.java:29)
at org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:52)
... 9 more
Caused by: java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)
at org.jline.utils.ExecHelper.waitAndCapture(ExecHelper.java:66)
at org.jline.utils.ExecHelper.exec(ExecHelper.java:36)
... 14 more