Closed nileema closed 8 years ago
Happens to me also. Seems to be happening under the following conditions:
kafka_key
field as described here: https://prestodb.io/docs/current/connector/kafka-tutorial.htmlsame problem, here is a basic query against a sample table:
presto-cli --catalog hive
presto> use default;
presto:default> show tables;
Table
-----------
sample_07
sample_08
(2 rows)
Query 20151011_043327_00012_vs6yp, FINISHED, 2 nodes
Splits: 2 total, 2 done (100.00%)
0:00 [2 rows, 60B] [22 rows/s, 674B/s]
presto:default> select count(*) from sample_07;
_col0
-------
823
(1 row)
Query 20151011_043336_00013_vs6yp, FINISHED, 1 node
Splits: 2 total, 2 done (100.00%)
0:00 [823 rows, 45KB] [3.95K rows/s, 216KB/s]
presto:default> [ERROR] Failed to disable interrupt character
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:396)
at jline.internal.TerminalLineSettings.waitAndCapture(TerminalLineSettings.java:339)
at jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:311)
at jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:282)
at jline.internal.TerminalLineSettings.undef(TerminalLineSettings.java:158)
at jline.UnixTerminal.disableInterruptCharacter(UnixTerminal.java:153)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2445)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372)
at com.facebook.presto.cli.LineReader.readLine(LineReader.java:51)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360)
at com.facebook.presto.cli.Console.runConsole(Console.java:149)
at com.facebook.presto.cli.Console.run(Console.java:128)
at com.facebook.presto.cli.Presto.main(Presto.java:32)
[ERROR] Failed to disable litteral next character
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:396)
at jline.internal.TerminalLineSettings.waitAndCapture(TerminalLineSettings.java:339)
at jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:311)
at jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:282)
at jline.internal.TerminalLineSettings.undef(TerminalLineSettings.java:158)
at jline.UnixTerminal.disableLitteralNextCharacter(UnixTerminal.java:185)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2448)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372)
at com.facebook.presto.cli.LineReader.readLine(LineReader.java:51)
at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360)
at com.facebook.presto.cli.Console.runConsole(Console.java:149)
at com.facebook.presto.cli.Console.run(Console.java:128)
at com.facebook.presto.cli.Presto.main(Presto.java:32)]
Facing the same issue
presto> select * from default.presto_hive_test;
Presto is accessing Hive table. Thanks FB for creating this (1 row)
Query 20151018_211002_00023_uvnc3, FINISHED, 1 node Splits: 2 total, 2 done (100.00%) 0:00 [1 rows, 61B] [8 rows/s, 535B/s]
presto> select * from default.presto_hive_test;
Presto is accessing Hive table. Thanks FB for creating this (1 row)
Query 20151018_211003_00024_uvnc3, FINISHED, 1 node Splits: 2 total, 2 done (100.00%) 0:00 [1 rows, 61B] [11 rows/s, 676B/s]
presto> select * from default.presto_hive_test;
Presto is accessing Hive table. Thanks FB for creating this (1 row)
Query 20151018_211004_00025_uvnc3, FINISHED, 1 node Splits: 2 total, 2 done (100.00%) 0:00 [1 rows, 61B] [7 rows/s, 485B/s]
presto> select * from default.presto_hive_test;
Presto is accessing Hive table. Thanks FB for creating this (1 row)
Query 20151018_211005_00026_uvnc3, FINISHED, 1 node Splits: 2 total, 2 done (100.00%) 0:00 [1 rows, 61B] [8 rows/s, 514B/s]
presto> [ERROR] Failed to disable interrupt character 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:396) at jline.internal.TerminalLineSettings.waitAndCapture(TerminalLineSettings.java:339) at jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:311) at jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:282) at jline.internal.TerminalLineSettings.undef(TerminalLineSettings.java:158) at jline.UnixTerminal.disableInterruptCharacter(UnixTerminal.java:153) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2445) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372) at com.facebook.presto.cli.LineReader.readLine(LineReader.java:51) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360) at com.facebook.presto.cli.Console.runConsole(Console.java:149) at com.facebook.presto.cli.Console.run(Console.java:128) at com.facebook.presto.cli.Presto.main(Presto.java:32)
[ERROR] Failed to disable litteral next character 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:396) at jline.internal.TerminalLineSettings.waitAndCapture(TerminalLineSettings.java:339) at jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:311) at jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:282) at jline.internal.TerminalLineSettings.undef(TerminalLineSettings.java:158) at jline.UnixTerminal.disableLitteralNextCharacter(UnixTerminal.java:185) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2448) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372) at com.facebook.presto.cli.LineReader.readLine(LineReader.java:51) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360) at com.facebook.presto.cli.Console.runConsole(Console.java:149) at com.facebook.presto.cli.Console.run(Console.java:128) at com.facebook.presto.cli.Presto.main(Presto.java:32)
select * from default.presto_hive_test; Error running command: java.lang.InterruptedException presto> [ERROR] Failed to disable interrupt character 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:396) at jline.internal.TerminalLineSettings.waitAndCapture(TerminalLineSettings.java:339) at jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:311) at jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:282) at jline.internal.TerminalLineSettings.undef(TerminalLineSettings.java:158) at jline.UnixTerminal.disableInterruptCharacter(UnixTerminal.java:153) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2445) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372) at com.facebook.presto.cli.LineReader.readLine(LineReader.java:51) at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360) at com.facebook.presto.cli.Console.runConsole(Console.java:149) at com.facebook.presto.cli.Console.run(Console.java:128) at com.facebook.presto.cli.Presto.main(Presto.java:32)
Looking through the presto-cli code, LineReader which is extended from jline's ConsoleReader has an api call to setHandleUserInterrupt(true);. I set that one to false so that jvm performs its default action and added setHandleLitteralNext(false). So far the exceptions haven't come up. I am curious about why presto cli needs to be able to handle literals next.
This happens to me also when using presto-cli
via SSH onto an AWS EMR master node.
I've noticed it happens when you press the up
arrow key to retrieve a previously used query or command, then hitting the enter
key.
:+1: with mysql query as well
I am going to fix this.
FYI @haozhun This is related to https://github.com/facebook/presto/commit/a243254462954b207fc85fd0940137e7e12e46a3
clientThread (in this case main) is interrupted when it is setting some stty properties.
Here is a fix: https://github.com/facebook/presto/pull/4222