[ https://issues.apache.org/jira/browse/CALCITE-3965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17097079#comment-17097079 ]
Laurent Goujon commented on CALCITE-3965: ----------------------------------------- I agree with the unnecessary xml writing, but adding a synchronized keyword when it is not necessary (which is my analysis, and maybe I wrong here, so I would appreciate a second pair of eyes) is also a cause for lock contention. > Excessive time waiting on DiffRepository lock > --------------------------------------------- > > Key: CALCITE-3965 > URL: https://issues.apache.org/jira/browse/CALCITE-3965 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Laurent Goujon > Assignee: Laurent Goujon > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > When running the whole test suite from commandline, tests are parallelized > and gradle/junit tries to use as many cores as possible (16 on my machine). > But the tests take a very long time, approximatevely 90minutes on my machine, > and several of them failed because they took too long to complete. > Using jstack to look at the threads state while tests are running show that > most of them are waiting on {{DiffRepository}} methods > ({{DiffRepository#expand}} in most cases) while one of the thread obtained > the lock (and is usually flushing data on disk). -- This message was sent by Atlassian Jira (v8.3.4#803005)