[
https://issues.apache.org/jira/browse/CASSGO-133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bohdan Siryk updated CASSGO-133:
--------------------------------
Fix Version/s: 2.x
> Cap RequestErrUnprepared retry recursion on query and batch paths
> -----------------------------------------------------------------
>
> Key: CASSGO-133
> URL: https://issues.apache.org/jira/browse/CASSGO-133
> Project: Apache Cassandra Go driver
> Issue Type: Improvement
> Reporter: Bohdan Siryk
> Priority: Normal
> Fix For: 2.x
>
>
> From PR description:
> >
> {{Conn.executeQuery}} and {{Conn.executeBatch}} both respond to a
> {{*RequestErrUnprepared}} by evicting the prepared-statement cache entry and
> recursing on themselves with no upper bound.
> When the server persistently re-reports the same statement as unprepared
> after re-prepare — for example a coordinator thrashing its prepared-statement
> cache under high statement cardinality, or a misbehaving proxy/fork — the
> recursion never terminates. The goroutine stack eventually exceeds
> {{runtime.SetMaxStack}} (1 GiB by default), at which point Go's runtime
> crashes the *entire process* with an unrecoverable stack-overflow throw. No
> {{recover()}} can intercept it.
> >
> The driver should not fall in an endless recursion, better is to return an
> error and allow RetryPolicy to decide whether it is worth retry on the same
> host or another one.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]