jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Commented] (OAK-1890) Concurrent System Login: IllegalStateException in at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.logout(RepositoryImpl.java:282)
Date Tue, 24 Jun 2014 15:34:25 GMT

    [ https://issues.apache.org/jira/browse/OAK-1890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14042256#comment-14042256
] 

Michael Dürig commented on OAK-1890:
------------------------------------

The ISE is an implementation detail of Guava's {{ListenableFuture}} implementation and handled
correctly internally. 

AFAICS the reason for the observed slowdown when more threads are involved is memory pressure
as increasing the heap size shows. We need to investigate whether the demand for heap is justified
for this test case or whether this is a memory need we need to fix.

Will adapt the issue title and description accordingly. 

> Concurrent System Login: IllegalStateException in at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.logout(RepositoryImpl.java:282)
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OAK-1890
>                 URL: https://issues.apache.org/jira/browse/OAK-1890
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: jcr
>            Reporter: angela
>
> output of running the system login/logout test with profiling enabled:
> {quote}
> Apache Jackrabbit Oak 1.1-SNAPSHOT
> # LoginSystemTest                  C     min     10%     50%     90%     max       N
> Oak-Tar                            1      12      13      19      24      42     266
> Oak-Tar                            2      12      15      20      24      32     496
> Oak-Tar                            4      20      23      30      37      60     660
> Oak-Tar                            8      41      67      75      85      95     532
> Oak-Tar                           10      77      90      96     113    5166     122
> Oak-Tar                           15     109     127    5559    5673    5701      27
> Oak-Tar                           20    5868    5874    5928    5943    5944      20
> Oak-Tar                           50   22116   22133   22151   22157   22162      50
> Profiler: top 5 stack trace(s) of 70414 ms:
> 1865/21120 (8%):
> at org.apache.jackrabbit.stats.RepositoryStatisticsImpl.getOrCreateRecorder(RepositoryStatisticsImpl.java:99)
> at org.apache.jackrabbit.stats.RepositoryStatisticsImpl.getCounter(RepositoryStatisticsImpl.java:80)
> at org.apache.jackrabbit.oak.stats.StatisticManager.getCounter(StatisticManager.java:81)
> at org.apache.jackrabbit.oak.jcr.session.SessionContext.getCounter(SessionContext.java:182)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.<init>(SessionImpl.java:89)
> at org.apache.jackrabbit.oak.jcr.session.SessionContext.createSession(SessionContext.java:161)
> at org.apache.jackrabbit.oak.jcr.session.SessionContext.getSession(SessionContext.java:141)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:260)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:195)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:54)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:51)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:515)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.runTest(LoginSystemTest.java:51)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:279)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.execute(LoginSystemTest.java:33)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:288)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:42)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:215)
> 1704/21120 (8%):
> at java.lang.Throwable.fillInStackTrace(Native Method)
> at java.lang.Throwable.<init>(Throwable.java:196)
> at java.lang.Exception.<init>(Exception.java:41)
> at org.apache.jackrabbit.oak.jcr.session.SessionStats.<init>(SessionStats.java:40)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.<init>(SessionDelegate.java:154)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.<init>(RepositoryImpl.java:271)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:269)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:255)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:195)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:54)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:51)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:515)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.runTest(LoginSystemTest.java:51)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:279)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.execute(LoginSystemTest.java:33)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:288)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:42)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:215)
> 1167/21120 (5%):
> at java.lang.Throwable.fillInStackTrace(Native Method)
> at java.lang.Throwable.<init>(Throwable.java:181)
> at java.lang.Exception.<init>(Exception.java:29)
> at java.lang.RuntimeException.<init>(RuntimeException.java:32)
> at java.lang.IllegalStateException.<init>(IllegalStateException.java:27)
> at java.util.concurrent.CancellationException.<init>(CancellationException.java:24)
> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:220)
> at java.util.concurrent.FutureTask.get(FutureTask.java:83)
> at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
> at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:135)
> at com.google.common.util.concurrent.Futures$4.run(Futures.java:1158)
> at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
> at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
> at com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101)
> at com.google.common.util.concurrent.ListenableFutureTask.addListener(ListenableFutureTask.java:83)
> at com.google.common.util.concurrent.ForwardingListenableFuture.addListener(ForwardingListenableFuture.java:47)
> at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1172)
> at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1108)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.logout(RepositoryImpl.java:282)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl$10.perform(SessionImpl.java:464)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl$10.perform(SessionImpl.java:460)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:236)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:282)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.safePerform(SessionImpl.java:132)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.logout(SessionImpl.java:460)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.runTest(LoginSystemTest.java:51)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:279)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.execute(LoginSystemTest.java:33)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:288)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:42)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:215)
> 1161/21120 (5%):
> at org.apache.jackrabbit.stats.RepositoryStatisticsImpl.getOrCreateRecorder(RepositoryStatisticsImpl.java:99)
> at org.apache.jackrabbit.stats.RepositoryStatisticsImpl.getCounter(RepositoryStatisticsImpl.java:80)
> at org.apache.jackrabbit.oak.stats.StatisticManager.getCounter(StatisticManager.java:81)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.<init>(SessionDelegate.java:158)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.<init>(RepositoryImpl.java:271)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:269)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:255)
> at org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:195)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:54)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest$1.run(LoginSystemTest.java:51)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:515)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.runTest(LoginSystemTest.java:51)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:279)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.execute(LoginSystemTest.java:33)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:288)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:42)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:215)
> 1156/21120 (5%):
> at java.lang.Throwable.fillInStackTrace(Native Method)
> at java.lang.Throwable.<init>(Throwable.java:196)
> at java.lang.Exception.<init>(Exception.java:41)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate$WarningLock.lock(SessionDelegate.java:695)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate$WarningLock.lock(SessionDelegate.java:700)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:213)
> at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:282)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.safePerform(SessionImpl.java:132)
> at org.apache.jackrabbit.oak.jcr.session.SessionImpl.logout(SessionImpl.java:460)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.runTest(LoginSystemTest.java:51)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:279)
> at org.apache.jackrabbit.oak.benchmark.LoginSystemTest.execute(LoginSystemTest.java:33)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:288)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:42)
> at org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:215)
> summary:
> 27%: org.apache.jackrabbit.stats
> 19%: org.apache.jackrabbit.oak.jcr.session
> 15%: org.apache.jackrabbit.oak.jcr.delegate
> 12%: com.google.common.util.concurrent
> 12%: org.apache.jackrabbit.oak.benchmark
> {quote}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message