You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Trevor Robinson (JIRA)" <ji...@apache.org> on 2012/07/18 17:37:34 UTC
[jira] [Created] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Trevor Robinson created CASSANDRA-4442:
------------------------------------------
Summary: Stack size settings in cassandra-env.sh assume 64-bit x86
Key: CASSANDRA-4442
URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
Project: Cassandra
Issue Type: Bug
Components: Core
Affects Versions: 1.1.2
Reporter: Trevor Robinson
The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419919#comment-13419919 ]
Trevor Robinson commented on CASSANDRA-4442:
--------------------------------------------
bq. I suspect we'd have the same problem on other operating systems running on ARM.
Unfortunately, there aren't really any other viable operating systems right now. Oracle [only supports Linux|http://www.oracle.com/technetwork/java/embedded/downloads/javase/index.html] and OpenJDK has [abysmal performance|http://fullshovel.wordpress.com/2012/07/11/java-vs-c-on-arm/] on ARM.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461982#comment-13461982 ]
Jonathan Ellis commented on CASSANDRA-4442:
-------------------------------------------
Note that recent 1.6 JVMs need more than the minimum stack size to actually do network operations; we're using Xss=180, where the minimum is 160.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.6
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-4442:
--------------------------------------
Fix Version/s: 1.1.3
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trevor Robinson updated CASSANDRA-4442:
---------------------------------------
Attachment: v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.6
>
> Attachments: ASF.LICENSE.NOT.GRANTED--v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Brandon Williams (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419851#comment-13419851 ]
Brandon Williams commented on CASSANDRA-4442:
---------------------------------------------
bq. What type of system hit the failure? Java 6 on amd64, I'm guessing
Yep.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-4442:
----------------------------------------
Fix Version/s: (was: 1.1.3)
1.1.4
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.4
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419564#comment-13419564 ]
Trevor Robinson edited comment on CASSANDRA-4442 at 7/20/12 8:59 PM:
---------------------------------------------------------------------
So apparently we don't want the minimum after all. :)
What type of system hit the failure? Java 6 on amd64, I'm guessing, since it used to use 128k vs 104k.
Should the patch be changed to add a 25% margin? ((128 - 104) / 104 = ~0.23) This would yield settings of 200k, 130k, and 80k for the systems mentioned in my initial comment.
was (Author: scurrilous):
So apparently we don't want the minimum after all. :-
What type of system hit the failure? Java 6 on amd64, I'm guessing, since it used to use 128k vs 104k.
Should the patch be changed to add a 25% margin? ((128 - 104) / 104 = ~0.23) This would yield settings of 200k, 130k, and 80k for the systems mentioned in my initial comment.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419564#comment-13419564 ]
Trevor Robinson commented on CASSANDRA-4442:
--------------------------------------------
So apparently we don't want the minimum after all. :-
What type of system hit the failure? Java 6 on amd64, I'm guessing, since it used to use 128k vs 104k.
Should the patch be changed to add a 25% margin? ((128 - 104) / 104 = ~0.23) This would yield settings of 200k, 130k, and 80k for the systems mentioned in my initial comment.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Brandon Williams (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419850#comment-13419850 ]
Brandon Williams commented on CASSANDRA-4442:
---------------------------------------------
bq. Should the patch be changed to add a 25% margin?
I don't think a fudge factor is something I want in the stack size. If we have to, I'd prefer explicit arch detection along with the version and have the decision based on those.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-4442:
--------------------------------------
Reviewer: brandon.williams
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Zenek Kraweznik (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13473045#comment-13473045 ]
Zenek Kraweznik commented on CASSANDRA-4442:
--------------------------------------------
On 1.6 JVM I'm using Xss=192k, with 180k I've seen some errors in log.
Can we expect fix in 1.1.6 version instead of 1.1.7?
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.7
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trevor Robinson updated CASSANDRA-4442:
---------------------------------------
Attachment: (was: ASF.LICENSE.NOT.GRANTED--v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt)
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.6
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trevor Robinson updated CASSANDRA-4442:
---------------------------------------
Attachment: v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419916#comment-13419916 ]
Trevor Robinson commented on CASSANDRA-4442:
--------------------------------------------
How do you propose to determine the correct stack size for a particular arch/version? Even with testing and measurement, it seems like it always has to involve some sort of fudge factor, since the code is non-trivial and ever-changing, and the VM internals are unknown.
Despite the unflattering label, scaling it based on the JVM minimum doesn't seem unreasonable, since that value hopefully embodies some knowledge from the VM designer about how the stack is used. Even if you want to maintain a known arch/version table in the script, there should be some fallback logic for new or untested versions. As 7u4 shows, even a minor version update can significantly change stack usage, so fixed values should only be used with a strict arch/version match.
To look at it another way, we only have 3 (fuzzy) data points now: 128k seems to be the accepted "correct" value for Java 6 on amd64, 160k is known to be too small for 7u4 on amd64 (CASSANDRA-4457), and 160k is way too big for 32-bit/ARM (even in 7u4). The updated patch hits those points (fixing the stack overflow on 7u4 amd64) and provides a better fallback for other systems than using the _much_ larger JVM defaults (e.g. 320k for ARM and 1024k for amd64 in 7u4). CASSANDRA-4457 may change things, but it's a difficult issue with minor priority, so it's hard to imagine it being resolved soon.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt, v1-0001-CASSANDRA-4442-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Trevor Robinson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trevor Robinson updated CASSANDRA-4442:
---------------------------------------
Attachment: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
The attached patch was tested with Oracle 7u4 and OpenJDK 6u24 on amd64, and Oracle 7u4 on ARMv7. Reported stack sizes of 160k, 104k, and 64k, respectively. Just tested startup on amd64, but ran 'stress -o insert' on ARM.
Note that the patch also fixes an issue with CASSANDRA-4366 (UseCondCardMark) where JDK 1.7 was only detected on Linux.
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Reopened] (CASSANDRA-4442) Stack size settings in
cassandra-env.sh assume 64-bit x86
Posted by "Brandon Williams (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-4442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brandon Williams reopened CASSANDRA-4442:
-----------------------------------------
Reverted, as this is causing failures:
{noformat}
java.lang.StackOverflowError
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.apache.cassandra.net.OutboundTcpConnection.writeConnected(OutboundTcpConnection.java:156)
at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:126)
{noformat}
> Stack size settings in cassandra-env.sh assume 64-bit x86
> ---------------------------------------------------------
>
> Key: CASSANDRA-4442
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4442
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.2
> Reporter: Trevor Robinson
> Assignee: Trevor Robinson
> Fix For: 1.1.3
>
> Attachments: v1-0001-CASSANDRA-4275-Use-JVM-s-reported-minimum-stack-size-o.txt
>
>
> The fix for CASSANDRA-4275 hard-codes a 160 KB stack size when using Java 7 on Linux. This assumes the Oracle 7u4 JVM on 64-bit x86. For systems like 32-bit ARM, this size is excessive (the minimum for 7u4 on ARM is 60-64 KB). Also, the minimum allowed value is version-dependent and is calculated dynamically by the JVM on startup based on Linux parameters that can also change. A better approach would be to query the JVM for the minimum stack size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira