[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky by reading the input stream
messages until we encounter EOF. This issue is noticed when large sized
requests are made to the subprocess server and it fails in receiving
the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Reviewed-on: http://gerrit.cloudera.org:8080/20180
Reviewed-by: Alexey Serbin 
Tested-by: Abhishek Chennaka 
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
M src/kudu/subprocess/subprocess_server-test.cc
4 files changed, 81 insertions(+), 29 deletions(-)

Approvals:
  Alexey Serbin: Looks good to me, approved
  Abhishek Chennaka: Verified

--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 7
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has removed a vote on this change.

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 6
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 6: Verified+1

Unrelated failure


-- 
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 6
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 13 Jul 2023 05:00:33 +
Gerrit-HasComments: No


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 6: Code-Review+2


--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 6
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 13 Jul 2023 02:29:31 +
Gerrit-HasComments: No


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/20180/5/src/kudu/subprocess/subprocess_server-test.cc
File src/kudu/subprocess/subprocess_server-test.cc:

http://gerrit.cloudera.org:8080/#/c/20180/5/src/kudu/subprocess/subprocess_server-test.cc@327
PS5, Line 327: threads.reserve(kNumThreads);
 : for (int i = 0; i < kNumThreads; i++) {
> nit: wrong indent
Done



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 5
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 13 Jul 2023 01:56:32 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Hello Tidy Bot, Alexey Serbin, Attila Bukor, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/20180

to look at the new patch set (#6).

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky by reading the input stream
messages until we encounter EOF. This issue is noticed when large sized
requests are made to the subprocess server and it fails in receiving
the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
M src/kudu/subprocess/subprocess_server-test.cc
4 files changed, 81 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/6
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 6
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/20180/5/src/kudu/subprocess/subprocess_server-test.cc
File src/kudu/subprocess/subprocess_server-test.cc:

http://gerrit.cloudera.org:8080/#/c/20180/5/src/kudu/subprocess/subprocess_server-test.cc@327
PS5, Line 327: threads.reserve(kNumThreads);
 : for (int i = 0; i < kNumThreads; i++) {
nit: wrong indent



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 5
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 13 Jul 2023 00:09:17 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 5: Code-Review+2

Thank you for the fix.

BTW, have you looked at the C++ implementation of the Subprocess protocol 
w.r.t. the proper way of reading in the data?


--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 5
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 13 Jul 2023 00:03:42 +
Gerrit-HasComments: No


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Hello Tidy Bot, Alexey Serbin, Attila Bukor, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/20180

to look at the new patch set (#5).

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky. This issue is noticed when
large sized requests are made to the subprocess server and it fails
in receiving the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
M src/kudu/subprocess/subprocess_server-test.cc
4 files changed, 82 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/5
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 5
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/20180/4/src/kudu/subprocess/subprocess_server-test.cc
File src/kudu/subprocess/subprocess_server-test.cc:

http://gerrit.cloudera.org:8080/#/c/20180/4/src/kudu/subprocess/subprocess_server-test.cc@328
PS4, Line 328: threads.emplace_back([&, i] {
> warning: 'emplace_back' is called inside a loop; consider pre-allocating th
Done



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 4
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 12 Jul 2023 23:47:26 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Hello Tidy Bot, Alexey Serbin, Attila Bukor, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/20180

to look at the new patch set (#4).

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky. This issue is noticed when
large sized requests are made to the subprocess server and it fails
in receiving the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
M src/kudu/subprocess/subprocess_server-test.cc
4 files changed, 80 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/4
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 4
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 3:

Something is wrong, org.apache.kudu.subprocess.echo.TestEchoSubprocess has 
failed with PS3 in each build configuration (DEBUG, RELEASE, etc.):
  http://dist-test.cloudera.org/job?job_id=jenkins-slave.1689142881.508068
  http://dist-test.cloudera.org/job?job_id=jenkins-slave.1689143265.2782414


--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 3
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 12 Jul 2023 17:22:41 +
Gerrit-HasComments: No


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 3:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
File 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java:

http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@96
PS2, Line 96: Preconditions.checkNotNull(bytes);
: int totalRead = in.read(by
> Why not to rewrite this using do { ... } while (...) to logically unify thi
Done


http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@101
PS2, Line 101: break;
 :   }
 :   t
> From the documentation of the BufferedInputStream.read() method:
Yes, as discussed removed the read == 0 condition and added a comment on the 
behavior.


http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@131
PS2, Line 131:   }
 :   rem -= r
> ditto
Same as above



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 3
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 12 Jul 2023 16:08:31 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-12 Thread Abhishek Chennaka (Code Review)
Hello Tidy Bot, Alexey Serbin, Attila Bukor, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/20180

to look at the new patch set (#3).

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky. This issue is noticed when
large sized requests are made to the subprocess server and it fails
in receiving the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M src/kudu/subprocess/subprocess_server-test.cc
3 files changed, 78 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/3
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 3
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-11 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 2:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
File 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java:

http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@96
PS2, Line 96: int totalRead = in.read(bytes, 0, size);
: while (totalRead < size) {
Why not to rewrite this using do { ... } while (...) to logically unify this 
implementation with the updated implementation of the doReadAndDiscard() method 
below?


http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@101
PS2, Line 101:   } else if (read == 0) {
 : break;
 :   }
>From the documentation of the BufferedInputStream.read() method:

--
This method implements the general contract of the corresponding read method of 
the InputStream class. As an additional convenience, it attempts to read as 
many bytes as possible by repeatedly invoking the read method of the underlying 
stream. This iterated read continues until one of the following conditions 
becomes true:
  * The specified number of bytes have been read,
  * The read method of the underlying stream returns -1, indicating 
end-of-file, or
  * The available method of the underlying stream returns zero, indicating that 
further input requests would block.
--

Could it happen that the call at line 96 or 98 read out some non-empty chunk of 
data up to the 'would block' condition on the underlying stream, while not all 
the requested data has been actually read out?  If so, then next cycle the call 
at line 98 should have returned 0, and there would be an exception raised below 
instead of calling BufferedInputStream.read() again that would block awaiting 
for the next chunk of data to be read from the input stream?


http://gerrit.cloudera.org:8080/#/c/20180/2/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@131
PS2, Line 131:   } else if (read == 0) {
 : break;
ditto



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 2
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Tue, 11 Jul 2023 21:46:38 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-10 Thread Abhishek Chennaka (Code Review)
Hello Alexey Serbin, Attila Bukor, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/20180

to look at the new patch set (#2).

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky. This issue is noticed when
large sized requests are made to the subprocess server and it fails
in receiving the complete messages.

In addition made a small log change to MessageIO.java to display the
exception message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M 
java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/TestMessageIO.java
M src/kudu/subprocess/subprocess_server-test.cc
4 files changed, 72 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/2
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 2
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-10 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 1:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/20180/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/20180/1//COMMIT_MSG@15
PS1, Line 15: excpetion
> exception
Done


http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
File 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java:

http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@96
PS1, Line 96: byte[] b = new byte[size]
> Instead of allocating an extra memory buffer, is it possible to use the 'of
Yes, that makes sense. For some reason I thought it was an offset from which we 
read data from, in the pipe.


http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@140
PS1, Line 140: if (rem > 4096) {
 :   throw new IOException(
 :   String.format("unable to read next chunk of oversized 
message (%d bytes), " +
 :   "expected %d bytes but read %d bytes", size, size, 
size - rem));
 : }
> What if that was less that 4096?  Shouldn't it be an exceptional situation
Yes, true. It should be 0.
The same issue is seen here as well, if we don't "read" the expected size 
("toRead") of the data while discarding the oversized message.
I just modified the loop to keep reading until we cannot read anymore and then 
checking if we have read the expected amount of data.


http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc
File src/kudu/subprocess/subprocess_server-test.cc:

http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc@426
PS1, Line 426:
> nit: remove the extra empty line
Done


http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc@432
PS1, Line 432: the current limit
> Does it make sense to set FLAGS_subprocess_max_message_size_bytes to 2x (or
Done.



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 1
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 11 Jul 2023 00:04:40 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-10 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/20180 )

Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..


Patch Set 1:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/20180/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/20180/1//COMMIT_MSG@15
PS1, Line 15: excpetion
exception


http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
File 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java:

http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@96
PS1, Line 96: byte[] b = new byte[size]
Instead of allocating an extra memory buffer, is it possible to use the 
'offset' parameter of the read() call below for partial reads?


http://gerrit.cloudera.org:8080/#/c/20180/1/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java@140
PS1, Line 140: if (rem > 4096) {
 :   throw new IOException(
 :   String.format("unable to read next chunk of oversized 
message (%d bytes), " +
 :   "expected %d bytes but read %d bytes", size, size, 
size - rem));
 : }
What if that was less that 4096?  Shouldn't it be an exceptional situation as 
well?

Overall, why to change the way how this method reads out the data?  What are 
you trying to fix here?


http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc
File src/kudu/subprocess/subprocess_server-test.cc:

http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc@426
PS1, Line 426:
nit: remove the extra empty line


http://gerrit.cloudera.org:8080/#/c/20180/1/src/kudu/subprocess/subprocess_server-test.cc@432
PS1, Line 432: the current limit
Does it make sense to set FLAGS_subprocess_max_message_size_bytes to 2x (or 
even 3x) higher value that its default to see how it works if going beyond the 
default setting?



--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 1
Gerrit-Owner: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Mon, 10 Jul 2023 20:56:08 +
Gerrit-HasComments: Yes


[kudu-CR] [subprocess] KUDU-3489: Support reading large messages through pipes

2023-07-10 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/20180


Change subject: [subprocess] KUDU-3489: Support reading large messages through 
pipes
..

[subprocess] KUDU-3489: Support reading large messages through pipes

This patch enables the subprocess server to be able to read messages
larger than 1MB which was otherwise flaky. This issue is noticed when
large sized requests are made to the subprocess server and it fails
in receiving the complete messages.

In addition made a small log change to MessageIO.java to display the
excpetion message correctly.

Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
---
M java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageIO.java
M 
java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/MessageReader.java
M src/kudu/subprocess/subprocess_server-test.cc
3 files changed, 64 insertions(+), 13 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/20180/1
--
To view, visit http://gerrit.cloudera.org:8080/20180
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6523fdaaca19ee089dbac52a7dedec8847926a6c
Gerrit-Change-Number: 20180
Gerrit-PatchSet: 1
Gerrit-Owner: Abhishek Chennaka