Discussion:
[beanutils] JVM problem with BeanIntrospectionData.getWriteMethod()
robertlazarski .
2017-11-29 14:28:09 UTC
Permalink
Hello all,

We recently upgraded to commons beanutils 1.9.3 and are seeing this problem
on our Wildfly 10.1 server running on RHEL 7.x Linux.

We may have a problem with one of our Objects passed into
BeanUtils.copyProperties() - still investigating - though my gut feeling is
the problem is related to our recent upgrade.

Any ideas? This process has been hanging for close to an hour at the
moment.

# find Linux processes taking more than 10% CPU
/home> ps -eLo pid,lwp,nlwp,ruser,pcpu,stime,etime,args|grep 85150 | awk '
$5 >= 10 '
...

# get hex value of "Light weight process"

/home> printf "%x\n" 85399

14d97

# use main JVM process to get snapshot of the JVM, filter on the LWP
/home> jstack -l 85150 | grep -A 100 14d97
"default task-62" #245 prio=5 os_prio=0 tid=0x00007f99e40e2800 nid=0x14d97
waiting for monitor entry [0x00007f999911a000]
java.lang.Thread.State: BLOCKED (on object monitor)
at
java.beans.PropertyDescriptor.getWriteMethod(PropertyDescriptor.java:271)
- waiting to lock <0x00000004f3ee1380> (a
java.beans.PropertyDescriptor)
at
org.apache.commons.beanutils.BeanIntrospectionData.getWriteMethod(BeanIntrospectionData.java:113)
at
org.apache.commons.beanutils.PropertyUtilsBean.getWriteMethod(PropertyUtilsBean.java:1319)
at
org.apache.commons.beanutils.PropertyUtilsBean.isWriteable(PropertyUtilsBean.java:1480)
at
org.apache.commons.beanutils.BeanUtilsBean.copyProperties(BeanUtilsBean.java:280)
at
org.apache.commons.beanutils.BeanUtils.copyProperties(BeanUtils.java:135)
Martin Gainty
2017-11-30 13:52:15 UTC
Permalink
________________________________
From: robertlazarski . <***@gmail.com>
Sent: Wednesday, November 29, 2017 9:28 AM
To: Commons Users List
Subject: [beanutils] JVM problem with BeanIntrospectionData.getWriteMethod()

Hello all,

We recently upgraded to commons beanutils 1.9.3 and are seeing this problem
on our Wildfly 10.1 server running on RHEL 7.x Linux.

We may have a problem with one of our Objects passed into
BeanUtils.copyProperties() - still investigating - though my gut feeling is
the problem is related to our recent upgrade.

Any ideas? This process has been hanging for close to an hour at the
moment.

# find Linux processes taking more than 10% CPU
/home> ps -eLo pid,lwp,nlwp,ruser,pcpu,stime,etime,args|grep 85150 | awk '
$5 >= 10 '
...

# get hex value of "Light weight process"

/home> printf "%x\n" 85399

14d97

# use main JVM process to get snapshot of the JVM, filter on the LWP
/home> jstack -l 85150 | grep -A 100 14d97
"default task-62" #245 prio=5 os_prio=0 tid=0x00007f99e40e2800 nid=0x14d97
waiting for monitor entry [0x00007f999911a000]
java.lang.Thread.State: BLOCKED (on object monitor)
at
java.beans.PropertyDescriptor.getWriteMethod(PropertyDescriptor.java:271)
- waiting to lock <0x00000004f3ee1380> (a
java.beans.PropertyDescriptor)
at
org.apache.commons.beanutils.BeanIntrospectionData.getWriteMethod(BeanIntrospectionData.java:113)
at
org.apache.commons.beanutils.PropertyUtilsBean.getWriteMethod(PropertyUtilsBean.java:1319)
at
org.apache.commons.beanutils.PropertyUtilsBean.isWriteable(PropertyUtilsBean.java:1480)
at
org.apache.commons.beanutils.BeanUtilsBean.copyProperties(BeanUtilsBean.java:280)
at
org.apache.commons.beanutils.BeanUtils.copyProperties(BeanUtils.java:135)

MG>some other thread has a lock on PropertyDescriptor? can you reun with JVM flag

XX:+PrintConcurrentLocks

Loading...