CrateDB 4.6.6 source code setup on CentOs

I am doing the source code setup of Crate version 4.6.6 in CentOS Linux 7 (Core). I have followed link crate/devs/docs/basics.rst at 4.6.6 · crate/crate · GitHub.

crate version: 4.6.6
java version: 11
python version: Python 3.6.8

I have created “crate” user for the setup.
Build is successful on executing the below command ./gradlew compileJava.
After that I have run the ./gradlew app:run. On executing the app:run command I am getting an below error.

Please guide me how can I do the setup.

Below is the error:

<============-> 99% EXECUTING [7m 54s]
<============-> 99% EXECUTING [10m 1s]

[2021-12-22T11:06:25,364][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [Hochzinödl] fatal error in thread [crate-udc], exiting
java.lang.ExceptionInInitializerError: null
        at jdk.internal.icu.lang.UCharacter.getUnicodeVersion(UCharacter.java:419) ~[?:?]
        at jdk.internal.icu.text.StringPrep.<init>(StringPrep.java:228) ~[?:?]
        at java.net.IDN.<clinit>(IDN.java:240) ~[?:?]
        at javax.net.ssl.SNIHostName.<init>(SNIHostName.java:99) ~[?:?]
        at sun.security.ssl.Utilities.rawToSNIHostName(Utilities.java:110) ~[?:?]
        at sun.security.ssl.Utilities.addToSNIServerNameList(Utilities.java:57) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.useImplicitHost(SSLSocketImpl.java:1627) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.doneConnect(SSLSocketImpl.java:1586) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:301) ~[?:?]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:177) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:497) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:600) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:379) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:189) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1232) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1120) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:175) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1653) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1577) ~[?:?]
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527) ~[?:?]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308) ~[?:?]
        at io.crate.udc.ping.PingTask.run(PingTask.java:142) ~[crate-server.jar:?]
        at java.util.TimerThread.mainLoop(Timer.java:556) ~[?:?]
        at java.util.TimerThread.run(Timer.java:506) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.io.InputStream.available()" because "is" is null
        at jdk.internal.icu.impl.ICUBinary.getRequiredData(ICUBinary.java:94) ~[?:?]
        at jdk.internal.icu.impl.UCharacterProperty.<init>(UCharacterProperty.java:527) ~[?:?]
        at jdk.internal.icu.impl.UCharacterProperty.<clinit>(UCharacterProperty.java:611) ~[?:?]
        ... 25 more

> Task :app:run FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:run'.
Process 'command '/home/crate/.gradle/caches/transforms-3/119c0aec801adfec1afe61a2c524b512/transformed/linux-16.0.2-x64.tar.gz/bin/java'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.3.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 10m 15s

Hi @nisha,

can you give me a rough indication what goal you want to achieve? Why you are doing the development setup for crate?

Cannot tell exactly what the problem is but I would try to run compileJava and app:run again with a newer version of python (according to basic setup you need at least python 3.7—you use 3.6.8) and with a newer version of java (e.g. JDK 17)

Hi,

Thanks for the reply.

CrateDb 4.6.6 source code setup has built successfully.

I am using the CrateDB3.0.5 setup on production environment. So I need to develop the similar development environment of CrateDB 3.0.5. After that I need to update the log4j2 in the CrateDB Ver.3.0.5 .

Could you please help in the setup of 3.0.5 version.

I am facing the below error.

Task :core:compileJava
/home/crate/crate-3.0.5/core/src/main/java/io/crate/Build.java:24: error: package org.elasticsearch.common.io.stream does not exist
import org.elasticsearch.common.io.stream.StreamInput;
                                         ^
/home/crate/crate-3.0.5/core/src/main/java/io/crate/Build.java:25: error: package org.elasticsearch.common.io.stream does not exist
import org.elasticsearch.common.io.stream.StreamOutput;
                                         ^
/home/crate/crate-3.0.5/core/src/main/java/io/crate/Build.java:26: error: package org.joda.time does not exist
import org.joda.time.DateTimeZone;
                    ^
/home/crate/crate-3.0.5/core/src/main/java/io/crate/Build.java:27: error: package org.joda.time.format does not exist
import org.joda.time.format.ISODateTimeFormat;
                           ^
/home/crate/crate-3.0.5/core/src/main/java/io/crate/Build.java:84: error: cannot find symbol
    public static void writeBuildTo(Build build, StreamOutput out) throws IOException {
                                                 ^

I think, it is error related with Elasticsearch. Could you please guide how to resolve this error in the setup of 3.0.5 version.

Hi @nisha,

Cool, that it worked :raised_hands:

I’m sorry but we no longer support CrateDB 3.0.5 (released in July 2018❗️).

Regarding log4j I highly recommend to enable log4j2.formatMsgNoLookups setting as explained in our info post. With this change you should be able to mitigate this specific vulnerability.

Furthermore I recommend to start planning and execute your upgrade path to update CrateDB to the most recent version.

1 Like