Search in sources :

Example 86 with InterruptedIOException

use of java.io.InterruptedIOException in project voltdb by VoltDB.

the class PullSocketImporter method susceptibleRun.

private void susceptibleRun() {
    if (m_eos.get())
        return;
    info(null, "Starting socket puller for " + m_config.getResourceID());
    m_thread = Optional.of(Thread.currentThread());
    Optional<BufferedReader> reader = null;
    Formatter formatter = m_config.getFormatterBuilder().create();
    while (!m_eos.get()) {
        try {
            reader = attemptBufferedReader();
            if (!reader.isPresent()) {
                sleep(2_000);
                continue;
            }
            BufferedReader br = reader.get();
            String csv = null;
            while ((csv = br.readLine()) != null) {
                try {
                    Object[] params = formatter.transform(ByteBuffer.wrap(csv.getBytes()));
                    Invocation invocation = new Invocation(m_config.getProcedure(), params);
                    if (!callProcedure(invocation)) {
                        if (isDebugEnabled()) {
                            debug(null, "Failed to process Invocation possibly bad data: " + csv);
                        }
                    }
                } catch (FormatException e) {
                    rateLimitedLog(Level.ERROR, e, "Failed to tranform data: %s", csv);
                    ;
                }
            }
            if (csv == null) {
                warn(null, m_config.getResourceID() + " peer terminated stream");
            }
        } catch (EOFException e) {
            rateLimitedLog(Level.WARN, e, m_config.getResourceID() + " peer terminated stream");
        } catch (InterruptedException e) {
            if (m_eos.get())
                return;
            rateLimitedLog(Level.ERROR, e, "Socket puller %s was interrupted", m_config.getResourceID());
        } catch (InterruptedIOException e) {
            if (m_eos.get())
                return;
            rateLimitedLog(Level.ERROR, e, "Socket puller for %s was interrupted", m_config.getResourceID());
        } catch (IOException e) {
            rateLimitedLog(Level.ERROR, e, "Read fault for %s", m_config.getResourceID());
        }
    }
    info(null, "Stopping socket puller for " + m_config.getResourceID());
}
Also used : InterruptedIOException(java.io.InterruptedIOException) Invocation(org.voltdb.importer.Invocation) Formatter(org.voltdb.importer.formatter.Formatter) BufferedReader(java.io.BufferedReader) EOFException(java.io.EOFException) IOException(java.io.IOException) InterruptedIOException(java.io.InterruptedIOException) FormatException(org.voltdb.importer.formatter.FormatException)

Example 87 with InterruptedIOException

use of java.io.InterruptedIOException in project android_frameworks_base by ResurrectionRemix.

the class IpReachabilityMonitor method probeNeighbor.

/**
     * Make the kernel perform neighbor reachability detection (IPv4 ARP or IPv6 ND)
     * for the given IP address on the specified interface index.
     *
     * @return 0 if the request was successfully passed to the kernel; otherwise return
     *         a non-zero error code.
     */
private static int probeNeighbor(int ifIndex, InetAddress ip) {
    final String msgSnippet = "probing ip=" + ip.getHostAddress() + "%" + ifIndex;
    if (DBG) {
        Log.d(TAG, msgSnippet);
    }
    final byte[] msg = RtNetlinkNeighborMessage.newNewNeighborMessage(1, ip, StructNdMsg.NUD_PROBE, ifIndex, null);
    int errno = -OsConstants.EPROTO;
    try (NetlinkSocket nlSocket = new NetlinkSocket(OsConstants.NETLINK_ROUTE)) {
        final long IO_TIMEOUT = 300L;
        nlSocket.connectToKernel();
        nlSocket.sendMessage(msg, 0, msg.length, IO_TIMEOUT);
        final ByteBuffer bytes = nlSocket.recvMessage(IO_TIMEOUT);
        // recvMessage() guaranteed to not return null if it did not throw.
        final NetlinkMessage response = NetlinkMessage.parse(bytes);
        if (response != null && response instanceof NetlinkErrorMessage && (((NetlinkErrorMessage) response).getNlMsgError() != null)) {
            errno = ((NetlinkErrorMessage) response).getNlMsgError().error;
            if (errno != 0) {
                // TODO: consider ignoring EINVAL (-22), which appears to be
                // normal when probing a neighbor for which the kernel does
                // not already have / no longer has a link layer address.
                Log.e(TAG, "Error " + msgSnippet + ", errmsg=" + response.toString());
            }
        } else {
            String errmsg;
            if (response == null) {
                bytes.position(0);
                errmsg = "raw bytes: " + NetlinkConstants.hexify(bytes);
            } else {
                errmsg = response.toString();
            }
            Log.e(TAG, "Error " + msgSnippet + ", errmsg=" + errmsg);
        }
    } catch (ErrnoException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -e.errno;
    } catch (InterruptedIOException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -OsConstants.ETIMEDOUT;
    } catch (SocketException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -OsConstants.EIO;
    }
    return errno;
}
Also used : InterruptedIOException(java.io.InterruptedIOException) SocketException(java.net.SocketException) NetlinkSocket(android.net.netlink.NetlinkSocket) ErrnoException(android.system.ErrnoException) NetlinkMessage(android.net.netlink.NetlinkMessage) NetlinkErrorMessage(android.net.netlink.NetlinkErrorMessage) ByteBuffer(java.nio.ByteBuffer)

Example 88 with InterruptedIOException

use of java.io.InterruptedIOException in project android_frameworks_base by DirtyUnicorns.

the class IpReachabilityMonitor method probeNeighbor.

/**
     * Make the kernel perform neighbor reachability detection (IPv4 ARP or IPv6 ND)
     * for the given IP address on the specified interface index.
     *
     * @return 0 if the request was successfully passed to the kernel; otherwise return
     *         a non-zero error code.
     */
private static int probeNeighbor(int ifIndex, InetAddress ip) {
    final String msgSnippet = "probing ip=" + ip.getHostAddress() + "%" + ifIndex;
    if (DBG) {
        Log.d(TAG, msgSnippet);
    }
    final byte[] msg = RtNetlinkNeighborMessage.newNewNeighborMessage(1, ip, StructNdMsg.NUD_PROBE, ifIndex, null);
    int errno = -OsConstants.EPROTO;
    try (NetlinkSocket nlSocket = new NetlinkSocket(OsConstants.NETLINK_ROUTE)) {
        final long IO_TIMEOUT = 300L;
        nlSocket.connectToKernel();
        nlSocket.sendMessage(msg, 0, msg.length, IO_TIMEOUT);
        final ByteBuffer bytes = nlSocket.recvMessage(IO_TIMEOUT);
        // recvMessage() guaranteed to not return null if it did not throw.
        final NetlinkMessage response = NetlinkMessage.parse(bytes);
        if (response != null && response instanceof NetlinkErrorMessage && (((NetlinkErrorMessage) response).getNlMsgError() != null)) {
            errno = ((NetlinkErrorMessage) response).getNlMsgError().error;
            if (errno != 0) {
                // TODO: consider ignoring EINVAL (-22), which appears to be
                // normal when probing a neighbor for which the kernel does
                // not already have / no longer has a link layer address.
                Log.e(TAG, "Error " + msgSnippet + ", errmsg=" + response.toString());
            }
        } else {
            String errmsg;
            if (response == null) {
                bytes.position(0);
                errmsg = "raw bytes: " + NetlinkConstants.hexify(bytes);
            } else {
                errmsg = response.toString();
            }
            Log.e(TAG, "Error " + msgSnippet + ", errmsg=" + errmsg);
        }
    } catch (ErrnoException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -e.errno;
    } catch (InterruptedIOException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -OsConstants.ETIMEDOUT;
    } catch (SocketException e) {
        Log.e(TAG, "Error " + msgSnippet, e);
        errno = -OsConstants.EIO;
    }
    return errno;
}
Also used : InterruptedIOException(java.io.InterruptedIOException) SocketException(java.net.SocketException) NetlinkSocket(android.net.netlink.NetlinkSocket) ErrnoException(android.system.ErrnoException) NetlinkMessage(android.net.netlink.NetlinkMessage) NetlinkErrorMessage(android.net.netlink.NetlinkErrorMessage) ByteBuffer(java.nio.ByteBuffer)

Example 89 with InterruptedIOException

use of java.io.InterruptedIOException in project GNS by MobilityFirst.

the class UdpDnsServer method run.

@Override
public void run() {
    NameResolution.getLogger().log(Level.INFO, "Starting local DNS Server on port {0}{1}fallback DNS server at {2}", new Object[] { sock.getLocalPort(), gnsServerIP != null ? (" with GNS server at " + gnsServerIP + " and ") : " with ", dnsServerIP });
    while (true) {
        try {
            final short udpLength = 512;
            while (true) {
                byte[] incomingData = new byte[udpLength];
                DatagramPacket incomingPacket = new DatagramPacket(incomingData, incomingData.length);
                // Read the incoming request
                incomingPacket.setLength(incomingData.length);
                try {
                    sock.receive(incomingPacket);
                } catch (InterruptedIOException e) {
                    continue;
                }
                executor.execute(new LookupWorker(sock, incomingPacket, incomingData, gnsServer, dnsServer, dnsCache, handler));
            }
        } catch (IOException e) {
            NameResolution.getLogger().log(Level.SEVERE, "Error in UDP Server (will sleep for 3 seconds and try again): {0}", e);
            ThreadUtils.sleep(3000);
        }
    }
}
Also used : InterruptedIOException(java.io.InterruptedIOException) DatagramPacket(java.net.DatagramPacket) IOException(java.io.IOException) InterruptedIOException(java.io.InterruptedIOException)

Example 90 with InterruptedIOException

use of java.io.InterruptedIOException in project mobile-center-sdk-android by Microsoft.

the class HttpUtilsAndroidTest method isRecoverableErrorTest.

@Test
public void isRecoverableErrorTest() {
    assertTrue(isRecoverableError(new EOFException()));
    assertTrue(isRecoverableError(new InterruptedIOException()));
    assertTrue(isRecoverableError(new SocketTimeoutException()));
    assertTrue(isRecoverableError(new SocketException()));
    assertTrue(isRecoverableError(new PortUnreachableException()));
    assertTrue(isRecoverableError(new UnknownHostException()));
    assertTrue(isRecoverableError(new RejectedExecutionException()));
    assertFalse(isRecoverableError(new MalformedURLException()));
    assertFalse(isRecoverableError(new IOException()));
    assertTrue(isRecoverableError(new IOException(new EOFException())));
    assertFalse(isRecoverableError(new IOException(new Exception())));
    for (int i = 0; i <= 4; i++) assertTrue(isRecoverableError(new HttpException(500 + i)));
    for (int i = 0; i <= 6; i++) assertFalse(isRecoverableError(new HttpException(400 + i)));
    assertTrue(isRecoverableError(new HttpException(408)));
    assertFalse(isRecoverableError(new HttpException(413)));
    assertTrue(isRecoverableError(new HttpException(429)));
    assertTrue(isRecoverableError(new SSLException("Write error: ssl=0x59c28f90: I/O error during system call, Connection timed out")));
    assertFalse(isRecoverableError(new SSLHandshakeException("java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.")));
    assertFalse(isRecoverableError(new SSLException(null, new CertPathValidatorException("Trust anchor for certification path not found."))));
    assertFalse(isRecoverableError(new SSLException("java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty")));
    assertTrue(isRecoverableError(new SSLException("Read error: ssl=0x9dd07200: I/O error during system call, Connection reset by peer")));
    assertTrue(isRecoverableError(new SSLException("SSL handshake aborted: ssl=0x1cc160: I/O error during system call, Connection reset by peer")));
    assertTrue(isRecoverableError(new SSLHandshakeException("javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x870c918: Failure in SSL library, usually a protocol error\nerror:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:658 0xb7c393a1:0x00000000)")));
}
Also used : InterruptedIOException(java.io.InterruptedIOException) SocketException(java.net.SocketException) PortUnreachableException(java.net.PortUnreachableException) MalformedURLException(java.net.MalformedURLException) UnknownHostException(java.net.UnknownHostException) IOException(java.io.IOException) InterruptedIOException(java.io.InterruptedIOException) SSLException(javax.net.ssl.SSLException) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) MalformedURLException(java.net.MalformedURLException) SSLHandshakeException(javax.net.ssl.SSLHandshakeException) IOException(java.io.IOException) EOFException(java.io.EOFException) InterruptedIOException(java.io.InterruptedIOException) UnknownHostException(java.net.UnknownHostException) SocketException(java.net.SocketException) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) SSLException(javax.net.ssl.SSLException) SocketTimeoutException(java.net.SocketTimeoutException) PortUnreachableException(java.net.PortUnreachableException) CertPathValidatorException(java.security.cert.CertPathValidatorException) SSLHandshakeException(javax.net.ssl.SSLHandshakeException) CertPathValidatorException(java.security.cert.CertPathValidatorException) SocketTimeoutException(java.net.SocketTimeoutException) EOFException(java.io.EOFException) Test(org.junit.Test)

Aggregations

InterruptedIOException (java.io.InterruptedIOException)286 IOException (java.io.IOException)195 Test (org.junit.Test)40 Socket (java.net.Socket)28 ArrayList (java.util.ArrayList)27 InputStream (java.io.InputStream)23 ExecutionException (java.util.concurrent.ExecutionException)23 ConnectException (java.net.ConnectException)22 InetSocketAddress (java.net.InetSocketAddress)21 ByteBuffer (java.nio.ByteBuffer)21 Path (org.apache.hadoop.fs.Path)20 NoRouteToHostException (java.net.NoRouteToHostException)19 EOFException (java.io.EOFException)17 OutputStream (java.io.OutputStream)17 SocketTimeoutException (java.net.SocketTimeoutException)17 ServletException (javax.servlet.ServletException)17 CountDownLatch (java.util.concurrent.CountDownLatch)16 SocketException (java.net.SocketException)15 HttpServletRequest (javax.servlet.http.HttpServletRequest)15 HttpServletResponse (javax.servlet.http.HttpServletResponse)15