On 21 Aug 2020, at 09:40, m33...@gmail.com <m33...@gmail.com> wrote:
Hi, we are quite often hitting thread starvation on what seems to be the Jetty thread pool. This ends up making Gerrit unusable and requires a restart.
[2020-08-21 08:06:49,105] [HTTP-163264] WARN org.eclipse.jetty.util.thread.QueuedThreadPool : QueuedThreadPool[HTTP]@73852720{STARTED,5<=25<=25,i=0,q=256}[ReservedThreadExecutor@2f63d51f{s=2/2,p=0}] rejected org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@5e5d1383
We have seen some very large changes affecting many files (deleting ~5605 files) around the time of the thread starvation which might be the cause. I have read that diffing a large file can cause this issue.
We are running Gerrit 2.16.13 using Docker on a Centos VM with 20 CPUs with 60GB RAM. I have attached our configuration.1. Are there any improvements or issues with our Gerrit configuration file?2. What can we do to alleviate the thread pool from being exhausted?
--
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/repo-discuss/3f5ba3df-184f-411d-9ba0-795c3480c36cn%40googlegroups.com.
On 21 Aug 2020, at 09:40, m33...@gmail.com <m33...@gmail.com> wrote:
Hi, we are quite often hitting thread starvation on what seems to be the Jetty thread pool. This ends up making Gerrit unusable and requires a restart.
[2020-08-21 08:06:49,105] [HTTP-163264] WARN org.eclipse.jetty.util.thread.QueuedThreadPool : QueuedThreadPool[HTTP]@73852720{STARTED,5<=25<=25,i=0,q=256}[ReservedThreadExecutor@2f63d51f{s=2/2,p=0}] rejected org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@5e5d1383That is typically the consequence of something that is blocking all threads at the same time.In my personal experience, it is typically an external factor (LDAP, DBMS, other?)
We have seen some very large changes affecting many files (deleting ~5605 files) around the time of the thread starvation which might be the cause. I have read that diffing a large file can cause this issue.That would have blocked one thread, but not all of them.
We are running Gerrit 2.16.13 using Docker on a Centos VM with 20 CPUs with 60GB RAM. I have attached our configuration.1. Are there any improvements or issues with our Gerrit configuration file?2. What can we do to alleviate the thread pool from being exhausted?You should next time get a JVM thread dump to understand where all the threads are blocked.Once you’ve identified the root cause, you can fix or mitigate it.Making changes without knowing what is the problem is like shooting in the dark: it may work, or you may hurt someone :-(
P.S. A general comment on your config: there are way to many “redacted” and it should be difficult to understand how you configured things. Can you just replace the name of your company with “<redacted>.com” and leave everything else?
On 21 Aug 2020, at 09:40, m33...@gmail.com <m33...@gmail.com> wrote:
Hi, we are quite often hitting thread starvation on what seems to be the Jetty thread pool. This ends up making Gerrit unusable and requires a restart.
[2020-08-21 08:06:49,105] [HTTP-163264] WARN org.eclipse.jetty.util.thread.QueuedThreadPool : QueuedThreadPool[HTTP]@73852720{STARTED,5<=25<=25,i=0,q=256}[ReservedThreadExecutor@2f63d51f{s=2/2,p=0}] rejected org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@5e5d1383That is typically the consequence of something that is blocking all threads at the same time.In my personal experience, it is typically an external factor (LDAP, DBMS, other?)
We have seen some very large changes affecting many files (deleting ~5605 files) around the time of the thread starvation which might be the cause. I have read that diffing a large file can cause this issue.That would have blocked one thread, but not all of them.
We are running Gerrit 2.16.13 using Docker on a Centos VM with 20 CPUs with 60GB RAM. I have attached our configuration.1. Are there any improvements or issues with our Gerrit configuration file?2. What can we do to alleviate the thread pool from being exhausted?You should next time get a JVM thread dump to understand where all the threads are blocked.Once you’ve identified the root cause, you can fix or mitigate it.
[cache]
directory = cache
[user]
<REDACTED>
[sendemail]
enable = false
smtpServer = localhost
[noteDb "changes"]
autoMigrate = false
trial = false
write = true
read = true
sequence = true
primaryStorage = NOTE_DB
disableReviewDb = true
[database]
type = h2
database = /var/gerrit/db/ReviewDB
[theme]
topMenuColor = B1CAF2
[saml]
keystorePath = /var/gerrit/etc/samlKeystore.jks
metadataPath = file:///var/gerrit/FederationMetadata.xml
useNameQualifier = false