av9ash/GitBugs huggingface dataset:
Bug: Fix BYTES_PER_MEGABIT in StreamManager
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 07/Jan/22 18:22
Resolved: 26/Jan/22 11:57

While working on CASSANDRA-15234 I noticed BYTES_PER_MEGABIT constant in the 
{code:java}
StreamManager
{code}
 class. It was introduced in CASSANDRA-16959.
The current formula converts actually bytes to mebibits. 

The change needed for 3.0, 3.11 and 4.0(I am currently changing rate parameters to be in MiB/s for trunk as part of CASSANDRA-15234):

{code:java}
public static final double BYTES_PER_MEGABIT = (1000 * 1000) / 8; // from bits
{code}


CC [~adelapena]
Bug: Set the config in In-JVM upgrade tests to the old format on trunk
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 09/Feb/22 20:57
Resolved: 13/Feb/22 18:07

In-JVM upgrade tests do no support per-version config. 
Revert the config in In-JVM upgrade tests to the old format on trunk.

CC [~dcapwell]
Bug: Performance problem for node restart with incremental range repairs
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 02/Feb/22 18:18
Resolved: 11/Feb/22 13:17

There is a performance problem when restarting cassandra for clusters doing incremental repairs with range repairs. 

We have clusters with 16 vnodes per node, and are splitting each vnode into 100 ranges, this causes a node to take over 30 minutes to process the data stored in the system.repairs table before the node can restart. Even when we reduce this to 10 ranges per vnode this still takes 2 minutes to process. The cluster has 22 keyspaces and a rf of 3, this creates around 8100 records in the system.repairs table.

 

The problem seems to occur in the org.apache.cassandra.repair.consistent.RepairState class where the add method re processes the complete list, including sorting, every time a new Range is added. This leads is an exponential growth in processing time, this is demonstrated in the attached unit test.

 

I have created a change, that collects the data read in from the system.repairs table, in the org.apache.cassandra.repair.consistent.LocalSessions class, before processing it as a group at the end, this reduces the processing time to a couple of seconds even for the 100 range version.

 

This is my first attempt at changing the cassandra code, so I am in need of a mentor to help me with the process, and validate what I have done.
Bug: Pin pytest-timeout version
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/Jan/22 07:11
Resolved: 20/Jan/22 06:46

File {{requirements.txt}} doesn't specify a version for pytest-timeout which will download the latest. Any version >1.4.2 requires pytest >5 and we're pinned at 3.6.4 atm. A fresh install will download and attempt to use the latest pytest-timeout version and fail:

{noformat}
Collecting pytest-timeout
 Using cached pytest_timeout-2.0.2-py3-none-any.whl (11 kB)
ERROR: pytest-timeout 2.0.2 has requirement pytest>=5.0.0, but you'll have pytest 3.6.4 which is incompatible.
{noformat}

it isn't currently failing on local and CI envs bc v1.4.2 is usually cached in the system and the automatic fallback to 1.4.2 prevents it.

The solution is to pin the version to 1.4.2
Bug: Failing test: UNIT org.apache.cassandra.tools.BulkLoaderTest.testBulkLoader_WithArgs1
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Jan/22 19:11
Resolved: 17/Feb/22 06:40

Intermittent failure: [https://butler.cassandra.apache.org/#/ci/upstream/workflow/Cassandra-trunk/failure/org.apache.cassandra.tools/BulkLoaderTest/testBulkLoader_WithArgs1]
h3. Error Message

Wrong thread status, active threads unaccounted for: [cluster2-connection-reaper-0]
h3. Stacktrace

junit.framework.AssertionFailedError: Wrong thread status, active threads unaccounted for: [cluster2-connection-reaper-0] at org.apache.cassandra.tools.OfflineToolUtils.assertNoUnexpectedThreadsStarted(OfflineToolUtils.java:106) at org.apache.cassandra.tools.BulkLoaderTest.testBulkLoader_WithArgs1(BulkLoaderTest.java:85) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
h3. Standard Output

DEBUG [main] 2022-01-21 19:11:46,606 InternalLoggerFactory.java:63 - Using SLF4J as the default logging framework DEBUG [main] 2022-01-21 19:11:46,634 PlatformDependent0.java:417 - -Dio.netty.noUnsafe: false DEBUG [main] 2022-01-21 19:11:46,634 PlatformDependent0.java:897 - Java version: 8 DEBUG [main] 2022-01-21 19:11:46,636 PlatformDependent0.java:130 - sun.misc.Unsafe.theUnsafe: available DEBUG [main] 2022-01-21 19:11:46,636 PlatformDependent0.java:154 - sun.misc.Unsafe.copyMemory: available
Bug: Improve guardrails messages
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 11/Mar/22 17:48
Resolved: 14/Mar/22 17:14

As it has been mentioned by [~JoshuaMcKenzie] , current guardrail messages don't mention that the warning or failure is due to the triggering of a specific guardrail. For example, some error messages are:

* {{Query for table %s with page size %s exceeds warning threshold of %s.}}
* {{Aborting query for table %s, page size %s exceeds fail threshold of %s.}}
* {{List operation requiring read before write is not allowed}}

This ticket aims to improve that behaviour so the messages contain a specific mention of guardrails, for example prepending a common prefix to the messages:

* {{Guardrail page_size violated: Query for table %s with page size %s exceeds warning threshold of %s.}}
* {{Guardrail page_size violated: Aborting query for table %s, page size %s exceeds fail threshold of %s.}}
* {{Guardrail read_before_write_list_operations violated: List operation requiring read before write is not allowed}}
Bug: Fix generate-eclipse-files
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 26/Jan/22 03:57
Resolved: 09/Feb/22 14:33

I was doing the local setup of cassandra and using the [https://github.com/eclipse/eclipse.jdt.ls] for development. When i visited the `CassandraDaemon.java` greeted with an error that the file is not in classpath, which was very weird. Upon investigation found out that the `classpath` was not closed and due to which that error is occuring.

This issue is to solve the generation of correct .{_}classpath{_} file and inclusion of correct libs.
Bug: WEBSITE - Fix broken links
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 17/Jan/22 17:53
Resolved: 28/Feb/22 22:49

Scans of the Apache Cassandra website revealed some broken links.  See link: [https://lists.apache.org/thread/3qtxndr4bxw5xo9gshrl4t2vyk4ym8o1]

 

These links are found in both the template files as well as the adoc files.
Bug: Remove unused python module 'parse'
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Mar/22 20:15
Resolved: 01/Apr/22 10:14

The following python modules listed in pylib/requirements.txt appear unused in the python code and should be removed from requirements:
 * parse

 

Note: the above is distinct from optparse and configparse which are part of the std library and are used.
Bug: Remove obsolete enum34 package from requirements
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 29/Jan/22 01:56
Resolved: 09/Feb/22 14:06

The enum34 package was used for backwards compatibility with python prior to the introduction of the Enum class in python 3.4.  This can now be safely removed as a dependency in requirements.txt as CQLSH supports Python 3.6+.  No code changes are needed.
Bug: Intermittent failure on org.apache.cassandra.io.sstable.LegacySSTableTest.testStreamLegacyCqlTables
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Mar/22 12:35
Resolved: 25/Mar/22 13:17

Intermittent failure on {{org.apache.cassandra.io.sstable.LegacySSTableTest.testStreamLegacyCqlTables}} after CASSANDRA-17048:

* https://ci-cassandra.apache.org/job/Cassandra-trunk/1040/testReport/org.apache.cassandra.io.sstable/LegacySSTableTest/testStreamLegacyCqlTables/
* https://ci-cassandra.apache.org/job/Cassandra-trunk/1039/testReport/org.apache.cassandra.io.sstable/LegacySSTableTest/testStreamLegacyCqlTables/

{code}
Failed 2 times in the last 3 runs. Flakiness: 50%, Stability: 33%
Error Message
Invalid sstable file na-1-bti-Filter.db: unknown 'format' part (bti)
Stacktrace
java.lang.IllegalArgumentException: Invalid sstable file na-1-bti-Filter.db: unknown 'format' part (bti)
	at org.apache.cassandra.io.sstable.Descriptor.invalidSSTable(Descriptor.java:318)
	at org.apache.cassandra.io.sstable.Descriptor.fromFilenameWithComponent(Descriptor.java:276)
	at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:216)
	at org.apache.cassandra.io.sstable.LegacySSTableTest.getDescriptor(LegacySSTableTest.java:148)
	at org.apache.cassandra.io.sstable.LegacySSTableTest.streamLegacyTable(LegacySSTableTest.java:423)
	at org.apache.cassandra.io.sstable.LegacySSTableTest.streamLegacyTables(LegacySSTableTest.java:414)
	at org.apache.cassandra.io.sstable.LegacySSTableTest.testStreamLegacyCqlTables(LegacySSTableTest.java:299)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
{code}
Repeated iterations on CircleCI indicates a 4% flakiness:
https://app.circleci.com/pipelines/github/adelapena/cassandra/1421/workflows/916a4466-92e8-4115-b4e2-1a951722f409/jobs/14212
Bug: Update SUPPORTED_UPGRADE_PATHS to include 3.0 and 3.x to 4.1 paths and remove obsolete tests
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 08/Feb/22 17:03
Resolved: 17/Mar/22 22:59

There are two things we might want to clean up around the upgrade test versioning:

1.) Remove or modify tests on trunk for upgrade paths that start before a supported version (ex. 2.2) or end before the current version

2.) Add 3.0  -> 4.1 and 3.x -> 4.1 to the list of supported upgrade paths
Bug: Fix race condition bug during local session repair
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 02/Feb/22 13:05
Resolved: 04/Mar/22 18:47

The in-JVM dtest {{RepairErrorsTest#testNoSuchRepairSessionAnticompaction}} seems to be flaky, as it's shown by [this repeated run|https://app.circleci.com/pipelines/github/adelapena/cassandra/1280/workflows/8a4e04cb-64cc-46a3-9e1e-c946dfafc7fa/jobs/12114] on trunk, which hits 18 failures in 500 iterations. The config for CircleCI was generated with:
{code}
.circleci/generate.sh -m \
  -e REPEATED_UTEST_TARGET=test-jvm-dtest-some \
  -e REPEATED_UTEST_COUNT=500 \
  -e REPEATED_UTEST_CLASS=org.apache.cassandra.distributed.test.RepairErrorsTest
{code}
This was discovered while testing CASSANDRA-16878, on [this CI run|https://app.circleci.com/pipelines/github/adelapena/cassandra/1268/workflows/aef1c703-c816-40f8-8e07-9055027d6403/jobs/12000].

The error consists on a failed assertion when grepping the logs in search of an error message.
Bug: Guardrails for items per UDT
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 15/Feb/22 15:36
Resolved: 28/Mar/22 16:54

Add a guardrail for the number of items in a UDT. For example:
{code}
# Guardrail to warn or fail when creating a user-defined-type with more fields in than threshold.
# Default -1 to disable.
fields_per_udt_warn_threshold: -1
fields_per_udt_fail_threshold: -1
{code}
Bug: sstableloader ignores streaming encryption settings
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 09/Feb/22 10:34
Resolved: 02/Mar/22 14:02

Reproducible in Cassandra 4.x. If one configures encryption for streaming in config yaml fed to sstableloader like this

{{server_encryption_options:}}
{{    internode_encryption: all}}
{{    keystore: sstableloader.keystore.p12}}
{{    keystore_password: changeit}}
{{    truststore: sstableloader.truststore.jks}}
{{    truststore_password: changeit}}


then sstableloader should perform an SSL handshake on the streaming connections and encrypt the payload. But this does not happen. Judging by the TCPdump of the outgoing traffic on the internode port, sstableloader sends plaintext traffic. This is the TCP payload of the first packet that sstableloader sends after establishing TCP connection:

{{ca 55 2d fa 0c 0c 0c 08 06 0a f0 01 f9 1b 58 a8 32 f2 d0}}

The first 4 bytes look like Cassandra protocol magic, not like a client hello.

I've discovered the issue while trying to migrate some data to a Cassandra 4 listening on the legacy ssl storage port (therefore, accepting only encrypted connections on that port). Streaming phase of the migration failed with a "connection closed" error, which hints that the connection was closed server-side.
Bug: Remove deprecated version specific TLS in CQLSH
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 09/Feb/22 01:40
Resolved: 06/Apr/22 12:03

According to [https://docs.python.org/3/library/ssl.html] use of explicit TLS versions v1, v1_1 and v1_2 has been deprecated in Python 3.6+ in favor of auto-negotiation of the highest protocol version that both the client and server support.
 * {{{}ssl.{}}}{{{}PROTOCOL_TLSv1{}}}
 * {{{}ssl.{}}}{{{}PROTOCOL_TLSv1_1{}}}
 * {{{}ssl.{}}}{{{}PROTOCOL_TLSv1_2{}}}

The above are deprecated since version 3.6: OpenSSL has deprecated all version specific protocols.

This affects cqlshlib/sslhandling.py and cqlshlib/test/test_sslhandling.py. And also config files test/config/

{sslhandling.config, sslhandling_invalid.config}

 

"NSA recommends that only TLS 1.2 or TLS 1.3 be used; and that SSL 2.0, SSL 3.0, TLS 1.0, and TLS 1.1 not be used"

[https://media.defense.gov/2021/Jan/05/2002560140/-1/-1/0/ELIMINATING_OBSOLETE_TLS_UOO197443-20.PDF]

The DataStax driver has addressed this in 3.25 with this update:

Update security documentation and examples to use PROTOCOL_TLS (PYTHON-1264)

[https://datastax-oss.atlassian.net/browse/PYTHON-1264]

[https://github.com/datastax/python-driver/commit/8331eca6cc96d8bd3af2e37bc64693747515c2b6]

This change will also remove the unit test class test_sslhandling.py which only tested version lookups and nothing else with ssl.
Bug: Return windows_timer_interval to Config 
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Feb/22 23:49
Resolved: 08/Mar/22 07:42

_windows_timer_interval_ was removed from Config in CASSANDRA-16956

Considering trunk is still considered to be released 4.1 and not 5, we need to deprecate this parameter with a note in NEWS.txt that it is just a placeholder, to prevent breaking upgrades.

When we bump to 5.0, we can revise this decision again.
Bug: Remove outdated code in cqlsh.py
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 26/Mar/22 18:42
Resolved: 06/Apr/22 15:51

OLD_HISTORY and OLD_CQLSH was migration code for C* 1.1 -> 1.2 and is obsolete

is_using_utf8 is not used

get_usertypes_meta references missing types (cql3handling.UserTypesMeta) & table (select * from system.schema_usertypes) and isn't used
Bug: Remove unused dependency of geomet from cqlsh.py
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/Jan/22 21:22
Resolved: 20/Jan/22 16:11

The python library *geomet* is used (optionally) by a unit test in the python driver, but was made optional in v3.24.0 of the cassandra-driver:
 * 👉 Make geomet an optional dependency at runtime (PYTHON-1237)

It's inclusion on the sys.path for cqlsh would appear unnecessary and unused.

 
cqlsh.py:
{quote}third_parties = ('futures-', 'six-', 'geomet-'){quote}
{quote}for lib in third_parties:
    lib_zip = find_zip(lib)
    if lib_zip:
        sys.path.insert(0, lib_zip){quote}
Bug: Remove unused python modules 
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 17/Mar/22 17:52
Resolved: 21/Mar/22 18:07

The following python modules listed in pylib/requirements.txt appear unused in the python code and should be removed from requirements:
 * decorator
 * docopt
 * flaky
 * mock
 * psutil
 * pycodestyle
Bug: Validate existence of DCs when repairing
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 28/Feb/22 14:41
Resolved: 08/Mar/22 23:28

With the new validation of data centers in the replication factor, it might be good to give similar treatment to repair.

Currently the behavior of the --in-dc flag only validates that it contains the local data center.

If a list is given containing nonexistent data centers, the repair will pass without errors or warning as long as this list also contains the local data center.

My suggestion would be to validate all the data centers and give an error when a nonexistent data center is given.
Bug: Streaming sessions longer than 3 minutes fail with timeout
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 31/Mar/22 16:08
Resolved: 01/Apr/22 23:04

Streaming sessions that take longer than 3 minutes will fail with an InputTimeoutException on the streaming control channel connection.

CASSANDRA-16927 refactored the streaming code as part of CEP-10 to clean up some abstractions. As part of those changes the StreamDeserializingTask (formerly StreamingInboundHandler) had a check removed that ensured data was present before reading from the AsyncStreamingInputPlus used by NettyStreamingChannel to pass incoming bytes to be deserialized off the main Netty event loop threads. When {{reBuffer}ing from the input, AsyncStreamingInputPlus times out if no data is received in three minutes.

It is perfectly valid for no messages to be received over the control connection for longer than three minutes - pre CASSANDRA-16927 just doesn’t do the read until data is present, so it doesn’t hit the timeout. A possible solution is to replace throwing the InputTimeoutException with a check that the channel is still open and retry.

Note this is unrelated to the streaming protocol KeepAlive removal - that had a default timeout of five minutes so would not have been effective anyway.
Bug: Resolve several pylint issues in cqlsh.py and pylib
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Mar/22 02:00
Resolved: 05/Apr/22 12:15

Cleanup outdated code:
 * resolve some pylint issues:
 ** variable 'ver' used at top-level and in function arg
 ** cmdloop doesn't match signature
 ** change set() function call in initializer to static
 ** a few other miscellaneous pylint issues
Bug: Test Failure: org.apache.cassandra.db.commitlog.CommitLogSegmentManagerCDCTest.testCDCIndexFileWriteOnSync
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 04/Mar/22 07:13
Resolved: 06/May/22 18:37

[https://ci-cassandra.apache.org/job/Cassandra-trunk/985/testReport/org.apache.cassandra.db.commitlog/CommitLogSegmentManagerCDCTest/testCDCIndexFileWriteOnSync_cdc_3/]
h3. Error Message

expected:<1748956> but was:<1749196>
h3. Stacktrace

junit.framework.AssertionFailedError: expected:<1748956> but was:<1749196> at org.apache.cassandra.db.commitlog.CommitLogSegmentManagerCDCTest.testCDCIndexFileWriteOnSync(CommitLogSegmentManagerCDCTest.java:160) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
h3. Standard Output

INFO [main] 2022-03-02 15:04:59,516 YamlConfigurationLoader.java:103 - Configuration location: file:////home/cassandra/cassandra/build/test/cassandra.cdc.yaml DEBUG [main] 2022-03-02 15:04:59,520 YamlConfigurationLoader.java:124 - Loading settings from file:////home/cassandra/cassandra/build/test/cassandra.cdc.yaml INFO [main] 2022-03-02 15:04:59,674 Config.java:907 - Node configuration:[allocate_tokens_for_keyspace=null; allocate_tokens_for_local_replication_factor=null; allow_extra_insecure_ ...[truncated 4125855 chars]... -02 15:06:57,491 PathUtils.java:73 - Deleting file during startup: /home/cassandra/cassandra/build/test/cassandra/data/system_schema/views-9786ac1cdd583201a7cdad556410c985/nb-11-big-Summary.db DEBUG [MemtableFlushWriter:2] 2022-03-02 15:06:57,496 ColumnFamilyStore.java:1207 - Flushed to [BigTableReader(path='/home/cassandra/cassandra/build/test/cassandra/data/system_schema/keyspaces-abac5682dea631c5b535b3d6cffd0fb6/nb-55-big-Data.db')] (1 sstables, 4.895KiB), biggest 4.895KiB, smallest 4.895KiB
Bug: Prevent GH pull request commits to cassandra repository
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 06/Mar/22 11:22
Resolved: 20/Mar/22 22:24

The cassandra project (currently) does not permit commits to be pushed to the cassandra repository (trunk or any branch) via GH pull requests. It is easy to disable this with a {{.asf.yml}} file.

Note, our other repositories: cassandra-dtest, cassandra-builds, cassandra-website, cassandra-in-jvm-dtest-api, …; may be candidates for allowing {{rebased}} GH PR merges. 

The cassandra-website repository is already set up to permit these, see [here|https://github.com/apache/cassandra-website/blob/trunk/.asf.yaml#L6-L10]. So long as part of the PR review process tis checking the commit message is of the correct project format it works well (there are no forward merges across projects in this repository).
Bug: Remove Python 2.x support from CQLSH
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 06/Jan/22 22:46
Resolved: 26/Jan/22 17:05

Python 2 has now reached EOL and should be removed from CQLSH and other Cassandra components.

"We are volunteers who make and take care of the Python programming language. We have decided that January 1, 2020, was the day that we sunset Python 2. That means that we will not improve it anymore after that day, even if someone finds a security problem in it. You should upgrade to Python 3 as soon as you can.

And if many people keep using Python 2, then that makes it hard for [the volunteers who use Python to make software|https://python3statement.org/#sections50-why]. They can't use the good new things in Python 3 to improve the tools they make.

As of January 1st, 2020 no new bug reports, fixes, or changes will be made to Python 2, and Python 2 is no longer supported.

"

[https://www.python.org/doc/sunset-python-2/]
Bug: Add flag enabling operators to restrict use of ALLOW FILTERING in queries
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 09/Feb/22 23:23
Resolved: 26/Apr/22 17:37

This ticket adds the ability for operators to disallow use of ALLOW FILTERING predicates in CQL SELECT statements. As queries that ALLOW FILTERING can place additional load on the database, the flag enables operators to provide tighter bounds on performance guarantees. The patch includes a new yaml property, as well as a hot property enabling the value to be modified via JMX at runtime.
Bug: Revert removed old deprecated parameters and revert name change of user_defined_function_warn_timeout and user_defined_function_fail_timeout in Config
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 13/Feb/22 17:53
Resolved: 25/Feb/22 18:02

Based on the latest ML conversations, the following changes in Config should be reconsidered:

[https://github.com/apache/cassandra/commit/c51a7c66fc21ca2da08b89ae5f9b4817ee4d8c23]
 * max_streaming_retries - deprecated long time ago but it should be there until at least 5.0. We need to revert this change
 * user_defined_function_warn_timeout_in_ms and user_defined_function_fail_timeout_in_ms name changes were reverted and type will be changed as part of another patch, already in the making.
 * Cherry-pick [https://github.com/apache/cassandra/commit/537ad9e17b820e48df78a7edfe6b3a17d56e08bc]
Bug: Missing TRUNCATE_EXISTING in write options
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 15/Mar/22 05:26
Resolved: 15/Mar/22 10:28

`PathUtils.WRITE_OPTIONS` is meant to be used for overwriting files. However, without TRUNCATE_EXISTING option, it may overwrite only the beginning of the file if the new content is smaller than previous, which in turn may lead to unexpected file size and fail some tests unexpectedly.