#1 how to debug vdbench java exception

open
nobody
None
5
2014-09-29
2012-04-10
Anonymous
No

I have a mixed I/O workload for a storage raw device, and trying to run vdbench continuously for many days.
But after about 7-11hrs, the slave failed with the following exception:

17:20:48.006 17:20:48.006 task_run_all(): 132 tasks
01:16:26.972 01:16:26.971 java.lang.ArrayIndexOutOfBoundsException
01:16:26.973 java.lang.ArrayIndexOutOfBoundsException: -2
01:16:26.973 at java.util.ArrayList.elementData(ArrayList.java:338)
01:16:26.973 at java.util.ArrayList.get(ArrayList.java:351)
01:16:26.973 at Vdb.WT_task.getLowest(WT_task.java:207)
01:16:26.973 at Vdb.WT_task.run(WT_task.java:117)
01:16:26.973 java.lang.ArrayIndexOutOfBoundsException: -2
01:16:26.973 at java.util.ArrayList.elementData(ArrayList.java:338)
01:16:26.973 at java.util.ArrayList.get(ArrayList.java:351)
01:16:26.973 at Vdb.WT_task.getLowest(WT_task.java:207)
01:16:26.974 at Vdb.WT_task.run(WT_task.java:117)
01:16:26.974 01:16:26.974 lowwg: null
01:16:26.974 java.lang.NullPointerException
01:16:26.974 at Vdb.WT_task.getLowest(WT_task.java:280)
01:16:26.974 at Vdb.WT_task.run(WT_task.java:117)
01:16:26.974 java.lang.NullPointerException
01:16:26.974 at Vdb.WT_task.getLowest(WT_task.java:280)
01:16:26.974 at Vdb.WT_task.run(WT_task.java:117)
01:16:26.974 01:16:26.974 common.failure(): System.exit(-99)

How do I go about debugging it? And how do I recompile vdbench?

the workload file looks like:
data_errors=1
sd=sd1,lun=/dev/vgca0,align=4k,threads=256,openflags=o_direct
wd=wd1,sd=sd1,rdpct=40,seek=100,xfersize=(512,4,1k,1,1.5k,1,2k,1,2.5k,1,3k,1,3.5k,1,4K,67,8k,10,16k,7,32k,3,64k,3),range=(1,5),skew=50
wd=wd2,sd=sd1,rdpct=40,seek=100,xfersize=(512,4,1k,1,1.5k,1,2k,1,2.5k,1,3k,1,3.5k,1,4K,67,8k,10,16k,7,32k,3,64k,3),range=(6,20),skew=30
wd=wd3,sd=sd1,rdpct=40,seek=100,xfersize=(512,4,1k,1,1.5k,1,2k,1,2.5k,1,3k,1,3.5k,1,4K,67,8k,10,16k,7,32k,3,64k,3),range=(21,100),skew=20
rd=SSD_Sustain,wd=wd*,elapsed=1000h,iorate=MAX,interval=1

command line :
./vdbench.bash -f vdbench.param -m 1 -l -p 10000 -o output

Discussion