<< Back to previous view

[GLASSFISH-20435] NullPointer exception in domain log on cluster or instance creation Created: 29/Apr/13  Updated: 30/Apr/13  Resolved: 30/Apr/13

Status: Resolved
Project: glassfish
Component/s: admin
Affects Version/s: 4.0_b86_RC2
Fix Version/s: 4.0_b87_RC3

Type: Bug Priority: Major
Reporter: marina vatkina Assignee: Tom Mueller
Resolution: Fixed Votes: 0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: 4_0-approved
Participants: Byron Nevins, marina vatkina and Tom Mueller

 Description   

gf-transaction-cluster-devtest reports NPEs during "create-cluster" or "create-local-instance --cluster" call (the log reports various actions on different threads, and the instance log starts at 13:15:42.166-0700) for the 'selfrecovery' and 'autorecovery' tests in the transaction/ee suite. It doesn't happen in other tests.

These are the DAS server.log fragments:

1:

[2013-04-29T13:15:36.997-0700] [glassfish 4.0] [INFO] [membership.snapshot.analysis] [ShoalLogger] [tid: _ThreadID=108 _ThreadName=GMS ViewWindowThread Group-c1] [timeMillis: 1367266536997] [levelValue: 800] [[
GMS1016: Analyzing new membership snapshot received as part of event: JOINED_AND_READY_EVENT for member: server of group: c1]]

[2013-04-29T13:15:37.424-0700] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=55 _ThreadName=pool-8-thread-1] [timeMillis: 1367266537424] [levelValue: 1000] [[
Exception while processing config bean changes :
java.lang.NullPointerException
at java.lang.reflect.Proxy.getInvocationHandler(Proxy.java:656)
at org.jvnet.hk2.config.ConfigSupport.getImpl(ConfigSupport.java:246)
at com.sun.enterprise.v3.admin.listener.CombinedJavaConfigSystemPropertyListener$1.changed(CombinedJavaConfigSystemPropertyListener.java:249)
at org.jvnet.hk2.config.ConfigSupport.sortAndDispatch(ConfigSupport.java:288)
at com.sun.enterprise.v3.admin.listener.CombinedJavaConfigSystemPropertyListener.changed(CombinedJavaConfigSystemPropertyListener.java:195)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:400)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:390)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:280)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:278)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
]]

[2013-04-29T13:15:38.233-0700] [glassfish 4.0] [INFO] [NCLS-CLSTR-20001] [javax.enterprise.cluster.gms.bootstrap] [tid: _ThreadID=154 _ThreadName=pool-24-thread-1] [timeMillis: 1367266538233] [levelValue: 800] [[
Adding instance in1 to health history table.]]

2:
[2013-04-29T13:18:07.273-0700] [glassfish 4.0] [INFO] [membership.snapshot.analysis] [ShoalLogger] [tid: _ThreadID=240 _ThreadName=GMS ViewWindowThread Group-c1] [timeMillis: 1367266687273] [levelValue: 800] [[
GMS1016: Analyzing new membership snapshot received as part of event: JOINED_AND_READY_EVENT for member: server of group: c1]]

[2013-04-29T13:18:08.084-0700] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=234 _ThreadName=pool-49-thread-1] [timeMillis: 1367266688084] [levelValue: 1000] [[
Exception while processing config bean changes :
java.lang.NullPointerException
at java.lang.reflect.Proxy.getInvocationHandler(Proxy.java:656)
at org.jvnet.hk2.config.ConfigSupport.getImpl(ConfigSupport.java:246)
at com.sun.enterprise.v3.admin.listener.CombinedJavaConfigSystemPropertyListener$1.changed(CombinedJavaConfigSystemPropertyListener.java:249)
at org.jvnet.hk2.config.ConfigSupport.sortAndDispatch(ConfigSupport.java:288)
at com.sun.enterprise.v3.admin.listener.CombinedJavaConfigSystemPropertyListener.changed(CombinedJavaConfigSystemPropertyListener.java:195)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:400)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:390)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:280)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:278)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
]]

[2013-04-29T13:18:08.784-0700] [glassfish 4.0] [INFO] [NCLS-CLSTR-20001] [javax.enterprise.cluster.gms.bootstrap] [tid: _ThreadID=220 _ThreadName=pool-43-thread-1] [timeMillis: 1367266688784] [levelValue: 800] [[
Adding instance in1 to health history table.]]



 Comments   
Comment by Tom Mueller [ 30/Apr/13 06:08 PM ]

More information is needed on how to reproduce this issue.
I tried running the appserv-tests/devtests/transaction/ee tests by setting S1AS_HOME and APS_HOME and running "ant all", but the build fails. I tried just creating clustered instances and the message doesn't show up.
It would be helpful if the hudson job set "AS_LOGFILE" so that the commands that it executes would be recorded and the timestamps could be aligned with the server.log error messages.

Comment by marina vatkina [ 30/Apr/13 06:14 PM ]

The tests are executed by running 'ant all' (may be the S1AS_HOME and APS_HOME are not set properly?). The tests that report the NPE are 'selfrecovery' and 'autorecovery'

Comment by Tom Mueller [ 30/Apr/13 06:38 PM ]

To recreate the problem easily, do the following on a clean install:

asadmin start-domain
asadmin create-cluster c1
asadmin create-system-properties --cluster c1 a=b

The NullPointerException message is printed in the log during the 3rd command.

Comment by Byron Nevins [ 30/Apr/13 06:44 PM ]

Tom - Nice job turning it into a 3 command scenario. But #3 is wrong:

WRONG:
asadmin create-system-properties --cluster c1 a=b

RIGHT:
asadmin create-system-properties --target c1 a=b

Comment by Tom Mueller [ 30/Apr/13 07:01 PM ]
  • What is the impact on the customer of the bug?

How likely is it that a customer will see the bug and how serious is the bug?

If the customer adds a system property to a cluster config, they will see this NPE.

Is it a regression? Does it meet other bug fix criteria (security, performance, etc.)?
No. This was there in 3.1.2 also.
What CTS failures are caused by this bug?
None.

  • What is the cost/risk of fixing the bug?

How risky is the fix? How much work is the fix? Is the fix complicated?
Low risk. Just add checks for cluster==null in the right places.

  • Is there an impact on documentation or message strings?
    No
  • Which tests should QA (re)run to verify the fix did not destabilize GlassFish?
    Tests that set system properties.
  • Which is the targeted build of 4.0 for this fix?
    Next one.
  • If this an integration of a new version of a component from another project,
    what are the changes that are being brought in? This might be list of
    Jira issues from that project or a list of revision messages.
    N/A.
Comment by Tom Mueller [ 30/Apr/13 07:01 PM ]

Approved for 4.0.

Comment by Tom Mueller [ 30/Apr/13 07:54 PM ]

Fixed on the trunk in revision 61757.

Generated at Sun Apr 20 22:50:39 UTC 2014 using JIRA 4.0.2#472.