-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scylla-jmx.service: is still failed during artifact tests after #206 fix - java-select fail to parse java version output #212
Comments
cc @fruch |
Did the JMX process crash perhaps? |
probably
|
https://jenkins.scylladb.com/job/scylla-master/job/artifacts-offline-install/job/artifacts-rocky8-nonroot-test/182/ - has no logs, but i believe the same issue here:
|
@tchaikov can you please have a look |
sure. Will take a look early tomorrow. |
quote from
the scylla-jmx service unit failed to start because it depends on "scylla-server.service", see scylla-jmx/dist/common/systemd/scylla-jmx.service Lines 3 to 4 in 5f98894
in the very same
which is:
|
filed scylladb/scylladb#13700 |
@tchaikov - are these issues fallout from the upgrade of the Java version? We'll need to revert or fix the Java code, I'm afraid. |
hi @mykaul i don't know. as i don't have any proof that they are. please see the analysis at #212 (comment) . scylladb crashed before scylla-jmx exporter tries to start. so i think these two things are correlated, but i am afraid this does not imply causation. |
@avikivity - who should look at the above crash? |
I don't think this issue is related to any scylla crash, i'm not sure where you are getting this crash information from seems like the code in since the output of
and the logic in:
kind of kind of breaks, and no java is being selected:
and java select silently fail, i.e. with no description visible in the log, why it's failing. |
@tchaikov see /etc/os-release from one only the failing jobs:
you can see examples from all the distos we do support here: |
@fruch hi Israel, thank you very much for pointing out the issue of but the segfault in scylla is still a mystery. i captured a snapshot of the test_data.zip, and noted down the steps to get it in scylladb/scylladb#13700 . |
there are some distros whose $ID in /etc/os-release does not match with any of the known distro id in this script, but they do have `$ID_LIKE` which contains one or more ids which match with the known distro id, as they are considered the derivatives of the matched distros. for instance RHEL's ID_LIKE is fedora, and OEL (Oracle Enterprise Linux)'s ID_LIKE is fedora, Rocky Linux's ID_LIKE is "rhel centos fedora". so, in order to find java runtime for these distros, we need to take ID_LIKE into consideration. in this change, both $ID and $ID_LIKE are considered, the first matched id wins. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
instead of parsing the output of `-version`, parse output of `-XshowSettings:properties`, whose format is more predicable. as on EL9, we have > Picked up JAVA_TOOL_OPTIONS: openjdk version "11.0.19" 2023-04-18 LTS OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS, mixed mode, sharing) while on fedora 38, jre-1.8 prints > openjdk version "1.8.0_362" jre-11 prints > openjdk version "11.0.19" 2023-04-18 before this change, we just use `"` as the field separator for awk, this works, but the parsing algorithm is fragile. so let's use the "java.specification.version" property instead, it is always printed like > java.specification.version = 1.8 so, after this change, we split this line with " = ", and pick the last field, i.e., the value of `java.specification.version`. also, in this change, we are using the case clause for better readability. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
The decode is bogus, so can't triage. |
instead of parsing the output of `-version`, parse output of `-XshowSettings:properties`, whose format is more predicable. as on EL9, we have > Picked up JAVA_TOOL_OPTIONS: openjdk version "11.0.19" 2023-04-18 LTS OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS, mixed mode, sharing) while on fedora 38, jre-1.8 prints > openjdk version "1.8.0_362" jre-11 prints > openjdk version "11.0.19" 2023-04-18 before this change, we just use `"` as the field separator for awk, this works, but the parsing algorithm is fragile. so let's use the "java.specification.version" property instead, it is always printed like > java.specification.version = 1.8 so, after this change, we split this line with " = ", and pick the last field, i.e., the value of `java.specification.version`. also, in this change, we are using the case clause for better readability. also, in this change, instead of dispatch the logic by the distro id, we just check all JVMs located under /usr/lib/jvm, and pick the first match. this simplifies the existing complicated implementation. also, instead of silently returning status code of 1, print error messages for better user experience. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
instead of parsing the output of `-version`, parse output of `-XshowSettings:properties`, whose format is more predicable. as on EL9, we have > Picked up JAVA_TOOL_OPTIONS: openjdk version "11.0.19" 2023-04-18 LTS OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS, mixed mode, sharing) while on fedora 38, jre-1.8 prints > openjdk version "1.8.0_362" jre-11 prints > openjdk version "11.0.19" 2023-04-18 before this change, we just use `"` as the field separator for awk, this works, but the parsing algorithm is fragile. so let's use the "java.specification.version" property instead, it is always printed like > java.specification.version = 1.8 so, after this change, we split this line with " = ", and pick the last field, i.e., the value of `java.specification.version`. also, in this change, we are using the case clause for better readability. also, in this change, instead of dispatch the logic by the distro id, we just check all JVMs located under /usr/lib/jvm, and pick the first match. this simplifies the existing complicated implementation. also, instead of silently returning status code of 1, print error messages for better user experience. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
instead of parsing the output of `-version`, parse output of `-XshowSettings:properties`, whose format is more predicable. as on EL9, we have > Picked up JAVA_TOOL_OPTIONS: openjdk version "11.0.19" 2023-04-18 LTS OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS, mixed mode, sharing) while on fedora 38, jre-1.8 prints > openjdk version "1.8.0_362" jre-11 prints > openjdk version "11.0.19" 2023-04-18 before this change, we just use `"` as the field separator for awk, this works, but the parsing algorithm is fragile. so let's use the "java.specification.version" property instead, it is always printed like > java.specification.version = 1.8 so, after this change, we split this line with " = ", and pick the last field, i.e., the value of `java.specification.version`. also, in this change, we are using the case clause for better readability. also, in this change, instead of dispatch the logic by the distro id, we just check all JVMs located under /usr/lib/jvm, and pick the first match. this simplifies the existing complicated implementation. also, instead of silently returning status code of 1, print error messages for better user experience. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
instead of parsing the output of `-version`, parse output of `-XshowSettings:properties`, whose format is more predicable. as on EL9, we have > Picked up JAVA_TOOL_OPTIONS: openjdk version "11.0.19" 2023-04-18 LTS OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el9_1) (build 11.0.19+7-LTS, mixed mode, sharing) while on fedora 38, jre-1.8 prints > openjdk version "1.8.0_362" jre-11 prints > openjdk version "11.0.19" 2023-04-18 before this change, we just use `"` as the field separator for awk, this works, but the parsing algorithm is fragile. so let's use the "java.specification.version" property instead, it is always printed like > java.specification.version = 1.8 so, after this change, we split this line with " = ", and pick the last field, i.e., the value of `java.specification.version`. also, in this change, we are using the case clause for better readability. also, in this change, instead of dispatch the logic by the distro id, we just check all JVMs located under /usr/lib/jvm, and pick the first match. this simplifies the existing complicated implementation. also, instead of silently returning status code of 1, print error messages for better user experience. Fixes scylladb#212 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
scylla-jmx.service: is still failed during artifact tests after #206 fix, with the same error message
from events log:
job urls:
https://jenkins.scylladb.com/job/scylla-master/job/artifacts-offline-install/job/artifacts-rocky8-test/198/
https://jenkins.scylladb.com/job/scylla-master/job/artifacts/job/artifacts-rocky8-test/213/
https://jenkins.scylladb.com/job/scylla-master/job/artifacts-offline-install/job/artifacts-oel81-test/187/
https://jenkins.scylladb.com/job/scylla-master/job/artifacts-offline-install/job/artifacts-oel76-test/186/
The text was updated successfully, but these errors were encountered: