[
https://issues.apache.org/jira/browse/CASSANDRA-18264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Miklosovic updated CASSANDRA-18264:
------------------------------------------
Status: Ready to Commit (was: Review In Progress)
> CustomClassLoader does not load jars rendering triggers from JARs broken
> ------------------------------------------------------------------------
>
> Key: CASSANDRA-18264
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18264
> Project: Cassandra
> Issue Type: Bug
> Components: Legacy/Core
> Reporter: Stefan Miklosovic
> Assignee: Stefan Miklosovic
> Priority: Normal
> Fix For: 4.1.x, 4.x
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> A user had to downgrade to 4.0.7 from 4.1.0 because they hit a problem with
> CustomClassLoader for triggers.
> User says that in Apache Cassandra 4.1.0 the trigger mechanism does not work,
> not their trigger, but the possibility of loading any trigger in Cassandra.
> In the Cassandra 4.1.0 version of CustomClassLoader
> (https://github.com/apache/cassandra/blob/cassandra-4.1/src/java/org/apache/cassandra/triggers/CustomClassLoader.java)
> the code is changed in such a way that when copying the JAR Cassandra uses
> java.nio.file.Files, while earlier versions (cassandra 4.0.X or 3.X) used
> Guava com.google.common.io.Files to copy the JAR file.
> The difference between one and the other is that Guava by default overwrites
> the file if it already exists and user has permissions to do so, and in Java
> by default it does not overwrite.
> Copying is done here (1) from inputJar to out. However, the problem is that
> we are getting temporary file from here (2) and the implementation loops
> unless it succeeds to create an empty file. (3) - But that fails to copy the
> file to out because copying does not work when the target file already exists.
> (1)
> https://github.com/apache/cassandra/blob/cassandra-4.1/src/java/org/apache/cassandra/triggers/CustomClassLoader.java#L86
> (2)
> https://github.com/apache/cassandra/blob/cassandra-4.1/src/java/org/apache/cassandra/triggers/CustomClassLoader.java#L81
> (3)
> https://github.com/apache/cassandra/blob/cassandra-4.1/src/java/org/apache/cassandra/io/util/FileUtils.java#L152
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]