You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Jan Høydahl (Jira)" <ji...@apache.org> on 2021/12/14 14:45:00 UTC

[jira] [Commented] (SOLR-15849) Incorrect use Zookeeper 4LW

    [ https://issues.apache.org/jira/browse/SOLR-15849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17459204#comment-17459204 ] 

Jan Høydahl commented on SOLR-15849:
------------------------------------

Thanks for this. Are  you able to submit this as a GitHub Pull Request?

> Incorrect use Zookeeper 4LW 
> ----------------------------
>
>                 Key: SOLR-15849
>                 URL: https://issues.apache.org/jira/browse/SOLR-15849
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 7.5, 8.10.1
>            Reporter: Fa Ming
>            Priority: Blocker
>
> {*}Error code location{*}:
> org.apache.solr.handler.admin.ZookeeperStatusHandler
> {code:java}
> getZkRawResponse()
>      try (
>         Socket socket = new Socket(host, port);
>         Writer writer = new OutputStreamWriter(socket.getOutputStream(), "utf-8");
>         PrintWriter out = new PrintWriter(writer, true);
>         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "utf-8"));) {
>       out.println(fourLetterWordCommand);
>       List<String> response = in.lines().collect(Collectors.toList());
>       log.debug("Got response from ZK on host {} and port {}: {}", host, port, response);
> {code}
>  
> Zookeeper only accepts 4LW, but solr socket sends 4LW with \n.
> After reading 4LW, ZooKeeper will call the close method to close the socket. At this time, there will be \n unread in the cache, which will cause the connection that should send FIN to release will be changed to RST, and the solr socket client will throw it out in some cases. The exception (java.net.SocketException: Connection reset) which causes the Solr Admin UI interface zkStatus to be yellow.
>  
> {*}H{*}{*}ere is some amendments by myself:{*}
> {code:java}
>  getZkRawResponse()
>      try (
>         Socket socket = new Socket(host, port);
>         Writer writer = new OutputStreamWriter(socket.getOutputStream(), "utf-8");
>         PrintWriter out = new PrintWriter(writer, true);
>         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "utf-8"));) {
>       out.print(fourLetterWordCommand);
>       out.flush();
>       List<String> response = in.lines().collect(Collectors.toList());
>       log.debug("Got response from ZK on host {} and port {}: {}", host, port, response);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org