[jira] [Updated] (CASSANDRA-15488) Configuration file

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15488:
---
Resolution: Won't Fix
Status: Resolved  (was: Open)

> Configuration file
> --
>
> Key: CASSANDRA-15488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15488
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added configuration file page.
> https://github.com/apache/cassandra/pull/417



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15488) Configuration file

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15488:
---
Status: Patch Available  (was: Review In Progress)

> Configuration file
> --
>
> Key: CASSANDRA-15488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15488
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added configuration file page.
> https://github.com/apache/cassandra/pull/417



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15488) Configuration file

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15488:
---
Status: Open  (was: Patch Available)

> Configuration file
> --
>
> Key: CASSANDRA-15488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15488
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added configuration file page.
> https://github.com/apache/cassandra/pull/417



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15488) Configuration file

2020-02-21 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042329#comment-17042329
 ] 

Jon Haddad commented on CASSANDRA-15488:


This file is auto generated, closing this out.

> Configuration file
> --
>
> Key: CASSANDRA-15488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15488
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added configuration file page.
> https://github.com/apache/cassandra/pull/417



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15375) back pressure log line is misleading

2020-02-21 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042327#comment-17042327
 ] 

Jon Haddad commented on CASSANDRA-15375:


[~benedict] I think we might be a bit late to remove the back pressure 
mechanism from 4.0.  I intend to fix the logging, and maybe we evaluate it for 
removal in the next release?

> back pressure log line is misleading
> 
>
> Key: CASSANDRA-15375
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15375
> Project: Cassandra
>  Issue Type: Bug
>  Components: Observability/Logging
>Reporter: Jon Haddad
>Assignee: Jon Haddad
>Priority: Low
>
> This is odd:
> {{INFO [main] 2019-10-25 10:33:07,985 DatabaseDescriptor.java:803 - 
> Back-pressure is disabled with strategy 
> org.apache.cassandra.net.RateBasedBackPressure\{high_ratio=0.9, factor=5, 
> flow=FAST}.}}
> When I saw that, I wasn't sure if back pressure was actually disabled, or if 
> I was really using {{RateBasedBackPressure.}}
> This should change to output either:
> {{Back-pressure is disabled}}
> {{or}}
> {{Back-pressure is enabled with strategy 
> org.apache.cassandra.net.RateBasedBackPressure\{high_ratio=0.9, factor=5, 
> flow=FAST}.}}{{}}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread DeepakVohra (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042280#comment-17042280
 ] 

DeepakVohra edited comment on CASSANDRA-15481 at 2/22/20 12:52 AM:
---

[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate] and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

2. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

3. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
4. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

5. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

6. Does not discuss materialized views albeit as an experimental feature.


was (Author: dvohra):
[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate] and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

5. Does not discuss materialized views albeit as an experimental feature.

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread DeepakVohra (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042280#comment-17042280
 ] 

DeepakVohra edited comment on CASSANDRA-15481 at 2/22/20 12:51 AM:
---

[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate] and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

5. Does not discuss materialized views albeit as an experimental feature.


was (Author: dvohra):
[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate] and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not compare with relational model, which I have in section "Comparing 
with Relational Data Model".

5. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

6. Does not discuss materialized views albeit as an experimental feature.

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15488) Configuration file

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15488:
---
Reviewers: Jon Haddad, Jon Haddad  (was: Jon Haddad)
   Jon Haddad, Jon Haddad  (was: Jon Haddad)
   Status: Review In Progress  (was: Patch Available)

> Configuration file
> --
>
> Key: CASSANDRA-15488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15488
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added configuration file page.
> https://github.com/apache/cassandra/pull/417



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15241) Virtual table to expose current running queries

2020-02-21 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042287#comment-17042287
 ] 

Jon Haddad commented on CASSANDRA-15241:


I think it would be nice to report both, if it's not too much trouble.  It's 
what I'd want to see as an operator.

> Virtual table to expose current running queries
> ---
>
> Key: CASSANDRA-15241
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15241
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Feature/Virtual Tables
>Reporter: Chris Lohfink
>Assignee: Chris Lohfink
>Priority: Normal
>
> Expose current running queries and their duration.
> {code}cqlsh> select * from system_views.queries;
>  thread_id| duration_micros | task
> --+-+-
>  Native-Transport-Requests-17 |6325 |  QUERY 
> select * from system_views.queries; [pageSize = 100]
>   Native-Transport-Requests-4 |   14681 | EXECUTE 
> f4115f91190d4acf09e452637f1f2444 with 0 values at consistency LOCAL_ONE
>   Native-Transport-Requests-6 |   14678 | EXECUTE 
> f4115f91190d4acf09e452637f1f2444 with 0 values at consistency LOCAL_ONE
>  ReadStage-10 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-13 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-14 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-19 |   11861 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-20 |   11861 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-22 |7279 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>  ReadStage-23 |4716 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>   ReadStage-5 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>   ReadStage-7 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000
>   ReadStage-8 |   16535 | 
>SELECT * FROM basic.wide1 LIMIT 5000{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread DeepakVohra (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042280#comment-17042280
 ] 

DeepakVohra edited comment on CASSANDRA-15481 at 2/22/20 12:20 AM:
---

[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate] and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not compare with relational model, which I have in section "Comparing 
with Relational Data Model".

5. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

6. Does not discuss materialized views albeit as an experimental feature.


was (Author: dvohra):
[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate]and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not compare with relational model, which I have in section "Comparing 
with Relational Data Model".

5. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

6. Does not discuss materialized views albeit as an experimental feature.

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread DeepakVohra (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042280#comment-17042280
 ] 

DeepakVohra commented on CASSANDRA-15481:
-

[~rustyrazorblade] I would suggest keeping the index.rst page 
(https://github.com/Deepak-Vohra/cassandra/blob/data_modeling/doc/source/data_modeling/index.rst)
 I added as the first page of the documentation. And keep the *elaborate 
example* (http://cassandra.apache.org/doc/latest/data_modeling/index.html) from 
O'Reilly book as subsequent pages. I have discussed the important concepts 
though the example is not real-world and not too detailed. I would like to get 
opinion of other reviewers including from [~zznate]and [~djoshi]  before you 
resolve the ticket. Could you reopen the ticket?

The O'Reilly book chapter posted as documentation makes use of a *great 
example*, which I would suggest keeping, but has several issues:

1. It starts right-away with an example from the first statement, "First, let’s 
create a simple domain model that is easy to understand in the relational 
world, and then see how you might map it from a relational to a distributed 
hashtable model in Cassandra.", without discussing concepts. 

1. Does not define what data modeling is. I have defined data modeling in "What 
is Data Modeling?".

2. Does not discuss some important concepts such as 
_Single table-single query_ approach, which I have discussed in 
"How does Apache Cassandra Model Data?"
 
3. Does not discuss how queries are selected, which I have discussed in 
"Selecting Queries to Support".

4. Does not compare with relational model, which I have in section "Comparing 
with Relational Data Model".

5. Does not discuss data model analysis such as _Data redundancies_, which I 
have discussed in "Data Model Analysis". 

6. Does not discuss materialized views albeit as an experimental feature.

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15589) Add histogram to prepared statements and expose as virtual table

2020-02-21 Thread David Capwell (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042261#comment-17042261
 ] 

David Capwell commented on CASSANDRA-15589:
---

Sounds good to me

>  Add histogram to prepared statements and expose as virtual table
> -
>
> Key: CASSANDRA-15589
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15589
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Observability/Metrics
>Reporter: Jon Haddad
>Priority: Normal
>
> One of the biggest challenges as an operator is understanding what queries 
> are being executed and how long they take.  We have the ability to take short 
> samples via profileload, but it’s lacking the full diagnostics that keeping 
> histograms on each prepared statement could give us.  Having this would be a 
> massive benefit to most operators as they currently have no idea what 
> Cassandra is actually doing.
> Before committing let’s be sure to record some CPU flame graphs to ensure 
> there isn’t noticeable performance overhead.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15589) Add histogram to prepared statements and expose as virtual table

2020-02-21 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042250#comment-17042250
 ] 

Jon Haddad commented on CASSANDRA-15589:


Yeah, the idea here is to finally give operators a chance to know what queries 
are performed the most and how bad they generally are.  Having this information 
available when I was consulting would have made my life a million times easier.

>  Add histogram to prepared statements and expose as virtual table
> -
>
> Key: CASSANDRA-15589
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15589
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Observability/Metrics
>Reporter: Jon Haddad
>Priority: Normal
>
> One of the biggest challenges as an operator is understanding what queries 
> are being executed and how long they take.  We have the ability to take short 
> samples via profileload, but it’s lacking the full diagnostics that keeping 
> histograms on each prepared statement could give us.  Having this would be a 
> massive benefit to most operators as they currently have no idea what 
> Cassandra is actually doing.
> Before committing let’s be sure to record some CPU flame graphs to ensure 
> there isn’t noticeable performance overhead.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15543) flaky test org.apache.cassandra.distributed.test.SimpleReadWriteTest.readWithSchemaDisagreement

2020-02-21 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042208#comment-17042208
 ] 

Brandon Williams commented on CASSANDRA-15543:
--

This is relatively easy to reproduce. We can get three types of responses here. 
 The one the test wants:

{code}
org.apache.cassandra.exceptions.ReadFailureException: Operation failed - 
received 1 responses and 1 failures: INCOMPATIBLE_SCHEMA from 127.0.0.3:7012, 
INCOMPATIBLE_SCHEMA from 127.0.0.2:7012
{code}

but sometimes with two failures:
{code}
org.apache.cassandra.exceptions.ReadFailureException: Operation failed - 
received 1 responses and 2 failures: INCOMPATIBLE_SCHEMA from 127.0.0.3:7012, 
INCOMPATIBLE_SCHEMA from 127.0.0.2:7012
{code}

And sometimes either one of the nodes by itself:
{code}
org.apache.cassandra.exceptions.ReadFailureException: Operation failed - 
received 1 responses and 1 failures: INCOMPATIBLE_SCHEMA from 127.0.0.3:7012
{code}
 
At the least it seems we have a legit problem with terminology or counting here.

> flaky test 
> org.apache.cassandra.distributed.test.SimpleReadWriteTest.readWithSchemaDisagreement
> ---
>
> Key: CASSANDRA-15543
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15543
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/dtest
>Reporter: David Capwell
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> This fails infrequently, last seen failure was on java 8
> {code}
> junit.framework.AssertionFailedError
>   at 
> org.apache.cassandra.distributed.test.DistributedReadWritePathTest.readWithSchemaDisagreement(DistributedReadWritePathTest.java:276)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15352) Replica failure propagation to coordinator and client

2020-02-21 Thread Jeff Jirsa (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042161#comment-17042161
 ] 

Jeff Jirsa commented on CASSANDRA-15352:


I don't understand this JIRA. Can someone summarize exactly what condition 
you're trying to improve?


> Replica failure propagation to coordinator and client
> -
>
> Key: CASSANDRA-15352
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15352
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Messaging/Internode
>Reporter: Alex Petrov
>Priority: Normal
>
> We should add early reporting of replica-side errors, since currently we just 
> time-out requests. On normal read-write path this is not that important, but 
> this is a protocol change we will need to improve cheap quorums for transient 
> replication. This might have potential positive impact for regular read-write 
> path, since we’ll be aborting queries early instead of timing them out. Can 
> be useful for failing / going away nodes (which is also one of the changes 
> we’re planning to implement). 
> We do have means for propagating error both in client protocol through 
>  and in internode through FAILURE_RSP, which is true and we do not 
> have to extend the protocol to implement this change, but this is still a 
> change in protocol behavior, since we’ll be sending a message where we would 
> usually silently timeout.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15575:
-
  Since Version: 3.10
Source Control Link: 
https://github.com/apache/cassandra/commit/dc8f94a653a3cdb963bcc781562bb2fe63dbc575
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[cassandra] branch trunk updated: Filter nulls from assertNoUnexpectedThreadsStarted.

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
 new dc8f94a  Filter nulls from assertNoUnexpectedThreadsStarted.
dc8f94a is described below

commit dc8f94a653a3cdb963bcc781562bb2fe63dbc575
Author: Brandon Williams 
AuthorDate: Fri Feb 21 09:36:10 2020 -0600

Filter nulls from assertNoUnexpectedThreadsStarted.

Patch by brandonwilliams, reviewed by David Capwell for CASSANDRA-15575
---
 test/unit/org/apache/cassandra/tools/ToolsTester.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/test/unit/org/apache/cassandra/tools/ToolsTester.java 
b/test/unit/org/apache/cassandra/tools/ToolsTester.java
index 8dd7314..391c9b9 100644
--- a/test/unit/org/apache/cassandra/tools/ToolsTester.java
+++ b/test/unit/org/apache/cassandra/tools/ToolsTester.java
@@ -29,6 +29,7 @@ import java.security.Permission;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -82,6 +83,7 @@ public abstract class ToolsTester
   .collect(Collectors.toSet());
 
 Set current = 
Arrays.stream(threads.getThreadInfo(threads.getAllThreadIds()))
+.filter(Objects::nonNull)
 .map(ThreadInfo::getThreadName)
 .collect(Collectors.toSet());
 


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042132#comment-17042132
 ] 

Jon Haddad commented on CASSANDRA-15481:


I took a look at this, and I think it's a bit redundant (and a subset) from the 
material we merged in as part of CASSANDRA-15443.  I'm going to close this out 
as a duplicate.


> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15481:
---
Resolution: Fixed
Status: Resolved  (was: Open)

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15481) Data Modeling

2020-02-21 Thread Jon Haddad (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jon Haddad updated CASSANDRA-15481:
---
Status: Open  (was: Patch Available)

> Data Modeling
> -
>
> Key: CASSANDRA-15481
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15481
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Documentation/Website
>Reporter: DeepakVohra
>Assignee: DeepakVohra
>Priority: Normal
> Fix For: 4.0
>
>
> Added a page on data modeling.
> https://github.com/apache/cassandra/pull/410



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-2848) Make the Client API support passing down timeouts

2020-02-21 Thread Yifan Cai (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-2848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042110#comment-17042110
 ] 

Yifan Cai commented on CASSANDRA-2848:
--

Review wanted :)

> Make the Client API support passing down timeouts
> -
>
> Key: CASSANDRA-2848
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2848
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Messaging/Client, Messaging/Internode
>Reporter: Chris Goffinet
>Assignee: Yifan Cai
>Priority: Low
>  Labels: protocolv5
> Fix For: 4.0-beta
>
> Attachments: 2848-trunk-v2.txt, 2848-trunk.txt
>
>
> Having a max server RPC timeout is good for worst case, but many applications 
> that have middleware in front of Cassandra, might have higher timeout 
> requirements. In a fail fast environment, if my application starting at say 
> the front-end, only has 20ms to process a request, and it must connect to X 
> services down the stack, by the time it hits Cassandra, we might only have 
> 10ms. I propose we provide the ability to specify the timeout on each call we 
> do optionally.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread David Capwell (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Capwell updated CASSANDRA-15575:
--
Status: Ready to Commit  (was: Review In Progress)

{code}
testclasslist:
 [echo] Number of test runners: 1
[mkdir] Created dir: 
/Users/davidcapwell/Downloads/cassandra-CASSANDRA-15575/build/test/cassandra
[mkdir] Created dir: 
/Users/davidcapwell/Downloads/cassandra-CASSANDRA-15575/build/test/output
[junit-timeout] Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
[junit-timeout] Testsuite: org.apache.cassandra.tools.StandaloneVerifierTest
[junit-timeout] Testsuite: org.apache.cassandra.tools.StandaloneVerifierTest 
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.887 sec
{code}

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread David Capwell (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17042101#comment-17042101
 ] 

David Capwell commented on CASSANDRA-15575:
---

going to run the tests real quick

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread David Capwell (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Capwell updated CASSANDRA-15575:
--
Reviewers: David Capwell, David Capwell  (was: David Capwell)
   David Capwell, David Capwell
   Status: Review In Progress  (was: Patch Available)

{code}
/**
 * Returns the thread info for each thread
 * whose ID is in the input array ids with no stack trace.
 * This method is equivalent to calling:
 * 
 *   {@link #getThreadInfo(long[], int) getThreadInfo}(ids, 0);
 * 
 *
 * 
 * This method returns an array of the ThreadInfo objects.
 * The stack trace, locked monitors, and locked synchronizers
 * in each ThreadInfo object will be empty.
 *
 * If a thread of a given ID is not alive or does not exist,
 * the corresponding element in the returned array will
 * contain null.  A thread is alive if
 * it has been started and has not yet died.
 *
 * 
 * MBeanServer access:
 * The mapped type of ThreadInfo is
 * CompositeData with attributes as specified in the
 * {@link ThreadInfo#from ThreadInfo.from} method.
 *
 * @param ids an array of thread IDs.
 * @return an array of the {@link ThreadInfo} objects, each containing
 * information about a thread whose ID is in the corresponding
 * element of the input array of IDs
 * with no stack trace, no locked monitor and no synchronizer info.
 *
 * @throws IllegalArgumentException if any element in the input array
 * ids is {@code <= 0}.
 * @throws java.lang.SecurityException if a security manager
 * exists and the caller does not have
 * ManagementPermission("monitor").
 */
public ThreadInfo[] getThreadInfo(long[] ids);
{code}

The documented behavior is null means not found, so the filter LGTM

+1

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15539) Extract in-jvm API and tests out of Cassandra and into a separate repository

2020-02-21 Thread Dinesh Joshi (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15539?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dinesh Joshi updated CASSANDRA-15539:
-
Reviewers: Dinesh Joshi

> Extract in-jvm API and tests out of Cassandra and into a separate repository
> 
>
> Key: CASSANDRA-15539
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15539
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/dtest
>Reporter: Alex Petrov
>Assignee: Alex Petrov
>Priority: Normal
>
> Extract in-jvm DTest _API_ and tests into a separate repository that is 
> shared between Cassandra branches. Tests themselves should be buildable using 
> just API, which is not  the case now, since cluster creation relies on impl 
> package, since we do not have factories / constructors in API.
> Main goals we’re trying to achieve:
> 1. We should be able to fail a build on API incompatibility between versions 
> 2. Make it as easy as possible to detect break APIs between versions. 
> 3. Make development of _tests_ based on in-jvm framework simpler
> 4. Reduce surface area of impact when making modifications to tests 
> Potentially, we’d also like to use a plugin to detect API incompatibilities 
> between in-jvm DTest API and in-branch implementations, and start running 
> tests using shared in-jvm test repository with each existing implementation 
> in the branch. This entails both running tests for all branches whenever 
> there’s a change in tests jar and running tests for a specific branch 
> whenever the branch has changed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17041985#comment-17041985
 ] 

Brandon Williams commented on CASSANDRA-15575:
--

There can be a thread returned in getAllThreadIds that dies before 
getThreadInfo is called on it, resulting in the NPE.  The simplest thing to do 
is just filter out nulls here, and the good news is this condition very rarely 
occurs, so whatever thread it is that is dying before we get its info, is safe 
as far as the test is concerned.  Patch to filter nulls here: 
https://github.com/driftx/cassandra/tree/CASSANDRA-15575

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15575) Fix flaky test org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15575:
-
Test and Documentation Plan: no test needed
 Status: Patch Available  (was: Open)

> Fix flaky test 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs
> 
>
> Key: CASSANDRA-15575
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15575
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit, Tool/sstable
>Reporter: David Capwell
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 4.0-alpha
>
>
> Failure was seen on java 8.
> {code}
> java.lang.NullPointerException
>   at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>   at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
>   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>   at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
>   at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
>   at 
> org.apache.cassandra.tools.ToolsTester.assertNoUnexpectedThreadsStarted(ToolsTester.java:86)
>   at 
> org.apache.cassandra.tools.StandaloneVerifierTest.testStandaloneVerifier_WithArgs(StandaloneVerifierTest.java:45)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15592:
-
  Fix Version/s: 4.0-alpha
 3.11.7
 3.0.21
  Since Version: 3.0.19
Source Control Link: 
https://github.com/apache/cassandra/commit/c2bca69734253bea01bab59285df2b3ab0e571cb
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Committed, thanks!

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
> Fix For: 3.0.21, 3.11.7, 4.0-alpha
>
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_231]
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-all-4.1.42.Final.jar:4.1.42.Final]
>  at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_231]
> {noformat}
> Since CASSANDRA-15059 we check that all state changes are performed in the 
> GossipStage but it seems like it was still performed in the "current" thread 
> [here|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/gms/Gossiper.java#L895].
>  It should be as simple as adding a
> {code:java}

[jira] [Updated] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15592:
-
Reviewers: Brandon Williams, Brandon Williams  (was: Brandon Williams)
   Brandon Williams, Brandon Williams
   Status: Review In Progress  (was: Patch Available)

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_231]
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-all-4.1.42.Final.jar:4.1.42.Final]
>  at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_231]
> {noformat}
> Since CASSANDRA-15059 we check that all state changes are performed in the 
> GossipStage but it seems like it was still performed in the "current" thread 
> [here|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/gms/Gossiper.java#L895].
>  It should be as simple as adding a
> {code:java}
> runInGossipStageBlocking(() ->)
> {code}
> for it.
> I'll upload patches for 3.0, 3.11 and 4.0.
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15592:
-
Status: Ready to Commit  (was: Review In Progress)

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_231]
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-all-4.1.42.Final.jar:4.1.42.Final]
>  at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_231]
> {noformat}
> Since CASSANDRA-15059 we check that all state changes are performed in the 
> GossipStage but it seems like it was still performed in the "current" thread 
> [here|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/gms/Gossiper.java#L895].
>  It should be as simple as adding a
> {code:java}
> runInGossipStageBlocking(() ->)
> {code}
> for it.
> I'll upload patches for 3.0, 3.11 and 4.0.
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: 

[cassandra] branch cassandra-3.11 updated (c93c298 -> aaef02e)

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a change to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git.


from c93c298  Switch from www.apache.org/dist to downloads.apache.org
 new 95197ce  Run evictFromMembership in GossipStage
 new aaef02e  Merge branch 'cassandra-3.0' into cassandra-3.11

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt|  3 +-
 src/java/org/apache/cassandra/gms/Gossiper.java|  5 +-
 .../apache/cassandra/gms/ExpireEndpointTest.java   | 65 ++
 3 files changed, 70 insertions(+), 3 deletions(-)
 create mode 100644 test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15592:
-
Test and Documentation Plan: test added
 Status: Patch Available  (was: Open)

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_231]
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-all-4.1.42.Final.jar:4.1.42.Final]
>  at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_231]
> {noformat}
> Since CASSANDRA-15059 we check that all state changes are performed in the 
> GossipStage but it seems like it was still performed in the "current" thread 
> [here|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/gms/Gossiper.java#L895].
>  It should be as simple as adding a
> {code:java}
> runInGossipStageBlocking(() ->)
> {code}
> for it.
> I'll upload patches for 3.0, 3.11 and 4.0.
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: 

[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit c2bca69734253bea01bab59285df2b3ab0e571cb
Merge: d629a58 aaef02e
Author: Brandon Williams 
AuthorDate: Fri Feb 21 09:11:45 2020 -0600

Merge branch 'cassandra-3.11' into trunk

 CHANGES.txt|  3 +
 src/java/org/apache/cassandra/gms/Gossiper.java|  5 +-
 .../apache/cassandra/gms/ExpireEndpointTest.java   | 65 ++
 3 files changed, 71 insertions(+), 2 deletions(-)

diff --cc CHANGES.txt
index 7c3dd94,a8baa44..be627fa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,56 -1,9 +1,59 @@@
 -3.11.7
 +4.0-alpha4
 + * Unset GREP_OPTIONS (CASSANDRA-14487)
 + * Added streaming documentation (CASSANDRA-15477)
 + * Update to Python driver 3.21 for cqlsh (CASSANDRA-14872)
 + * Added bulk loading documentation (CASSANDRA-15480)
 + * Updated overview documentation (CASSANDRA-15483)
 + * Added CDC and speculative retry documentation to DDL section 
(CASSANDRA-15492)
 + * Fix missing Keyspaces in cqlsh describe output (CASSANDRA-15576)
 + * Fix multi DC nodetool status output (CASSANDRA-15305)
 + * Added documentation covering new Netty based internode messaging 
(CASSANDRA-15478)
 + * Add documentation of hints (CASSANDRA-15491)
 + * updateCoordinatorWriteLatencyTableMetric can produce misleading metrics 
(CASSANDRA-15569)
 + * Added documentation for read repair and an example of full repair 
(CASSANDRA-15485)
 + * Make cqlsh and cqlshlib Python 2 & 3 compatible (CASSANDRA-10190)
 + * Added documentation for Full Query Logging (CASSANDRA-15475)
 + * Added documentation for backups (CASSANDRA-15479)
 + * Documentation gives the wrong instruction to activate remote jmx 
(CASSANDRA-15535)
 + * Improve the description of nodetool listsnapshots command (CASSANDRA-14587)
 + * allow embedded cassandra launched from a one-jar or uno-jar 
(CASSANDRA-15494)
 + * Update hppc library to version 0.8.1 (CASSANDRA-12995)
 + * Limit the dependencies used by UDFs/UDAs (CASSANDRA-14737)
 + * Make native_transport_max_concurrent_requests_in_bytes updatable 
(CASSANDRA-15519)
 + * Cleanup and improvements to IndexInfo/ColumnIndex (CASSANDRA-15469)
 + * Potential Overflow in DatabaseDescriptor Functions That Convert Between 
KB/MB & Bytes (CASSANDRA-15470)
+ Merged from 3.0:
 - * Run evictFromMembership in GossipStage (CASSANDRA-15592)
++* Run evictFromMembership in GossipStage (CASSANDRA-15592)
+ 
 -
 -3.11.6
 +4.0-alpha3
 + * Restore monotonic read consistency guarantees for blocking read repair 
(CASSANDRA-14740)
 + * Separate exceptions for CAS write timeout exceptions caused by contention 
and unkown result (CASSANDRA-15350)
 + * Fix in-jvm dtest java 11 compatibility (CASSANDRA-15463)
 + * Remove joda time dependency (CASSANDRA-15257)
 + * Exclude purgeable tombstones from repaired data tracking (CASSANDRA-15462)
 + * Exclude legacy counter shards from repaired data tracking (CASSANDRA-15461)
 + * Make it easier to add trace headers to messages (CASSANDRA-15499)
 + * Fix and optimise partial compressed sstable streaming (CASSANDRA-13938)
 + * Improve error when JVM 11 can't access required modules (CASSANDRA-15468)
 + * Better handling of file deletion failures by DiskFailurePolicy 
(CASSANDRA-15143)
 + * Prevent read repair mutations from increasing read timeout 
(CASSANDRA-15442)
 + * Document 4.0 system keyspace changes, bump generations (CASSANDRA-15454)
 + * Make it possible to disable STCS-in-L0 during runtime (CASSANDRA-15445)
 + * Removed obsolete OldNetworkTopologyStrategy (CASSANDRA-13990)
 + * Align record header of FQL and audit binary log (CASSANDRA-15076)
 + * Shuffle forwarding replica for messages to non-local DC (CASSANDRA-15318)
 + * Optimise native protocol ASCII string encoding (CASSANDRA-15410)
 + * Make sure all exceptions are propagated in DebuggableThreadPoolExecutor 
(CASSANDRA-15332)
 + * Make it possible to resize concurrent read / write thread pools at runtime 
(CASSANDRA-15277)
 + * Close channels on error (CASSANDRA-15407)
 + * Add documentation for Java 11 support in Cassandra (CASSANDRA-15428)
 + * Integrate SJK into nodetool (CASSANDRA-12197)
 + * Ensure that empty clusterings with kind==CLUSTERING are Clustering.EMPTY 
(CASSANDRA-15498)
 + * The flag 'cross_node_timeout' has been set as true by default. This change
 +   is done under the assumption that users have setup NTP on their clusters or
 +   otherwise synchronize their clocks, and that clocks are mostly in sync, 
since
 +   this is a requirement for general correctness of last write wins. 
(CASSANDRA-15216)
 +Merged from 3.11:
   * Fix bad UDT sstable metadata serialization headers written by C* 3.0 on 
upgrade and in sstablescrub (CASSANDRA-15035)
   * Fix nodetool compactionstats showing extra pending task for TWCS - patch 
implemented (CASSANDRA-15409)
   * Fix SELECT JSON formatting for the 

[cassandra] branch cassandra-3.0 updated: Run evictFromMembership in GossipStage

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-3.0 by this push:
 new 95197ce  Run evictFromMembership in GossipStage
95197ce is described below

commit 95197cef7871d1211f97da740dbdb236b81b9862
Author: Marcus Olsson 
AuthorDate: Wed Feb 5 16:53:58 2020 +0100

Run evictFromMembership in GossipStage

patch by Marcus Olsson; reviewed by brandonwilliams for CASSANDRA-15592
---
 CHANGES.txt|  2 +-
 src/java/org/apache/cassandra/gms/Gossiper.java|  5 +-
 .../apache/cassandra/gms/ExpireEndpointTest.java   | 57 ++
 3 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 2f20e66..e2614ec 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,5 @@
 3.0.21
- * 
+ * Run evictFromMembership in GossipStage (CASSANDRA-15592)
 
 3.0.20
  * Run in-jvm upgrade dtests in circleci (CASSANDRA-15506)
diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java 
b/src/java/org/apache/cassandra/gms/Gossiper.java
index e9e0648..7984dd4 100644
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@ -808,7 +808,8 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
 return !unsafeStatuses.contains(status);
 }
 
-private void doStatusCheck()
+@VisibleForTesting
+void doStatusCheck()
 {
 if (logger.isTraceEnabled())
 logger.trace("Performing status check ...");
@@ -862,7 +863,7 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
 {
 logger.debug("time is expiring for endpoint : {} 
({})", endpoint, expireTime);
 }
-evictFromMembership(endpoint);
+runInGossipStageBlocking(() -> 
evictFromMembership(endpoint));
 }
 }
 }
diff --git a/test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java 
b/test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java
new file mode 100644
index 000..e7a1a64
--- /dev/null
+++ b/test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.gms;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.UUID;
+
+import org.junit.Test;
+
+import org.apache.cassandra.service.StorageService;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class ExpireEndpointTest
+{
+@Test
+public void testExpireEndpoint() throws UnknownHostException
+{
+InetAddress hostAddress = InetAddress.getByName("127.0.0.2");
+UUID hostId = UUID.randomUUID();
+long expireTime = System.currentTimeMillis() - 1;
+
+Gossiper.instance.initializeNodeUnsafe(hostAddress, hostId, 1);
+
+EndpointState endpointState = 
Gossiper.instance.getEndpointStateForEndpoint(hostAddress);
+Gossiper.runInGossipStageBlocking(() -> 
Gossiper.instance.markDead(hostAddress, endpointState));
+endpointState.addApplicationState(ApplicationState.STATUS, 
StorageService.instance.valueFactory.removedNonlocal(hostId, expireTime));
+Gossiper.instance.addExpireTimeForEndpoint(hostAddress, expireTime);
+
+assertTrue("Expiring endpoint not unreachable before status check", 
Gossiper.instance.getUnreachableMembers().contains(hostAddress));
+
+Gossiper.instance.doStatusCheck();
+
+assertFalse("Expired endpoint still part of live members", 
Gossiper.instance.getLiveMembers().contains(hostAddress));
+assertFalse("Expired endpoint still part of unreachable members", 
Gossiper.instance.getUnreachableMembers().contains(hostAddress));
+assertNull("Expired endpoint still contain endpoint state", 
Gossiper.instance.getEndpointStateForEndpoint(hostAddress));
+}
+}



[cassandra] branch trunk updated (d629a58 -> c2bca69)

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git.


from d629a58  Unset GREP_OPTIONS
 new 95197ce  Run evictFromMembership in GossipStage
 new aaef02e  Merge branch 'cassandra-3.0' into cassandra-3.11
 new c2bca69  Merge branch 'cassandra-3.11' into trunk

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt|  3 +
 src/java/org/apache/cassandra/gms/Gossiper.java|  5 +-
 .../apache/cassandra/gms/ExpireEndpointTest.java   | 65 ++
 3 files changed, 71 insertions(+), 2 deletions(-)
 create mode 100644 test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11

2020-02-21 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit aaef02ed3a3fac79c07f2318bdd7f7130814
Merge: c93c298 95197ce
Author: Brandon Williams 
AuthorDate: Fri Feb 21 09:07:28 2020 -0600

Merge branch 'cassandra-3.0' into cassandra-3.11

 CHANGES.txt|  3 +-
 src/java/org/apache/cassandra/gms/Gossiper.java|  5 +-
 .../apache/cassandra/gms/ExpireEndpointTest.java   | 65 ++
 3 files changed, 70 insertions(+), 3 deletions(-)

diff --cc CHANGES.txt
index 32220a2,e2614ec..a8baa44
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,14 -1,7 +1,15 @@@
 -3.0.21
 +3.11.7
-  * 
++Merged from 3.0:
+  * Run evictFromMembership in GossipStage (CASSANDRA-15592)
  
 -3.0.20
 +
 +3.11.6
 + * Fix bad UDT sstable metadata serialization headers written by C* 3.0 on 
upgrade and in sstablescrub (CASSANDRA-15035)
 + * Fix nodetool compactionstats showing extra pending task for TWCS - patch 
implemented (CASSANDRA-15409)
 + * Fix SELECT JSON formatting for the "duration" type (CASSANDRA-15075)
 + * Fix LegacyLayout to have same behavior as 2.x when handling unknown column 
names (CASSANDRA-15081)
 + * Update nodetool help stop output (CASSANDRA-15401)
 +Merged from 3.0:
   * Run in-jvm upgrade dtests in circleci (CASSANDRA-15506)
   * Include updates to static column in mutation size calculations 
(CASSANDRA-15293)
   * Fix point-in-time recoevery ignoring timestamp of updates to static 
columns (CASSANDRA-15292)
diff --cc src/java/org/apache/cassandra/gms/Gossiper.java
index a205140,7984dd4..d227200
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@@ -816,29 -798,18 +816,30 @@@ public class Gossiper implements IFailu
  if (epState == null || isDeadState(epState))
  return true;
  
 -String status = getGossipStatus(epState);
 -
 -// these states are not allowed to join the cluster as it would not 
be safe
 -final List unsafeStatuses = new ArrayList() {{
 -add(""); // failed bootstrap but we did start gossiping
 -add(VersionedValue.STATUS_NORMAL); // node is legit in the 
cluster or it was stopped with kill -9
 -add(VersionedValue.SHUTDOWN); }}; // node was shutdown
 -return !unsafeStatuses.contains(status);
 +if (isBootstrapping)
 +{
 +String status = getGossipStatus(epState);
 +// these states are not allowed to join the cluster as it would 
not be safe
 +final List unsafeStatuses = new ArrayList()
 +{{
 +add("");   // failed bootstrap but we 
did start gossiping
 +add(VersionedValue.STATUS_NORMAL); // node is legit in the 
cluster or it was stopped with kill -9
 +add(VersionedValue.SHUTDOWN);  // node was shutdown
 +}};
 +return !unsafeStatuses.contains(status);
 +}
 +else
 +{
 +// if the previous UUID matches what we currently have (i.e. what 
was read from
 +// system.local at startup), then we're good to start up. 
Otherwise, something
 +// is amiss and we need to replace the previous node
 +VersionedValue previous = 
epState.getApplicationState(ApplicationState.HOST_ID);
 +return UUID.fromString(previous.value).equals(localHostUUID);
 +}
  }
  
- private void doStatusCheck()
+ @VisibleForTesting
+ void doStatusCheck()
  {
  if (logger.isTraceEnabled())
  logger.trace("Performing status check ...");
diff --cc test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java
index 000,e7a1a64..f6d9fa3
mode 00,100644..100644
--- a/test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java
+++ b/test/unit/org/apache/cassandra/gms/ExpireEndpointTest.java
@@@ -1,0 -1,57 +1,65 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.cassandra.gms;
+ 
+ import java.net.InetAddress;
+ import 

[jira] [Commented] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Marcus Olsson (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17041826#comment-17041826
 ] 

Marcus Olsson commented on CASSANDRA-15592:
---

The branches are updated. 3.11/4.0 contains an additional smaller patch with 
the difference in the test setup compared to 3.0.

Additionally I ran the test code on 3.0/3.11/4.0 without the patch and they all 
got the IllegalStateException mentioned in the ticket (example output from 3.11 
below):
{noformat}
INFO  [GossipStage:1] 2020-02-21 13:48:47,395 Gossiper.java:1106 - InetAddress 
/127.0.0.2 is now DOWN
DEBUG [main] 2020-02-21 13:48:47,398 Gossiper.java:1746 - adding expire time 
for endpoint : /127.0.0.2 (1582289327272)
DEBUG [main] 2020-02-21 13:48:47,399 Gossiper.java:894 - time is expiring for 
endpoint : /127.0.0.2 (1582289327272)

java.lang.IllegalStateException: Attempting gossip state mutation from illegal 
thread: main

at 
org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
at 
org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:896)
at 
org.apache.cassandra.gms.ExpireEndpointTest.testExpireEndpoint(ExpireEndpointTest.java:59)
...
{noformat}

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> 

[jira] [Commented] (CASSANDRA-15592) IllegalStateException in gossip after removing node

2020-02-21 Thread Marcus Olsson (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17041795#comment-17041795
 ] 

Marcus Olsson commented on CASSANDRA-15592:
---

Sure thing.

In order to get the test case small and to avoid starting up the full Gossiper 
I modified "doStatusCheck()" to package-private (with @VisibleForTesting).
The test case injects an application state for a "remote" node, marks it down, 
removes it and then adds an expiry time earlier than "now" before running 
"doStatusCheck()" so that it should be evicted.
I believe this should represent the state transition that has occurred but 
gossip state transitions are not my strong suite so please correct me if I'm 
wrong.

I'll update the branches shortly.

> IllegalStateException in gossip after removing node
> ---
>
> Key: CASSANDRA-15592
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15592
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Marcus Olsson
>Assignee: Marcus Olsson
>Priority: Normal
>
> In one of our test environments we encountered the following exception:
> {noformat}
> 2020-02-02T10:50:13.276+0100 [GossipTasks:1] ERROR 
> o.a.c.u.NoSpamLogger$NoSpamLogStatement:97 log 
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465)
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895)
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78)
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240)
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.lang.Thread.run(Thread.java:748)
> java.lang.IllegalStateException: Attempting gossip state mutation from 
> illegal thread: GossipTasks:1
>  at 
> org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation(Gossiper.java:178)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.evictFromMembership(Gossiper.java:465) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:895) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:78) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:240) 
> [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [na:1.8.0_231]
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
> [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_231]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_231]
>  at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>  [apache-cassandra-3.11.5.jar:3.11.5]
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-all-4.1.42.Final.jar:4.1.42.Final]
>  at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_231]
> {noformat}
> Since CASSANDRA-15059 we check that all state changes are performed in the 
> GossipStage but it seems like it was still