Already a fix in trunk for this.&nbsp; Easier to actually submit bug reports directly to me as opposed to the list.&nbsp; I only periodically monitor this list.<br><br>gw<br><br><div class="gmail_quote">On Mon, Mar 3, 2008 at 7:58 PM, Chris Lamprecht &lt;<a href="mailto:clamprecht@gmail.com">clamprecht@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Using a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ThreadLocal.html" target="_blank">ThreadLocal</a> may work too.<div>
<div></div><div class="Wj3C7c"><br><br><div class="gmail_quote">On Mon, Mar 3, 2008 at 6:27 PM, Hanson Char &lt;<a href="mailto:hanson.char@gmail.com" target="_blank">hanson.char@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Yup, message digest is stateful and is not thread-safe and a new instance needs to be instantiated for every execution.&nbsp; Definitely a bug if a message digest instance is being used by multiple threads concurrently without synchronization.<br>

<font color="#888888">
<br>Hanson</font><div><div></div><div><br><br><div class="gmail_quote">On Mon, Mar 3, 2008 at 3:54 PM, Miguel De Avila &lt;<a href="mailto:mdeavila@hotmail.com" target="_blank">mdeavila@hotmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div>
We&#39;re using the java client library from Greg Whalin (<br><a href="http://www.whalin.com/memcached/" target="_blank">http://www.whalin.com/memcached/</a>).<br><br>When using the consistent hash (md5-based) under heavy load we&#39;re seeing<br>


ArrayIndexOutOfBoundsExceptions,<br><br>java.lang.ArrayIndexOutOfBoundsException<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.System.arraycopy(Native Method)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:102)<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.security.provider.MD5.implDigest(MD5.java:100)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.security.provider.DigestBase.engineDigest(DigestBase.java:161)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.security.provider.DigestBase.engineDigest(DigestBase.java:140)<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.security.MessageDigest$Delegate.engineDigest(MessageDigest.java:531)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.security.MessageDigest.digest(MessageDigest.java:309)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.danga.MemCached.SockIOPool.md5HashingAlg(SockIOPool.java:522)<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.danga.MemCached.SockIOPool.getHash(SockIOPool.java:547)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.danga.MemCached.SockIOPool.getBucket(SockIOPool.java:557)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.danga.MemCached.SockIOPool.getSock(SockIOPool.java:918)<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.danga.MemCached.MemCachedClient.get(MemCachedClient.java:1266)<br><br>Looks like the culprit is the static MessageDigest instance on line 140 of SockIOPool.java.<br>The MessageDigest instance is statefull, and I don&#39;t see any indication&nbsp; that it is thread-safe.<br>


<br>Has anyone else encountered this problem?<br><br>My plan is to switch to a stateless FNV hashing implementation.<br><br>Miguel<br><br></div>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Greg Whalin