Fix: Java agent: close session daemon socket on error
[lttng-ust.git] / liblttng-ust-java-agent / java / lttng-ust-agent-common / org / lttng / ust / agent / client / LttngTcpSessiondClient.java
index d42bc9af4ee112c105ee48605b58c1c98843ba09..0e7a5c187987398139fd6e0d7d6d9bd88dbc0cb0 100644 (file)
@@ -133,11 +133,31 @@ public class LttngTcpSessiondClient implements Runnable {
                                handleSessiondCmd();
                        } catch (UnknownHostException uhe) {
                                uhe.printStackTrace();
+                               /*
+                                * Terminate agent thread.
+                                */
+                               close();
                        } catch (IOException ioe) {
+                               /*
+                                * I/O exception may have been triggered by a session daemon
+                                * closing the socket. Close our own socket and
+                                * retry connecting after a delay.
+                                */
                                try {
+                                       if (this.sessiondSock != null) {
+                                               this.sessiondSock.close();
+                                       }
                                        Thread.sleep(3000);
                                } catch (InterruptedException e) {
-                                       e.printStackTrace();
+                                       /*
+                                        * Retry immediately if sleep is interrupted.
+                                        */
+                               } catch (IOException closeioe) {
+                                       closeioe.printStackTrace();
+                                       /*
+                                        * Terminate agent thread.
+                                        */
+                                       close();
                                }
                        }
                }
This page took 0.025247 seconds and 4 git commands to generate.