river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Firmstone <j...@zeus.net.au>
Subject Re: Help needed with concurrency bug
Date Sun, 25 Dec 2011 00:01:06 GMT
For the following test:

com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

I'm having trouble running the debugger:

main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
sleeping
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] print domain

Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] print domain
Internal exception during operation:
    Unexpected JDWP Error: 502
main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] run
 >
Breakpoint hit: "thread=no heart without soul", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

no heart without soul[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running (at breakpoint)
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
no heart without soul[1] run
 >
Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] print domain
Internal exception during operation:
    Unexpected JDWP Error: 502
main[1] run
 >
Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] run
 >  domain = "ProtectionDomain  
(file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar 
<no signer certificates>)
 sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@425eb9 (
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar 
read)
 (java.security.AllPermission <all permissions> <all actions>)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission exitVM)
 (java.net.SocketPermission localhost:1024- listen,resolve)
)

"
main[1]



Peter Firmstone wrote:
> Dan Creswell wrote:
>> On 24 December 2011 11:36, Peter Firmstone <jini@zeus.net.au> wrote:
>>  
>>> I'm experiencing some failing tests:
>>>
>>> run.tests=com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td,\

>>>
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td,\
>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>
>>> Not sure about the last test which is failing a permission check, 
>>> but the
>>> first 5 are dropping events, without there being any security 
>>> exceptions, so
>>> I'm guessing the policy's concurrency has exposed another bug.
>>>     
>>
>> Where "bug" is potentially a swallowed exception.
>>
>> Reggie for the most part holds a writeLock for any significant
>> invocation from the client and events are dispatched via a
>> TaskManager. Seems like an unlikely source for problems. Am I right in
>> assuming the test itself is single-threaded? Sure looks like it is?
>>
>> That would suggest to me a problem in the remote comms layer if
>> anywhere. My biggest worry would be that your permissions work is
>> leading to a security exception or similar and it's just being
>> swallowed.
>>
>> Take that worry and combine it with the fact that the last failing
>> test does throw an exception and doesn't touch remote services or
>> indeed the JERI layer, I'd say this is the test to look at first and
>> perhaps we're not looking at an additional bug.
>>
>>   
> Nope, it's a concurrency bug, TaskManager would create task threads 
> for the events, the bug goes away when I activate security debug, 
> there are no permission failures.
>
> It may actually be a TaskManager bug.
>
> Notice the number of security checks being performed, although not 
> used in this instance, the new security manager caches Permissions, 
> I'm not entirely comfortable with the Comparator, to avoid equals.
>
> See attached.
>
>
>
>


Mime
View raw message