| Summary: | [GSS](6.4.z) Too many threads for cleaning up infinispan transactions | |||
|---|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Tom Ross <tom.ross> | |
| Component: | Infinispan | Assignee: | Petr Jurak <pjurak> | |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | ||
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.3.0 | CC: | bmaxwell, jbilek, pjurak, pruivo, rstancel, sfikes, sjacobs, ttarrant | |
| Target Milestone: | CR1 | |||
| Target Release: | EAP 6.4.13 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1378877 (view as bug list) | Environment: | ||
| Last Closed: | 2017-02-03 16:44:19 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Bug Depends On: | ||||
| Bug Blocks: | 1378877, 1386335, 1389108 | |||
Radoslav Husar <rhusar> updated the status of jira JBEAP-6234 to Resolved Verified with EAP 6.4.13.CP.CR2 Released with EAP 6.4.13 on Feb 02 2017. |
When using multiple transactional caches, we are seeing that each cache has a dedicated cleanup thread. While this is not an issue for small number of caches, when the number of caches is high as in our case (~100), we see around a 100 threads dedicated for cleanup like the following. "TxCleanupService, {default}_{XXX},user-mac-54275" daemon prio=5 tid=0x00007fa0f50d3800 nid=0x10f03 waiting on condition [0x00000001a5a5d000] "TxCleanupService,{default} _ {XXX},user-mac-54275" daemon prio=5 tid=0x00007fa0f507e800 nid=0x10e03 waiting on condition [0x00000001a595a000] "TxCleanupService,{default}_{XXX} ,user-mac-54275" daemon prio=5 tid=0x00007fa0f507e000 nid=0x10d03 waiting on condition [0x00000001a5857000] "TxCleanupService, {default} _ {XXX} ,user-mac-54275" daemon prio=5 tid=0x00007fa0f5817800 nid=0x10c03 waiting on condition [0x00000001a5754000] ... Looking at the source code for https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/transaction/TransactionTable.java#L126 if (!totalOrder) { // Periodically run a task to cleanup the transaction table from completed transactions. ThreadFactory tf = new ThreadFactory() { @Override public Thread newThread(Runnable r) { String address = rpcManager != null ? rpcManager.getTransport().getAddress().toString() : "local"; Thread th = new Thread(r, "TxCleanupService," + cacheName + "," + address); th.setDaemon(true); return th; } }; executorService = Executors.newSingleThreadScheduledExecutor(tf); This code can benefit from drawing the threads from a dedicated pool which is bounded.