You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "zenghu1chen (via GitHub)" <gi...@apache.org> on 2023/07/14 05:42:21 UTC

[GitHub] [commons-pool] zenghu1chen opened a new pull request, #230: Support for loom

zenghu1chen opened a new pull request, #230:
URL: https://github.com/apache/commons-pool/pull/230

   My project uses jedis component with loom, but there are cases of pinning and even deadlocks when redis times out. By replacing synchronized with ReentrantLock in the code, the above situations will be avoided. Below is the stacktrace when pinning occurs.
   
   ```
   Thread[#253,ForkJoinPool-1-worker-2,5,CarrierThreads]
       java.base/java.lang.VirtualThread$VThreadContinuation.onPinned(VirtualThread.java:180)
       java.base/jdk.internal.vm.Continuation.onPinned0(Continuation.java:398)
       java.base/jdk.internal.vm.Continuation.yield0(Continuation.java:390)
       java.base/jdk.internal.vm.Continuation.yield(Continuation.java:357)
       java.base/java.lang.VirtualThread.yieldContinuation(VirtualThread.java:370)
       java.base/java.lang.VirtualThread.parkNanos(VirtualThread.java:532)
       java.base/java.lang.System$2.parkVirtualThread(System.java:2615)
       java.base/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:67)
       java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408)
       java.base/sun.nio.ch.Poller.poll2(Poller.java:137)
       java.base/sun.nio.ch.Poller.poll(Poller.java:102)
       java.base/sun.nio.ch.Poller.poll(Poller.java:87)
       java.base/sun.nio.ch.NioSocketImpl.park(NioSocketImpl.java:175)
       java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:275)
       java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:299)
       java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:340)
       java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:789)
       java.base/java.net.Socket$SocketInputStream.read(Socket.java:1025)
       java.base/java.io.InputStream.read(InputStream.java:217)
       redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:195)
       redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
       redis.clients.jedis.Protocol.process(Protocol.java:141)
       redis.clients.jedis.Protocol.read(Protocol.java:205)
       redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:306)
       redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:200)
       redis.clients.jedis.BinaryJedis.quit(BinaryJedis.java:163)
       credis.java.client.pool.impl.CRedisJedisFactory.destroyObject(CRedisJedisFactory.java:57)
       org.apache.commons.pool2.impl.GenericObjectPool.destroy(GenericObjectPool.java:886)
       org.apache.commons.pool2.impl.GenericObjectPool.invalidateObject(GenericObjectPool.java:634) <== monitors:1
       redis.clients.util.Pool.returnBrokenResourceObject(Pool.java:101)
       redis.clients.util.Pool.returnBrokenResource(Pool.java:80)
       redis.clients.jedis.Jedis.close(Jedis.java:3359)
       ...
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] zenghu1chen commented on pull request #230: Support for loom

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1643446429

   > @zenghu1chen I think the first step would be to test your use case with the current version of Pool, 2.11.1, not 2.4.2. Also consider testing with git branch POOL_2_X. 2.4.2 is very old!
   
   @garydgregory 
   I tried to test Jedis to reproduce deadlock situations, but I failed because I was not clear about what kind of Redis failure would lead to deadlock. 
   However, since I observed the occurrence of "pinning" in the GenericObjectPool class, I started testing this class. Currently, there is an imperfect test case that can reproduce the deadlock situation. The usage is a bit strange and relies on probability to generate deadlock, but it should also demonstrate the possibility of deadlock. 
   You can find the test case at the following link: 
   https://github.com/zenghu1chen/loom-compatibility-test/blob/main/src/main/java/org/example/commonspool2/GenericObjectPoolTest.java


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] psteitz commented on pull request #230: Support for loom

Posted by "psteitz (via GitHub)" <gi...@apache.org>.
psteitz commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1639007029

   To help with tracing, could you provide the versions of both Jedis and Commons Pool that you are using?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on a diff in pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1263777535


##########
src/main/java/org/apache/commons/pool2/PooledObject.java:
##########
@@ -33,6 +34,8 @@
  */
 public interface PooledObject<T> extends Comparable<PooledObject<T>> {
 
+    ReentrantLock lock = new ReentrantLock();

Review Comment:
   A global variable? That looks like an anti-pattern. -1 unless you can explain what I am misunderstanding.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "wyhasany (via GitHub)" <gi...@apache.org>.
wyhasany commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1533668593


##########
src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java:
##########
@@ -1617,7 +1624,8 @@ public final void setTestWhileIdle(final boolean testWhileIdle) {
      * @param delay duration before start and between eviction runs.
      */
     final void startEvictor(final Duration delay) {
-        synchronized (evictionLock) {
+        try {
+            evictionLock.lock();

Review Comment:
   thank you 👍🏼 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] zenghu1chen commented on pull request #230: Support for loom

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1637476815

   > @zenghu1chen Thank you for the PR. Please see the build failure and update the PR. There are no unit tests here, I'd really like to see a test that can demonstrate a dead lock in order to prove that the changes actually fix an issue rather than relying on some external empirical evidence. The test need not use Redis for example but be built in whatever way effectively causes a test to fail or hang. CC: @psteitz
   
   I'm trying to write test cases to reproduce the deadlock situation. Please wait for a while, thank you.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1639911504

   @zenghu1chen 
   I think the first step would be to test your use case with the current version of Pool, 2.11.1, not 2.4.2. Also consider testing with git branch POOL_2_X. 2.4.2 is very old!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] psteitz commented on pull request #230: Support for loom

Posted by "psteitz (via GitHub)" <gi...@apache.org>.
psteitz commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1646992200

   I looked at the test case.  I would expect to see the test threads getting a lot of IllegalStateExceptions due to what amounts to a misuse of the API.  We should probably clarify that invalidating an object after you have returned it to the pool (or doing anything else with it) violates the pool contract.  The borrow - invalidate sequence in the test could be intermediated by a borrow by another thread.  That will cause ISE when the other thread returns it if that happens after the invalidate's destroy completes.  The invalidates will throw ISE if another thread has destroyed the instance (which the test setup allows).  All of this is to say, you can't do what the test is doing.  Does the Jedis code do this?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on a diff in pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1263777535


##########
src/main/java/org/apache/commons/pool2/PooledObject.java:
##########
@@ -33,6 +34,8 @@
  */
 public interface PooledObject<T> extends Comparable<PooledObject<T>> {
 
+    ReentrantLock lock = new ReentrantLock();

Review Comment:
   A global variable? That sounds like anti-pattern. -1 unless you can explain what I am misunderstanding.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "wyhasany (via GitHub)" <gi...@apache.org>.
wyhasany commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1532175327


##########
src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java:
##########
@@ -1617,7 +1624,8 @@ public final void setTestWhileIdle(final boolean testWhileIdle) {
      * @param delay duration before start and between eviction runs.
      */
     final void startEvictor(final Duration delay) {
-        synchronized (evictionLock) {
+        try {
+            evictionLock.lock();

Review Comment:
   the very same goes for other places in code



##########
src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java:
##########
@@ -1617,7 +1624,8 @@ public final void setTestWhileIdle(final boolean testWhileIdle) {
      * @param delay duration before start and between eviction runs.
      */
     final void startEvictor(final Duration delay) {
-        synchronized (evictionLock) {
+        try {
+            evictionLock.lock();

Review Comment:
   locking should be done before try block to avoid unlocking not locked lock when locking method throws an exception



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1635792119

   @zenghu1chen 
   Thank you for the PR.
   Please see the build failure and update the PR.
   There are no unit tests here, I'd really like to see a test that can demonstrate a dead lock in order to prove that the changes actually fix an issue rather than relying on some external empirical evidence. The test need not use Redis for example but be built in whatever way effectively causes a test to fail or hang.
   CC: @psteitz 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "psteitz (via GitHub)" <gi...@apache.org>.
psteitz commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1899325662

   Returning back to this, I think we should eliminate the use of intrinsic locks here.  The example is a little strange, but I can imagine other scenarios where pinning happens due to the intrinsic locks on PooledObjects.  The code referenced in the PR acquires a lock on a PooledObject'ss monitor.  DefaultPooledObject uses syncrhonized methods to guard state changes.  We obviously can't add an explicit lock to the PooledObject interface.  The simplest way that I can see to solve this is to add lock() and unlock() methods to the PooledObject interface, defaulted to no-ops (with warning labels) and implemented in DefaultPooledObject with a ReentrantLock.   Any better ideas?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1965954534

   @psteitz Thank you for your suggestion. I have already resubmitted the code.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on a diff in pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1265218231


##########
src/main/java/org/apache/commons/pool2/PooledObject.java:
##########
@@ -33,6 +34,8 @@
  */
 public interface PooledObject<T> extends Comparable<PooledObject<T>> {
 
+    ReentrantLock lock = new ReentrantLock();

Review Comment:
   Hello @zenghu1chen 
   A mutable global variable in an interface is an anti-pattern IMO, you've not addressed this issue in your comment.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] zenghu1chen commented on a diff in pull request #230: Support for loom

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1264935217


##########
src/main/java/org/apache/commons/pool2/PooledObject.java:
##########
@@ -33,6 +34,8 @@
  */
 public interface PooledObject<T> extends Comparable<PooledObject<T>> {
 
+    ReentrantLock lock = new ReentrantLock();

Review Comment:
   This lock is to replace synchronized(PooledObject) with ReentrantLock in the GenericObjectPool,BaseGenericObjectPool and GenericKeyedObjectPool class.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1643929013

   Hi @zenghu1chen 
   Thank for your update, I might be able to look this weekend. 
   Do note that I am still -1 on this PR due to the use of a global variable.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1533291875


##########
src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java:
##########
@@ -1617,7 +1624,8 @@ public final void setTestWhileIdle(final boolean testWhileIdle) {
      * @param delay duration before start and between eviction runs.
      */
     final void startEvictor(final Duration delay) {
-        synchronized (evictionLock) {
+        try {
+            evictionLock.lock();

Review Comment:
   done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] psteitz commented on pull request #230: Support for loom

Posted by "psteitz (via GitHub)" <gi...@apache.org>.
psteitz commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1647009684

   One more comment on this.  Your Jedis version also looks very old.  You might try updating it along with the pool version.  this part of the stack trace above looks odd to me:
   ```
       credis.java.client.pool.impl.CRedisJedisFactory.destroyObject(CRedisJedisFactory.java:57)
       org.apache.commons.pool2.impl.GenericObjectPool.destroy(GenericObjectPool.java:886)
   ```
   I downloaded the tag for the version of Jedis that you mentioned and I can't find the sourses for the class above in it (or anywhere else online).  What is odd is that the GOP destroy method is private.  Whatever the thing above is, it should not be calling that method directly, but instead using invalidateObject.  The intrinsic lock on the pooled object makes sense there and I can see the pinning, but I don't see any evidence or cause for deadlock here.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] zenghu1chen commented on pull request #230: Support for loom

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1639523105

   > To help with tracing, could you provide the versions of both Jedis and Commons Pool that you are using?
   
   Hello @psteitz
   The version of Jedis I'm using is 2.8.1.3, the version of Commons Pool is 2.4.2, and the Java version is 19.0.2. 
   My application was running stably for two months, but one day Redis had a failure, which caused timeouts or other exceptions (I'm not sure about the details of the failure). After that, all requests were hung up and did not recover for several hours, and it was not until after restarting the application instance that it resumed normal operation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] garydgregory commented on a diff in pull request #230: Support for loom

Posted by "garydgregory (via GitHub)" <gi...@apache.org>.
garydgregory commented on code in PR #230:
URL: https://github.com/apache/commons-pool/pull/230#discussion_r1263777535


##########
src/main/java/org/apache/commons/pool2/PooledObject.java:
##########
@@ -33,6 +34,8 @@
  */
 public interface PooledObject<T> extends Comparable<PooledObject<T>> {
 
+    ReentrantLock lock = new ReentrantLock();

Review Comment:
   A global variable? That sounds like an anti-pattern. -1 unless you can explain what I am misunderstanding.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] psteitz commented on pull request #230: Support for loom

Posted by "psteitz (via GitHub)" <gi...@apache.org>.
psteitz commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1644310926

   Many thanks for the test and analysis.  I will look at this in the next couple of days too.  The test looks interesting as it is doing something that is not expected - invalidating an object after returning it to the pool.  Generally, once you return an object to the pool, you should not reference it subsequently as it may have been handed out to another client.  To check and invalidate idle instances in the pool, its best to enable testWhileIdle, enable the evictor and let the pool handle it.  But there should be protection at the PooledObject level to prevent a deadklock here, so worth investigating.  Is the Jedis code doing this?  It would be good to open a JIRA for this issue and we should probably separate the deadlock issue (if it turns out there is one) from the use of intrinsic locks.  A catchall issue to replace all intrinsic locks might make sense at this point.  I agree with Gary on the smelliness of putting the lock in the PooledObject interface.  An alternative might 
 be to expose a lock() method and implement it in DefaultPooledObject using a ReentrantLock.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] codecov-commenter commented on pull request #230: Support for loom

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1635712476

   ## [Codecov](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   > :exclamation: No coverage uploaded for pull request base (`master@312fb14`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#section-missing-base-commit).
   > The diff coverage is `100.00%`.
   
   ```diff
   @@            Coverage Diff            @@
   ##             master     #230   +/-   ##
   =========================================
     Coverage          ?   83.19%           
     Complexity        ?      787           
   =========================================
     Files             ?       42           
     Lines             ?     3076           
     Branches          ?      312           
   =========================================
     Hits              ?     2559           
     Misses            ?      410           
     Partials          ?      107           
   ```
   
   
   | [Impacted Files](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [...in/java/org/apache/commons/pool2/PooledObject.java](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvcG9vbDIvUG9vbGVkT2JqZWN0LmphdmE=) | `47.05% <100.00%> (ø)` | |
   | [...ache/commons/pool2/impl/BaseGenericObjectPool.java](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvcG9vbDIvaW1wbC9CYXNlR2VuZXJpY09iamVjdFBvb2wuamF2YQ==) | `88.36% <100.00%> (ø)` | |
   | [...che/commons/pool2/impl/GenericKeyedObjectPool.java](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvcG9vbDIvaW1wbC9HZW5lcmljS2V5ZWRPYmplY3RQb29sLmphdmE=) | `85.14% <100.00%> (ø)` | |
   | [...g/apache/commons/pool2/impl/GenericObjectPool.java](https://app.codecov.io/gh/apache/commons-pool/pull/230?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvcG9vbDIvaW1wbC9HZW5lcmljT2JqZWN0UG9vbC5qYXZh) | `86.47% <100.00%> (ø)` | |
   
   :mega: We’re building smart automated test selection to slash your CI/CD build times. [Learn more](https://about.codecov.io/iterative-testing/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [commons-pool] zenghu1chen commented on pull request #230: Support for loom

Posted by "zenghu1chen (via GitHub)" <gi...@apache.org>.
zenghu1chen commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-1647466718

   @psteitz Thank you for your reply.
   This case was assembled by me randomly without being able to confirm the cause of the fault. There were indeed many unreasonable calls, but the final result was that the program hung up, and even after 60s timeout, it did not time out as expected, so I think there is a deadlock. I am currently unable to explain the principle behind it, and I have also encountered [similar deadlock issues in other components](https://issues.apache.org/jira/projects/HTTPCORE/issues/HTTPCORE-746?filter=allopenissues), and there may be some common principles behind them. However, I haven't figured out everything yet. It may take some time for me to think it through.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Support for loom [commons-pool]

Posted by "wyhasany (via GitHub)" <gi...@apache.org>.
wyhasany commented on PR #230:
URL: https://github.com/apache/commons-pool/pull/230#issuecomment-2009729140

   @psteitz  / @zenghu1chen please take a look on my code review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org