René's URL Explorer Experiment


Title: [r2dbc-mysql] Occasional error when acquiring a new connection from the connection pool · Issue #421 · jasync-sql/jasync-sql · GitHub

Open Graph Title: [r2dbc-mysql] Occasional error when acquiring a new connection from the connection pool · Issue #421 · jasync-sql/jasync-sql

X Title: [r2dbc-mysql] Occasional error when acquiring a new connection from the connection pool · Issue #421 · jasync-sql/jasync-sql

Description: Bug Report I am using r2dbc-pool with jasync-mysql and spring. The application is a web application. I have been experienced error when getting database connection occasionally. I suspect that it is due to the reactor subscription being ...

Open Graph Description: Bug Report I am using r2dbc-pool with jasync-mysql and spring. The application is a web application. I have been experienced error when getting database connection occasionally. I suspect that it i...

X Description: Bug Report I am using r2dbc-pool with jasync-mysql and spring. The application is a web application. I have been experienced error when getting database connection occasionally. I suspect that it i...

Opengraph URL: https://github.com/jasync-sql/jasync-sql/issues/421

X: @github

direct link

Domain: patch-diff.githubusercontent.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[r2dbc-mysql] Occasional error when acquiring a new connection from the connection pool","articleBody":"## Bug Report\r\nI am using r2dbc-pool with jasync-mysql and spring. The application is a web application.\r\nI have been experienced error when getting database connection occasionally. I suspect that it is due to the reactor subscription being cancelled. (Eg. web connection is closed)\r\n\r\n#### Versions\r\njasync-mysql-2.2.4\r\njasync-pool-2.2.4\r\nr2dbc-pool 1.0.1\r\nr2dbc-spi 1.0.0\r\nreactor-pool-1.0.1\r\nspring-r2dbc 6.0.11\r\njava 17.0.1\r\n\r\n#### Current Behavior\r\nWhen creating a new connection, it will set the transaction isolation level\r\nWhen borrowing a connection, it will test the connection by running a query `select 1`\r\nBut occasionly it strangely test the connection twice and run into `ConnectionStillRunningQueryException` error\r\n\r\nAnd You can see in the log, the connection\r\n1. Set isolation level\r\n2. Test connection\r\n3. Test connection again (without waiting for the first test to finish)\r\n4. ConnectionStillRunningQueryException error\r\n\r\nps. I have retry logic if it fails to acquire connection. You may ignore that in the log\r\n\r\nFrom the stacktrace, I notice a line\r\n```at io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) ~[r2dbc-pool-1.0.1.RELEASE.jar!/:1.0.1.RELEASE]```\r\nwhich may indicate the second test is triggered by a cancel subscription.\r\nI suspect that, when the reactor subscription is cancelled, it will test the connection before returning it to the pool. But as there's running query there, it causes a concurrent running issue.\r\n\r\nThe init code of the ConnectionFactory\r\n```\r\nConnectionFactoryOptions.Builder builder = ConnectionFactoryOptions.builder()\r\n\t\t\t\t.option(DRIVER, \"pool\")\r\n\t\t\t\t.option(PROTOCOL, \"mysql\")\r\n\t\t\t\t.option(HOST, host)\r\n\t\t\t\t.option(PORT, port)\r\n\t\t\t\t.option(USER, username)\r\n\t\t\t\t.option(PASSWORD, password)\r\n\t\t\t\t.option(DATABASE, schema)\r\n\t\t\t\t.option(Option.valueOf(\"applicationName\"), this.getClass().getSimpleName())\r\n\t\t\t\t.option(Option.valueOf(\"initialSize\"), initialSize)\r\n\t\t\t\t.option(Option.valueOf(\"maxSize\"), maxSize)\r\n\t\t\t\t.option(Option.valueOf(\"backgroundEvictionInterval\"), Duration.ofMinutes(1))\r\n\t\t\t\t.option(Option.valueOf(\"minIdle\"), initialSize)\r\n\t\t\t\t.option(Option.valueOf(\"maxIdleTime\"), maxIdleTime)\r\n\t\t\t\t.option(Option.valueOf(\"maxAcquireTime\"), Duration.ofMillis(2000L))\r\n\t\t\t\t.option(Option.valueOf(\"maxLifeTime\"), Duration.ofHours(4L))\r\n\t\t\t\t.option(Option.\u003cFunction\u003c? super Connection, ? extends Publisher\u003cVoid\u003e\u003e\u003evalueOf(\"postAllocate\"), this::initIsolationLevel)\r\n\t\t\t\t.option(Option.valueOf(\"validationDepth\"), ValidationDepth.REMOTE)\r\n\t\t\t\t.option(Option.valueOf(\"validationQuery\"), \"select 1\");\r\n```\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eDetailed Log and Stack Trace\u003c/summary\u003e\r\n\r\n```\r\n2023-11-01 12:22:52\t\r\n11-01 04:22:52 DEBUG - \u003cmysql-connection-63\u003e Connected to database (?:)\r\n2023-11-01 12:22:52\t\r\n11-01 04:22:52 TRACE - \u003cmysql-connection-63\u003e sendQuery() - SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - \u003cmysql-connection-63\u003e sendQuery() - select 1 (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - \u003cmysql-connection-63\u003e sendQuery() - select 1 (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - close connection \u003cmysql-connection-63\u003e (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - send quit message \u003cmysql-connection-63\u003e (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - close channel \u003cmysql-connection-63\u003e (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 DEBUG - \u003cmysql-connection-63\u003e - client got disconnected with no running query (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - close connection \u003cmysql-connection-63\u003e (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 TRACE - channel was closed \u003cmysql-connection-63\u003e (?:)\r\n2023-11-01 12:22:53\t\r\n11-01 04:22:53 ERROR - Error when getting database connection. Will retry 1 (?:)\r\norg.springframework.dao.DataAccessResourceFailureException: Failed to obtain R2DBC Connection\r\n\tat org.springframework.r2dbc.connection.ConnectionFactoryUtils.lambda$getConnection$0(ConnectionFactoryUtils.java:90) ~[spring-r2dbc-6.0.11.jar!/:6.0.11]\r\n\tSuppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: \r\nAssembly trace from producer [reactor.core.publisher.MonoError] :\r\n\r\nError has been observed at the following site(s):\r\n\t*__Mono.onErrorMap ⇢ at org.springframework.r2dbc.connection.ConnectionFactoryUtils.getConnection(ConnectionFactoryUtils.java:90)\r\n\t|_        Mono.map ⇢ at org.springframework.r2dbc.core.DefaultDatabaseClient.inConnection(DefaultDatabaseClient.java:113)\r\n\t*___Mono.usingWhen ⇢ at org.springframework.r2dbc.core.DefaultDatabaseClient.inConnection(DefaultDatabaseClient.java:116)\r\n\t|_ Mono.onErrorMap ⇢ at org.springframework.r2dbc.core.DefaultDatabaseClient.inConnection(DefaultDatabaseClient.java:128)\r\nOriginal Stack Trace:\r\n\t\tat org.springframework.r2dbc.connection.ConnectionFactoryUtils.lambda$getConnection$0(ConnectionFactoryUtils.java:90) ~[spring-r2dbc-6.0.11.jar!/:6.0.11]\r\n\t\tat reactor.core.publisher.Mono.lambda$onErrorMap$28(Mono.java:3783) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:95) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onError(FluxTimeout.java:219) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onError(MonoDiscardOnCancel.java:98) ~[r2dbc-pool-1.0.1.RELEASE.jar!/:1.0.1.RELEASE]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:278) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:231) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:128) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoCompletionStage$MonoCompletionStageSubscription.apply(MonoCompletionStage.java:126) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoCompletionStage$MonoCompletionStageSubscription.apply(MonoCompletionStage.java:71) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147) ~[?:?]\r\n\t\tat com.github.jasync.sql.db.mysql.MySQLConnection$close$lambda$2$$inlined$onCompleteAsync$1.accept(FutureUtils.kt:110) ~[jasync-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.mysql.MySQLConnection$close$lambda$2$$inlined$onCompleteAsync$1.accept(FutureUtils.kt:92) ~[jasync-mysql-2.2.4.jar!/:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]\r\n\t\tat java.base/java.lang.Thread.run(Thread.java:840) [?:?]\r\nCaused by: com.github.jasync.r2dbc.mysql.JasyncDatabaseException: Unknown exception\r\n\tat com.github.jasync.r2dbc.mysql.JasyncStatement.mapException(JasyncStatement.kt:261) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\tSuppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: \r\nAssembly trace from producer [reactor.core.publisher.MonoError] :\r\n\r\nError has been observed at the following site(s):\r\n\t*_____Flux.onErrorMap ⇢ at reactor.kotlin.core.publisher.FluxExtensionsKt.onErrorMap(FluxExtensions.kt:172)\r\n\t|_       Flux.flatMap ⇢ at io.r2dbc.pool.Validation.validate(Validation.java:33)\r\n\t|_          Flux.then ⇢ at io.r2dbc.pool.Validation.validate(Validation.java:33)\r\n\t*_____Mono.thenReturn ⇢ at io.r2dbc.pool.ConnectionPool.getValidConnection(ConnectionPool.java:176)\r\n\t*___________Mono.then ⇢ at io.r2dbc.pool.ConnectionPool.lambda$null$5(ConnectionPool.java:137)\r\n\t|_ Mono.onErrorResume ⇢ at io.r2dbc.pool.ConnectionPool.lambda$null$5(ConnectionPool.java:140)\r\n\t*___________Mono.then ⇢ at io.r2dbc.pool.ConnectionPool.lambda$null$3(ConnectionPool.java:140)\r\n\t*________Mono.flatMap ⇢ at io.r2dbc.pool.ConnectionPool.lambda$new$12(ConnectionPool.java:115)\r\n\t|_       Mono.timeout ⇢ at io.r2dbc.pool.ConnectionPool.lambda$new$12(ConnectionPool.java:157)\r\n\t|_  Mono.contextWrite ⇢ at io.r2dbc.pool.ConnectionPool.lambda$new$12(ConnectionPool.java:157)\r\n\t|_    Mono.onErrorMap ⇢ at io.r2dbc.pool.ConnectionPool.lambda$new$12(ConnectionPool.java:168)\r\n\t*__________Mono.defer ⇢ at io.r2dbc.pool.ConnectionPool.\u003cinit\u003e(ConnectionPool.java:112)\r\n\t|_         Mono.retry ⇢ at io.r2dbc.pool.ConnectionPool.\u003cinit\u003e(ConnectionPool.java:172)\r\n\t|_       Mono.flatMap ⇢ at org.springframework.r2dbc.connection.ConnectionFactoryUtils.lambda$doGetConnection$4(ConnectionFactoryUtils.java:118)\r\n\t*________Mono.flatMap ⇢ at org.springframework.r2dbc.connection.ConnectionFactoryUtils.doGetConnection(ConnectionFactoryUtils.java:104)\r\n\t|_ Mono.onErrorResume ⇢ at org.springframework.r2dbc.connection.ConnectionFactoryUtils.doGetConnection(ConnectionFactoryUtils.java:139)\r\nOriginal Stack Trace:\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement.mapException(JasyncStatement.kt:261) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement.access$mapException(JasyncStatement.kt:30) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement$execute$4.invoke(JasyncStatement.kt:122) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement$execute$4.invoke(JasyncStatement.kt:120) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat reactor.kotlin.core.publisher.FluxExtensionsKt.onErrorMap$lambda-1(FluxExtensions.kt:172) ~[reactor-kotlin-extensions-1.2.2.jar!/:1.2.2]\r\n\t\tat reactor.core.publisher.Flux.lambda$onErrorMap$28(Flux.java:7236) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Flux.lambda$onErrorResume$29(Flux.java:7289) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onError(FluxMapFuseable.java:142) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:161) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4480) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) ~[r2dbc-pool-1.0.1.RELEASE.jar!/:1.0.1.RELEASE]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:372) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:372) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:604) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:298) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:430) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.request(SerializedSubscriber.java:151) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onSubscribe(FluxContextWrite.java:101) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.onSubscribe(SerializedSubscriber.java:65) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onSubscribe(FluxTimeout.java:154) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:722) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:101) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]\r\n\t\tat java.base/java.lang.Thread.run(Thread.java:840) [?:?]\r\nCaused by: com.github.jasync.sql.db.exceptions.ConnectionStillRunningQueryException: \u003c\u003cmysql-connection-63\u003e\u003e - There is a query still being run here - race -\u003e false\r\n\tat com.github.jasync.sql.db.mysql.MySQLConnection.validateIsReadyForQuery(MySQLConnection.kt:502) ~[jasync-mysql-2.2.4.jar!/:?]\r\n\tSuppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: \r\nAssembly trace from producer [reactor.core.publisher.MonoFlatMapMany] :\r\n\treactor.core.publisher.Mono.flatMapMany(Mono.java:3117)\r\n\tcom.github.jasync.r2dbc.mysql.JasyncStatement.execute(JasyncStatement.kt:95)\r\nError has been observed at the following site(s):\r\n\t*__Mono.flatMapMany ⇢ at com.github.jasync.r2dbc.mysql.JasyncStatement.execute(JasyncStatement.kt:95)\r\n\t|_         Flux.map ⇢ at com.github.jasync.r2dbc.mysql.JasyncStatement.execute(JasyncStatement.kt:111)\r\nOriginal Stack Trace:\r\n\t\tat com.github.jasync.sql.db.mysql.MySQLConnection.validateIsReadyForQuery(MySQLConnection.kt:502) ~[jasync-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.mysql.MySQLConnection.sendQueryDirect(MySQLConnection.kt:407) ~[jasync-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.ConcreteConnectionBase$sendQuery$1.invoke(ConcreteConnectionBase.kt:59) ~[jasync-common-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.ConcreteConnectionBase$sendQuery$1.invoke(ConcreteConnectionBase.kt:58) ~[jasync-common-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.interceptor.ConnectionInterceptorHelperKt.wrapQueryWithInterceptors(ConnectionInterceptorHelper.kt:13) ~[jasync-common-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.sql.db.ConcreteConnectionBase.sendQuery(ConcreteConnectionBase.kt:58) ~[jasync-common-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement$execute$2.invoke(JasyncStatement.kt:108) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement$execute$2.invoke(JasyncStatement.kt:95) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat com.github.jasync.r2dbc.mysql.JasyncStatement.execute$lambda$3(JasyncStatement.kt:95) ~[jasync-r2dbc-mysql-2.2.4.jar!/:?]\r\n\t\tat reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:152) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4480) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) ~[r2dbc-pool-1.0.1.RELEASE.jar!/:1.0.1.RELEASE]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:372) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:372) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:604) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:298) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:430) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2305) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.request(SerializedSubscriber.java:151) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onSubscribe(FluxContextWrite.java:101) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.onSubscribe(SerializedSubscriber.java:65) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onSubscribe(FluxTimeout.java:154) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:722) ~[reactor-pool-1.0.1.jar!/:1.0.1]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:101) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.5.8.jar!/:3.5.8]\r\n\t\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]\r\n\t\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]\r\n\t\tat java.base/java.lang.Thread.run(Thread.java:840) [?:?]\r\n```\r\n\r\n\u003c/details\u003e\r\n ","author":{"url":"https://github.com/knuclechan","@type":"Person","name":"knuclechan"},"datePublished":"2023-11-08T07:13:06.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/421/jasync-sql/issues/421"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:f7e892f5-93e6-bf37-49fc-7717f9f316d1
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idC44E:328BE0:49D13:5B09E:697DE2BC
html-safe-nonce75fddf82c4bff353cb4b6ec04c0c1d9429d73008c76cf41cc3cf51532241d422
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNDRFOjMyOEJFMDo0OUQxMzo1QjA5RTo2OTdERTJCQyIsInZpc2l0b3JfaWQiOiI1MDIyMDU1NzQ4NTk5NjY5NDM2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac7e04e91eaf9e3144d7cfcef5627958c39b9dd0fdf5bd2f9d9f4af8aef9f17d4a
hovercard-subject-tagissue:1982906894
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/jasync-sql/jasync-sql/421/issue_layout
twitter:imagehttps://opengraph.githubassets.com/9f3385b324bbc5e91e7116b0f794ab66ebf2b15e4c77a85d36679a06e190c951/jasync-sql/jasync-sql/issues/421
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/9f3385b324bbc5e91e7116b0f794ab66ebf2b15e4c77a85d36679a06e190c951/jasync-sql/jasync-sql/issues/421
og:image:altBug Report I am using r2dbc-pool with jasync-mysql and spring. The application is a web application. I have been experienced error when getting database connection occasionally. I suspect that it i...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameknuclechan
hostnamegithub.com
expected-hostnamegithub.com
None60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6
turbo-cache-controlno-preview
go-importgithub.com/jasync-sql/jasync-sql git https://github.com/jasync-sql/jasync-sql.git
octolytics-dimension-user_id42655245
octolytics-dimension-user_loginjasync-sql
octolytics-dimension-repository_id145898133
octolytics-dimension-repository_nwojasync-sql/jasync-sql
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id145898133
octolytics-dimension-repository_network_root_nwojasync-sql/jasync-sql
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7c85641c598ad130c74f7bcc27f58575cac69551
ui-targetcanary-2
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjasync-sql%2Fjasync-sql%2Fissues%2F421
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjasync-sql%2Fjasync-sql%2Fissues%2F421
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=jasync-sql%2Fjasync-sql
Reloadhttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421
Reloadhttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421
Reloadhttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421
jasync-sql https://patch-diff.githubusercontent.com/jasync-sql
jasync-sqlhttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql
Please reload this pagehttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fjasync-sql%2Fjasync-sql
Fork 139 https://patch-diff.githubusercontent.com/login?return_to=%2Fjasync-sql%2Fjasync-sql
Star 1.7k https://patch-diff.githubusercontent.com/login?return_to=%2Fjasync-sql%2Fjasync-sql
Code https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql
Issues 15 https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues
Pull requests 2 https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/pulls
Discussions https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/discussions
Actions https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/actions
Wiki https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/wiki
Security 0 https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/security
Insights https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/pulse
Code https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql
Issues https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues
Pull requests https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/pulls
Discussions https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/discussions
Actions https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/actions
Wiki https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/wiki
Security https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/security
Insights https://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/pulse
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/jasync-sql/jasync-sql/issues/421
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/jasync-sql/jasync-sql/issues/421
[r2dbc-mysql] Occasional error when acquiring a new connection from the connection poolhttps://patch-diff.githubusercontent.com/jasync-sql/jasync-sql/issues/421#top
https://github.com/knuclechan
https://github.com/knuclechan
knuclechanhttps://github.com/knuclechan
on Nov 8, 2023https://github.com/jasync-sql/jasync-sql/issues/421#issue-1982906894
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.