Hi,

I'm seeing intermittent Exceptions in the logs when running a test that creates a new client, uses it, then shuts it down.

Exception in thread "Memcached IO over {MemcachedConnection to localhost/127.0.0.1:11221 localhost/127.0.0.1:11222} - SHUTTING DOWN (informed client)" java.nio.channels.CancelledKeyException
        at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55)
        at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64)
at net.spy.memcached.protocol.TCPMemcachedNodeImpl.fixupOps (TCPMemcachedNodeImpl.java:372) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:275) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:182)
        at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:740)

Exception in thread "Memcached IO over {MemcachedConnection to localhost/127.0.0.1:11221 localhost/127.0.0.1:11222} - SHUTTING DOWN (telling client)" java.lang.NullPointerException at net.spy.memcached.protocol.TCPMemcachedNodeImpl.fixupOps (TCPMemcachedNodeImpl.java:372) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:275) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:182)
        at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:740)

Exception in thread "Memcached IO over {MemcachedConnection to localhost/127.0.0.1:11221 localhost/127.0.0.1:11222} - SHUTTING DOWN (telling client)" java.lang.NullPointerException at net.spy.memcached.protocol.TCPMemcachedNodeImpl.fixupOps (TCPMemcachedNodeImpl.java:372) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:275) at net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:182)
        at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:740)


When I look at the source, I don't see any code that tries to prevent the race condition between the IO handling code in MemcachedConnection and the shutdown() call that closes each connection. Is this a bug, or am I misreading the code?

Thanks,
David

Reply via email to