Gerrit commands/UI hangs

112 views
Skip to first unread message

Anu

unread,
Jul 6, 2015, 6:18:35 AM7/6/15
to repo-d...@googlegroups.com
Hello,

Recently I have noticed that there are intermittent access issues for any kind of Gerrit commands.
And after sometime, it will work normally and again it repeats after a while.

Could you please suggest if there is any fine tuning needed in our server setup?
1) Server is with 31 GB RAM with 16 cores.
2) In addition to that, I have conifgured Java heapLimit as "15GB". 

Please find more details below:

Thanks, Anu
______________________________________________

[root@bhimscm51 etc]# free -g
             total       used       free     shared    buffers     cached
Mem:            31         29          1          0          0         13
-/+ buffers/cache:         16         15
Swap:            3          0          3
[root@bhimscm51 etc]#



$ ssh <server> -p 29418 gerrit show-caches
Gerrit Code Review        2.8.5                     now    15:40:40   IST
                                                 uptime    7 days  2 hrs

  Name                          |Entries              |  AvgGet |Hit Ratio|
                                |   Mem   Disk   Space|         |Mem  Disk|
--------------------------------+---------------------+---------+---------+
  accounts                      |   365               |   4.8ms | 99%     |
  accounts_byemail              |   299               |   4.0ms | 99%     |
  accounts_byname               |   367               |   4.1ms | 99%     |
  adv_bases                     |                     |         |         |
  changes                       |                     |   8.7ms |  0%     |
  groups                        |    22               |   5.5ms | 91%     |
  groups_byinclude              |     8               |   5.2ms | 66%     |
  groups_byname                 |                     |         |         |
  groups_byuuid                 |    16               |   3.8ms | 95%     |
  groups_external               |     1               |   4.3ms | 80%     |
  groups_members                |    26               |   5.3ms | 99%     |
  ldap_group_existence          |     4               |   9.1ms | 57%     |
  ldap_groups                   |   122               |  67.0ms | 99%     |
  ldap_groups_byinclude         |                     |         |         |
  ldap_usernames                |    20               |   3.5ms | 51%     |
  permission_sort               |  1024               |         | 96%     |
  plugin_resources              |     1               |         | 99%     |
  project_list                  |     1               | 174.3ms | 99%     |
  projects                      |   105               |   2.0s  | 99%     |
  sshkeys                       |   181               |   9.4ms | 99%     |
D diff                          |  1263   3849  10.72m| 151.3ms | 78%  99%|
D diff_intraline                |   798    798 474.09k|  15.6ms | 72% 100%|
D git_tags                      |     3      3  42.43k|         | 74% 100%|
D web_sessions                  |   125  10904   4.31m|         | 98%   8%|

SSH:     13  users, oldest session started    6 days 18 hrs ago
Tasks:   22  total =   14 running +      4 ready +    4 sleeping
Mem:  14.49g total =   9.58g used +   4.86g free +  49.27m buffers
      14.49g max
         128 open files,       16 cpus available,      162 threads

$

Saša Živkov

unread,
Jul 6, 2015, 8:09:59 AM7/6/15
to Anu, repo-d...@googlegroups.com
On Mon, Jul 6, 2015 at 12:18 PM, Anu <anugr...@gmail.com> wrote:
Hello,

Recently I have noticed that there are intermittent access issues for any kind of Gerrit commands.

Create a couple of thread dumps during the time a command hangs.
 

--
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en

---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Anu

unread,
Jul 8, 2015, 10:12:29 AM7/8/15
to repo-d...@googlegroups.com, anugr...@gmail.com
Below is the error I see in "error_log" file....

[2015-07-08 19:24:55,854] ERROR com.google.gerrit.httpd.restapi.RestApiServlet : Error in GET /changes/7907/detail?O=404
org.eclipse.jetty.io.EofException
        at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:914)
        at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:443)
        at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:100)
        at org.eclipse.jetty.server.AbstractHttpConnection$Output.flush(AbstractHttpConnection.java:1078)
        at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:161)
        at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:107)
        at org.eclipse.jgit.util.TemporaryBuffer.writeTo(TemporaryBuffer.java:248)
        at com.google.gerrit.httpd.restapi.RestApiServlet$6.writeTo(RestApiServlet.java:981)
        at com.google.gerrit.httpd.restapi.RestApiServlet.replyBinaryResult(RestApiServlet.java:722)
        at com.google.gerrit.httpd.restapi.RestApiServlet.replyJson(RestApiServlet.java:626)
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:330)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
        at com.google.gerrit.pgm.http.jetty.GetUserFilter.doFilter(GetUserFilter.java:76)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:70)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:113)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequireSslFilter.doFilter(RequireSslFilter.java:68)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:64)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:57)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129)
        at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:67)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:365)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:744)
Caused by: javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1619)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1587)
        at sun.security.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1517)
        at org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:409)
        at org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48)
        at org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.flush(SslConnection.java:678)
        at org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.flush(SslConnection.java:685)
        at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:838)


javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1619)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1587)
        at sun.security.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1517)
        at org.eclipse.jetty.io.nio.SslConnection.process(SslConnection.java:409)
        at org.eclipse.jetty.io.nio.SslConnection.access$900(SslConnection.java:48)
        at org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.flush(SslConnection.java:726)
        at org.eclipse.jetty.io.nio.SslConnection$SslEndPoint.shutdownOutput(SslConnection.java:629)
        at org.eclipse.jetty.io.nio.SslConnection.onIdleExpired(SslConnection.java:260)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.onIdleExpired(SelectChannelEndPoint.java:318)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:303)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:744)


Thanks, Anu

Anu

unread,
Jul 8, 2015, 10:13:30 AM7/8/15
to repo-d...@googlegroups.com
[2015-07-08 19:19:35,171] WARN  com.google.gerrit.server.git.AsyncReceiveCommits : Error in ReceiveCommits
java.util.concurrent.ExecutionException: (timeout 2220ms, cancelled)
        at com.google.gerrit.server.git.MultiProgressMonitor.waitFor(MultiProgressMonitor.java:256)
        at com.google.gerrit.server.git.AsyncReceiveCommits.onPreReceive(AsyncReceiveCommits.java:163)
        at org.eclipse.jgit.transport.ReceivePack.service(ReceivePack.java:203)
        at org.eclipse.jgit.transport.ReceivePack.receive(ReceivePack.java:160)
        at com.google.gerrit.sshd.commands.Receive.runImpl(Receive.java:101)
        at com.google.gerrit.sshd.AbstractGitCommand.service(AbstractGitCommand.java:101)
        at com.google.gerrit.sshd.AbstractGitCommand.access$000(AbstractGitCommand.java:32)
        at com.google.gerrit.sshd.AbstractGitCommand$1.run(AbstractGitCommand.java:70)
        at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:442)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:364)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.util.concurrent.CancellationException
        at java.util.concurrent.FutureTask.report(FutureTask.java:121)
        at java.util.concurrent.FutureTask.get(FutureTask.java:202)
        at com.google.gerrit.server.git.WorkQueue$Task.get(WorkQueue.java:342)
        at com.google.gerrit.server.git.MultiProgressMonitor.waitFor(MultiProgressMonitor.java:252)
        ... 16 more

Saša Živkov

unread,
Jul 8, 2015, 10:48:50 AM7/8/15
to Anu, repo-d...@googlegroups.com
The stack traces in the error_log are not a thread dump.
What I meant was to use the "jstack <gerrit-pid>" to create thread dump of the Gerrit process
during the time a request is hanging.
Reply all
Reply to author
Forward
0 new messages