[ http://issues.apache.org/jira/browse/DIRSERVER-608?page=all ]
     
Trustin Lee resolved DIRSERVER-608:
-----------------------------------

    Resolution: Duplicate
     Assign To: Trustin Lee

This issue looks like a duplicate of DIRMINA-204

Please upgrade your JRE to 1.4.2_10 and let us know if it still is a problem.

> 100% CPU usage after resume WinXP from stand-by: appears to be in MINA
> ----------------------------------------------------------------------
>
>          Key: DIRSERVER-608
>          URL: http://issues.apache.org/jira/browse/DIRSERVER-608
>      Project: Directory ApacheDS
>         Type: Bug

>   Components: core
>     Versions: 1.0-RC1
>  Environment: Windows XP 2002 SP2, JDK  1.4.2_04-b05
>     Reporter: Norbert Reilly
>     Assignee: Trustin Lee

>
> I've noticed that when ApacheDS is running on my laptop and I close the lid 
> and later open it that the ApacheDS java process is using 100% CPU. When 
> logging at the DEBUG level the 100% CPU usage seems to coincide with messages 
> like this (the 20 second periodic sync):
> ============================
> 2006-04-19 12:46:08,833 101464 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 'ou=system'
> 2006-04-19 12:46:08,883 101514 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 
> 'uid=admin,ou=system'
> 2006-04-19 12:46:08,943 101574 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 
> 'uid=admin,ou=system'
> 2006-04-19 12:46:09,013 101644 [SynchWorkerThread] 
> (org.apache.directory.server.core.authn.AuthenticationService:248) DEBUG 
> org.apache.directory.server.core.authn.AuthenticationService  - Testing if 
> entry name = 'ou=system' exists
> 2006-04-19 12:46:09,063 101694 [SynchWorkerThread] 
> (org.apache.directory.server.core.partition.DefaultDirectoryPartitionNexus:722)
>  DEBUG 
> org.apache.directory.server.core.partition.DefaultDirectoryPartitionNexus  - 
> Check if DN 'ou=system' exists.
> 2006-04-19 12:46:09,123 101754 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 
> 'ou=services,ou=configuration,ou=system'
> 2006-04-19 12:46:09,223 101854 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 'ou=system'
> 2006-04-19 12:46:09,304 101935 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 
> 'ou=interceptors,ou=configuration,ou=system'
> 2006-04-19 12:46:09,424 102055 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 'ou=system'
> 2006-04-19 12:46:09,504 102135 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 
> 'ou=configuration,ou=system'
> 2006-04-19 12:46:09,604 102235 [SynchWorkerThread] 
> (org.apache.directory.shared.ldap.name.DnParser:184) DEBUG 
> org.apache.directory.shared.ldap.name.DnParser  - Parsing DN 'ou=system'
> ============================
> This is a dump of the threads when I pause the debugger:
> [EMAIL PROTECTED], priority=5, in group 'main', status: 'RUNNING'
> [EMAIL PROTECTED], priority=5, in group 'main', status: 'WAIT'
>         wait():-1, Object.java
>         run():155, Service.java
>         run():534, Thread.java
> [EMAIL PROTECTED], priority=5, in group 'main', status: 'RUNNING'
>         poll0():-1, WindowsSelectorImpl.java
>         poll():263, WindowsSelectorImpl.java
>         access$400():245, WindowsSelectorImpl.java
>         doSelect():128, WindowsSelectorImpl.java
>         lockAndDoSelect():59, SelectorImpl.java
>         select():70, SelectorImpl.java
>         select():74, SelectorImpl.java
>         run():326, SocketAcceptorDelegate.java
> Signal [EMAIL PROTECTED] daemon, priority=10, in group 'system', status: 
> 'RUNNING'
> [EMAIL PROTECTED] daemon, priority=8, in group 'system', status: 'WAIT'
>         wait():-1, Object.java
>         remove():111, ReferenceQueue.java
>         remove():127, ReferenceQueue.java
>         run():159, Finalizer.java
> Reference [EMAIL PROTECTED] daemon, priority=10, in group 'system', status: 
> 'WAIT'
>         wait():-1, Object.java
>         wait():429, Object.java
>         run():115, Reference.java
> The busy loop is in 
> org.apache.mina.transport.socket.nio.support.SocketAcceptorDelegate.Worker.run()
>  and appears to be because the line:
>       int nKeys = selector.select();
> never blocks after the resume, and hence the run() method becomes a busy 
> loop. This may well be a bug in the JDK's nio package but a quick web search 
> didn't turn up a match. At any rate it seems like a problem that will need to 
> be worked around in MINA until the JDK is patched (if my diagnosis is 
> correct) at it seems the selector is rendered inoperable by the 
> close-lid/resume sequence.
> I presume the same problem could be triggered on a desk-top machine with 
> enough understanding about what WinXP does during a suspend, and why this 
> upsets the NIO package.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to