[jira] [Commented] (RATIS-140) Raft client should reuse the gRPC stream for all async calls

2017-12-18 Thread Jing Zhao (JIRA)

[ 
https://issues.apache.org/jira/browse/RATIS-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16296311#comment-16296311
 ] 

Jing Zhao commented on RATIS-140:
-

Some comments so far (after discussion with Nicholas offline):
# Maybe we should use composition instead of inheritance for Client and 
RequestMap? Letting Client extends RequestMap may not be that direct.
# Currently the size limitation of the total number of outstanding requests is 
defined in RaftClientImpl. I think to have the size limitation inside of 
SlidingWindow may be better.
# We may still need a better abstraction for SlidingWindow. Maybe we should 
make it a pure data structure and avoid actions like "submissionMethod" inside 
of it as a member field. This abstraction later can also be adopted by 
AppendStreamer and GrpcLogAppender.
# Currently for gRPC module, this patch actually cuts the underlying grpc 
streamer into small pieces (each onNext call), and then builds a consecutive 
async RPC call model on top. To me this may not be clean. We may want to 
revisit our API choice later (sendAsync v.s. OutputStream) in a separate jira.

I think we can fix some minor issues and commit the patch in this jira. Then we 
can create follow-on jiras to discuss the above #3 and #4 comments.

> Raft client should reuse the gRPC stream for all async calls
> 
>
> Key: RATIS-140
> URL: https://issues.apache.org/jira/browse/RATIS-140
> Project: Ratis
>  Issue Type: Bug
>Reporter: Tsz Wo Nicholas Sze
>Assignee: Tsz Wo Nicholas Sze
> Attachments: r140_20171123.patch, r140_20171124.patch, 
> r140_20171125.patch, r140_20171126.patch, r140_20171126b.patch, 
> r140_20171130.patch, r140_20171203.patch, r140_20171204.patch, 
> r140_20171206.patch, r140_20171210.patch
>
>
> Async client is being added in RATIS-113.  However, we found that the server 
> side (RaftClientProtocolService) may see out-of-order grpc messages even if 
> all messages are sent by the same client.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (RATIS-171) The FileStore tests fail with NullPointerException

2017-12-18 Thread Tsz Wo Nicholas Sze (JIRA)

[ 
https://issues.apache.org/jira/browse/RATIS-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16294806#comment-16294806
 ] 

Tsz Wo Nicholas Sze commented on RATIS-171:
---

{code}
Running org.apache.ratis.examples.filestore.TestFileStoreWithNetty
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.348 sec - in 
org.apache.ratis.examples.filestore.TestFileStoreWithNetty
Running org.apache.ratis.examples.filestore.TestFileStoreWithGrpc
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.31 sec - in 
org.apache.ratis.examples.filestore.TestFileStoreWithGrpc
{code}
Just have tested the patch manually.  Both FileStore tests passed.

+1 patch looks good.

> The FileStore tests fail with NullPointerException
> --
>
> Key: RATIS-171
> URL: https://issues.apache.org/jira/browse/RATIS-171
> Project: Ratis
>  Issue Type: Bug
>Reporter: Tsz Wo Nicholas Sze
>Assignee: Kit Hui
> Attachments: r171_20171218.patch
>
>
> In the RaftLogWorker.WriteLog constructor, stateMachineFuture can be null 
> since stateMachine.writeStateMachineData(entry) may return null.  In such 
> case, it throws NullPointerException when creating the combined future. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (RATIS-171) The FileStore tests fail with NullPointerException

2017-12-18 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/RATIS-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16294764#comment-16294764
 ] 

Hadoop QA commented on RATIS-171:
-

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
10s{color} | {color:blue} Docker mode activated. {color} |
|| || || || {color:brown} Prechecks {color} ||
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  0m  
1s{color} | {color:blue} Findbugs executables are not available. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red}  0m  
0s{color} | {color:red} The patch doesn't appear to include any new or modified 
tests. Please justify why no new tests are needed for this patch. Also please 
list what manual steps were performed to verify this patch. {color} |
|| || || || {color:brown} master Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 
59s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
48s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
16s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
30s{color} | {color:green} master passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 
58s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
48s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  0m 
48s{color} | {color:green} the patch passed {color} |
| {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange}  
0m 15s{color} | {color:orange} root: The patch generated 3 new + 82 unchanged - 
1 fixed = 85 total (was 83) {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
30s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 10m  
6s{color} | {color:green} root in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
 8s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 15m 37s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/ratis:date2017-12-18 
|
| JIRA Issue | RATIS-171 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12902615/r171_20171218.patch |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  checkstyle  
compile  |
| uname | Linux 36f8c60a8f5d 3.13.0-135-generic #184-Ubuntu SMP Wed Oct 18 
11:55:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-RATIS-Build/yetus-personality.sh
 |
| git revision | master / 99e409b |
| Default Java | 1.8.0_151 |
| checkstyle | 
https://builds.apache.org/job/PreCommit-RATIS-Build/70/artifact/out/diff-checkstyle-root.txt
 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-RATIS-Build/70/testReport/ |
| modules | C: ratis-server U: ratis-server |
| Console output | 
https://builds.apache.org/job/PreCommit-RATIS-Build/70/console |
| Powered by | Apache Yetus 0.5.0   http://yetus.apache.org |


This message was automatically generated.



> The FileStore tests fail with NullPointerException
> --
>
> Key: RATIS-171
> URL: https://issues.apache.org/jira/browse/RATIS-171
> Project: Ratis
>  Issue Type: Bug
>Reporter: Tsz Wo Nicholas Sze
>Assignee: Kit Hui
> Attachments: r171_20171218.patch
>
>
> In the RaftLogWorker.WriteLog constructor, stateMachineFuture can be null 
> since stateMachine.writeStateMachineData(entry) may return null.  In such 
> case, it throws NullPointerException when creating the combined future. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (RATIS-171) The FileStore tests fail with NullPointerException

2017-12-18 Thread Kit Hui (JIRA)

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

Kit Hui updated RATIS-171:
--
Attachment: r171_20171218.patch

Move the assignment for this.combine after handling the assignment for 
this.stateMachineFuture. 

> The FileStore tests fail with NullPointerException
> --
>
> Key: RATIS-171
> URL: https://issues.apache.org/jira/browse/RATIS-171
> Project: Ratis
>  Issue Type: Bug
>Reporter: Tsz Wo Nicholas Sze
>Assignee: Kit Hui
> Attachments: r171_20171218.patch
>
>
> In the RaftLogWorker.WriteLog constructor, stateMachineFuture can be null 
> since stateMachine.writeStateMachineData(entry) may return null.  In such 
> case, it throws NullPointerException when creating the combined future. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)