Segfault when executing pmd benchmark (dacapo-2006-10-MR2 version)

37 views
Skip to first unread message

Karim Hamdan

unread,
Feb 9, 2012, 10:50:53 AM2/9/12
to tamiflex...@googlegroups.com
Hi there,

I was trying to execute the play-out agent (version 2.0.0.0) against the pmd benchmark from DaCapo 2006-10-MR2 using the following command
% java -javaagent:poa.jar -jar dacapo-2006-10-MR2.jar pmd

and I got the following output
============================================================
TamiFlex Play-Out Agent Version 2.0.0.0
Loaded properties from /u/karim/.tamiflex/poa.properties

Active instruments:
de.bodden.tamiflex.playout.transformation.array.ArrayMultiNewInstanceTransformation: 
    java.lang.reflect.Array.newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
de.bodden.tamiflex.playout.transformation.array.ArrayNewInstanceTransformation: 
    java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
de.bodden.tamiflex.playout.transformation.clazz.ClassForNameTransformation: 
    java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class;
    java.lang.Class.forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetDeclaredFieldTransformation: 
    java.lang.Class.getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetDeclaredFieldsTransformation: 
    java.lang.Class.getDeclaredFields()[Ljava/lang/reflect/Field;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetDeclaredMethodTransformation: 
    java.lang.Class.getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetDeclaredMethodsTransformation: 
    java.lang.Class.getDeclaredMethods()[Ljava/lang/reflect/Method;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetFieldTransformation: 
    java.lang.Class.getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetFieldsTransformation: 
    java.lang.Class.getFields()[Ljava/lang/reflect/Field;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetMethodTransformation: 
    java.lang.Class.getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
de.bodden.tamiflex.playout.transformation.clazz.ClassGetMethodsTransformation: 
    java.lang.Class.getMethods()[Ljava/lang/reflect/Method;
de.bodden.tamiflex.playout.transformation.clazz.ClassNewInstanceTransformation: 
    java.lang.Class.newInstance()Ljava/lang/Object;
de.bodden.tamiflex.playout.transformation.constructor.ConstructorGetModifiersTransformation: 
    java.lang.reflect.Constructor.getModifiers()I
de.bodden.tamiflex.playout.transformation.constructor.ConstructorNewInstanceTransformation: 
    java.lang.reflect.Constructor.newInstance([Ljava/lang/Object;)Ljava/lang/Object;
de.bodden.tamiflex.playout.transformation.constructor.ConstructorToGenericStringTransformation: 
    java.lang.reflect.Constructor.toGenericString()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.constructor.ConstructorToStringTransformation: 
    java.lang.reflect.Constructor.toString()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.field.FieldGetDeclaringClassTransformation: 
    java.lang.reflect.Field.getDeclaringClass()Ljava/lang/Class;
de.bodden.tamiflex.playout.transformation.field.FieldGetModifiersTransformation: 
    java.lang.reflect.Field.getModifiers()I
de.bodden.tamiflex.playout.transformation.field.FieldGetNameTransformation: 
    java.lang.reflect.Field.getName()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.field.FieldGetTransformation: 
    java.lang.reflect.Field.get(Ljava/lang/Object;)Ljava/lang/Object;
    java.lang.reflect.Field.getBoolean(Ljava/lang/Object;)Z
    java.lang.reflect.Field.getByte(Ljava/lang/Object;)B
    java.lang.reflect.Field.getChar(Ljava/lang/Object;)C
    java.lang.reflect.Field.getShort(Ljava/lang/Object;)S
    java.lang.reflect.Field.getInt(Ljava/lang/Object;)I
    java.lang.reflect.Field.getLong(Ljava/lang/Object;)J
    java.lang.reflect.Field.getFloat(Ljava/lang/Object;)F
    java.lang.reflect.Field.getDouble(Ljava/lang/Object;)D
de.bodden.tamiflex.playout.transformation.field.FieldSetTransformation: 
    java.lang.reflect.Field.set(Ljava/lang/Object;Ljava/lang/Object;)V
    java.lang.reflect.Field.setBoolean(Ljava/lang/Object;Z)V
    java.lang.reflect.Field.setByte(Ljava/lang/Object;B)V
    java.lang.reflect.Field.setChar(Ljava/lang/Object;C)V
    java.lang.reflect.Field.setShort(Ljava/lang/Object;S)V
    java.lang.reflect.Field.setInt(Ljava/lang/Object;I)V
    java.lang.reflect.Field.setLong(Ljava/lang/Object;J)V
    java.lang.reflect.Field.setFloat(Ljava/lang/Object;F)V
    java.lang.reflect.Field.setDouble(Ljava/lang/Object;D)V
de.bodden.tamiflex.playout.transformation.field.FieldToGenericStringTransformation: 
    java.lang.reflect.Field.toGenericString()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.field.FieldToStringTransformation: 
    java.lang.reflect.Field.toString()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.method.MethodGetDeclaringClassTransformation: 
    java.lang.reflect.Method.getDeclaringClass()Ljava/lang/Class;
de.bodden.tamiflex.playout.transformation.method.MethodGetModifiersTransformation: 
    java.lang.reflect.Method.getModifiers()I
de.bodden.tamiflex.playout.transformation.method.MethodGetNameTransformation: 
    java.lang.reflect.Method.getName()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.method.MethodInvokeTransformation: 
    java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
de.bodden.tamiflex.playout.transformation.method.MethodToGenericStringTransformation: 
    java.lang.reflect.Method.toGenericString()Ljava/lang/String;
de.bodden.tamiflex.playout.transformation.method.MethodToStringTransformation: 
    java.lang.reflect.Method.toString()Ljava/lang/String;
============================================================
===== DaCapo pmd starting =====
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fd8c98da7d5, pid=5777, tid=1089952080
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.so+0x5e27d5]
#
[thread 1109756240 also had an error]
# An error report file with more information is saved as:
# [thread 1109756240 also had an error]
#
# If you would like to submit a bug report, please visit:
#
Aborted


I also tried using the option "-s small", and I got the same error. I searched the group for similar problems and ran into the previous post where they were running the fop benchmark and got a segfault. I tried Pascal's suggestion of removing the "de.bodden.tamiflex.playout.transformation.method.MethodGetNameTransformation". Unfortunately, I got the same error. I attached the error report file hoping that it would help figure out what's going on.

Thanks a lot.
Karim
hs_err_pid5777.log

Pascal Wittmann

unread,
Feb 9, 2012, 11:11:20 AM2/9/12
to tamiflex...@googlegroups.com
On 02/09/2012 04:50 PM, Karim Hamdan wrote:
> I was trying to execute the play-out agent (version 2.0.0.0) against the
> pmd benchmark from DaCapo 2006-10-MR2 using the following command
> % java -javaagent:poa.jar -jar dacapo-2006-10-MR2.jar pmd

I'm not sure if there is a difference regarding pmd between the
"2006-10-MR2" and "9.12-bach" release, but with the "9.12-bach" release
everything is fine here. But I'm using OpenJDK:

% java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11) (ArchLinux-6.b24_1.11-1-i686)
OpenJDK Server VM (build 20.0-b12, mixed mode)

So, maybe it is a jvm related problem.

signature.asc

Eric Bodden

unread,
Feb 9, 2012, 11:22:22 AM2/9/12
to tamiflex...@googlegroups.com
Karim, could you try a current build from source?

We recently fixed a bug that could cause segmentation faults in some situations.

Eric

--
Eric Bodden, Ph.D., http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Principal Investigator in Secure Services at CASED
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt

Karim Hamdan

unread,
Feb 9, 2012, 11:52:09 AM2/9/12
to tamiflex...@googlegroups.com
Thanks a lot Pascal for your reply. I think that might be right since I tried executing it on another machine (which happened to have oracle's jvm too) and got a segmentation fault as well. The output was quite different though as it was just one line with "segmentation fault: 11".

Eric, sure. I just cloned the mercurial repo. Are there any install/configure scripts? How can I proceed with installation from source? I looked for any installation from source instructions but I couldn't find any.

--
Karim Hamdan

Karim Hamdan

unread,
Feb 9, 2012, 12:12:46 PM2/9/12
to tamiflex...@googlegroups.com
I just found out there are ant scripts for each project in tamiflex. After building it from source, I executed it against pmd and it did work. It seems that the lates version (from source) indeed fixed that segfault error.

Thanks a lot Eric and Pascal.

--
Karim Hamdan

Eric Bodden

unread,
Feb 9, 2012, 2:22:30 PM2/9/12
to tamiflex...@googlegroups.com
> building it from source, I executed it against pmd and it did work. It seems
> that the lates version (from source) indeed fixed that segfault error.

Excellent, thanks for letting us know! I should update the
documentation on building tamiflex from source...

Eric

Reply all
Reply to author
Forward
0 new messages