Made the following changes to native map code to force it to get stuck.
diff --git a/server/native/src/main/c++/nativeMap/org_apache_accumulo_tserver_NativeMap.cc b/server/native/src/main/c++/nativeMap/org_apache_accumulo_tserver_NativeMap.cc
index eb543b936d..4783bd8156 100644
--- a/server/native/src/main/c++/nativeMap/org_apache_accumulo_tserver_NativeMap.cc
+++ b/server/native/src/main/c++/nativeMap/org_apache_accumulo_tserver_NativeMap.cc
@@ -24,6 +24,7 @@
#include <vector>
#include <jni.h>
#include <iostream>
+#include <unistd.h>
#ifdef _POSIX_MEMLOCK
#include <sys/mman.h>
@@ -80,6 +81,10 @@ JNIEXPORT jlong JNICALL Java_org_apache_accumulo_tserver_NativeMap_createNMI__J_
JNIEXPORT jlong JNICALL Java_org_apache_accumulo_tserver_NativeMap_createNMI__J_3B_3B_3B_3BJZ_3I(JNIEnv *env, jclass cls, jlong nm, jbyteArray r, jbyteArray cf, jbyteArray cq, jbyteArray cv, jlong ts, jboolean del, jintArray lens) {
+ while(true) {
+ sleep(1);
+ }
+
NativeMap *nativeMap = (NativeMap *)nm;
LocalField row(env, r);
LocalSubKey sk(env, cf, cq, cv, ts, del);Ran NativeMapIT and it got stuck, the following is a stack trace of it.
"main" #1 prio=5 os_prio=0 cpu=1168.26ms elapsed=25.70s tid=0x00007f43b801e000 nid=0x207b runnable [0x00007f43bd170000]
java.lang.Thread.State: RUNNABLE
at org.apache.accumulo.tserver.NativeMap.createNMI(Native Method)
at org.apache.accumulo.tserver.NativeMap$NMIterator.<init>(NativeMap.java:300)
Started gdb with command sudo gdb -p 8313, would not work w/o sudo because of some ptrace permission.
List threads in gdb, 0x207b->8315 so 8315 is the java thread we want.
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x7f43be77b740 (LWP 8313) "java" __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=8315, futex_word=0x7f43bd174910) at ./nptl/futex-internal.c:57
2 Thread 0x7f43bd174640 (LWP 8315) "java" 0x00007f43be8637f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f43bd1707f0, rem=rem@entry=0x7f43bd1707f0)
at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
3 Thread 0x7f43bc4fb640 (LWP 8324) "GC Thread#0" __futex_abstimed_wait_common64 (private=<optimized out>, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7f43b80369d0) at ./nptl/futex-internal.c:57
Get the native stack trace.
(gdb) thread 2
[Switching to thread 2 (Thread 0x7f43bd174640 (LWP 8315))]
#0 0x00007f43be8637f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f43bd1707f0, rem=rem@entry=0x7f43bd1707f0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
78 ../sysdeps/unix/sysv/linux/clock_nanosleep.c: No such file or directory.
(gdb) bt
#0 0x00007f43be8637f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f43bd1707f0, rem=rem@entry=0x7f43bd1707f0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1 0x00007f43be868677 in __GI___nanosleep (req=req@entry=0x7f43bd1707f0, rem=rem@entry=0x7f43bd1707f0) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x00007f43be8685ae in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
#3 0x00007f43bc016faa in Java_org_apache_accumulo_tserver_NativeMap_createNMI__J_3B_3B_3B_3BJZ_3I (env=<optimized out>, cls=<optimized out>, nm=<optimized out>, r=<optimized out>, cf=<optimized out>, cq=<optimized out>,
cv=0x7f43bd170920, ts=9223372036854775807, del=0 '\000', lens=0x7f43bd170900) at nativeMap/org_apache_accumulo_tserver_NativeMap.cc:85
#4 0x00007f43a07dea10 in ?? ()
#5 0x00007f43bd170920 in ?? ()
#6 0x7fffffffffffffff in ?? ()
#7 0x00007f4300000000 in ?? ()
#8 0x00007f43bd170900 in ?? ()
#9 0x00007f4398d0e070 in ?? ()
#10 0x0000000000000000 in ?? ()