[ https://issues.apache.org/jira/browse/SOLR-15849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jan Høydahl resolved SOLR-15849. -------------------------------- Fix Version/s: main (9.0) Resolution: Fixed Thanks for the contribution! We may backport this to next 8.x bugfix release if necessary. In that case we'll re-open. > 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) > Components: Admin UI > Affects Versions: 7.5, 8.10.1 > Reporter: Fa Ming > Assignee: Jan Høydahl > Priority: Minor > Fix For: main (9.0) > > Time Spent: 40m > Remaining Estimate: 0h > > {*}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-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org