Skip to content
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

java.lang.IllegalAccessError: class io.questdb.std.Numbers (in module io.questdb) cannot access class jdk.internal.math.FDBigInteger (in module java.base) #475

Closed
varunbpatil opened this issue Jul 2, 2020 · 4 comments
Assignees
Labels
Bug Incorrect or unexpected behavior

Comments

@varunbpatil
Copy link

varunbpatil commented Jul 2, 2020

Describe the bug
I have a table with 3855 columns where one column is TIMESTAMP and all others are either INT or DOUBLE.
I am running QuestDB 5.0.1 via docker.
Tried running the following SQL query from both psql as well as UI.

SELECT * FROM test LIMIT 1;

Error in docker logs:

java.lang.IllegalAccessError: class io.questdb.std.Numbers (in module io.questdb) cannot access class jdk.internal.math.FDBigInteger (in module java.base) because module java.base
does not export jdk.internal.math to module io.questdb
        at io.questdb.std.Numbers.append(Numbers.java:2008)
        at io.questdb.std.Numbers.append(Numbers.java:246)
        at io.questdb.std.str.AbstractCharSink.put(AbstractCharSink.java:104)
        at io.questdb.cutlass.http.HttpResponseSink$ResponseSinkImpl.put(HttpResponseSink.java:551)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.putDoubleValue(JsonQueryProcessorState.java:650)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.doQueryRecord(JsonQueryProcessorState.java:440)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.doRecordFetchLoop(JsonQueryProcessorState.java:490)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.doFirstRecordLoop(JsonQueryProcessorState.java:371)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.onQueryPrefix(JsonQueryProcessorState.java:603)
        at io.questdb.cutlass.http.processors.JsonQueryProcessorState.resume(JsonQueryProcessorState.java:714)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.doResumeSend(JsonQueryProcessor.java:188)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.executeSelect(JsonQueryProcessor.java:234)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.executeNewSelect(JsonQueryProcessor.java:341)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.compileQuery(JsonQueryProcessor.java:314)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.execute0(JsonQueryProcessor.java:111)
        at io.questdb.cutlass.http.processors.JsonQueryProcessor.onRequestComplete(JsonQueryProcessor.java:148)
        at io.questdb.cutlass.http.HttpConnectionContext.handleClientRecv(HttpConnectionContext.java:358)
        at io.questdb.cutlass.http.HttpConnectionContext.handleClientOperation(HttpConnectionContext.java:159)
        at io.questdb.cutlass.http.HttpServer$1.lambda$$0(HttpServer.java:84)
        at io.questdb.network.AbstractIODispatcher.processIOQueue(AbstractIODispatcher.java:147)
        at io.questdb.cutlass.http.HttpServer$1.run(HttpServer.java:88)
        at io.questdb.mp.Worker.run(Worker.java:107)

To Reproduce
Steps to reproduce the behavior:

  1. Run QuestDB docker - docker run --rm -it --net=host questdb/questdb
  2. Run psql docker - docker run --rm -it postgres psql -h x.x.x.x -p 8812 -U admin -W -d qdb
  3. Import a csv file with 3855 columns where one column is TIMESTAMP and all others are either INT or DOUBLE.
  4. Run the following SELECT query in psql/UI - qdb=> SELECT * FROM test LIMIT 1;

Expected behavior
Expect to see one row with all 3855 columns.

Environment (please complete the following information):

  • Docker version 19.03
  • QuestDB version 5.0.1
@bluestreak01
Copy link
Member

bluestreak01 commented Jul 2, 2020

command line argument is missing in docker entry point, try adding entry point:

### COMMAND REMOVED ###

EDIT (mpsq): I removed the command since it was invalid, please check the next comment for the solution

@mpsq mpsq added the Bug Incorrect or unexpected behavior label Jul 2, 2020
@mpsq
Copy link
Contributor

mpsq commented Jul 2, 2020

@varunbpatil

This is happening because our Docker image does not expose certain JDK classes we rely on, this is a bug. We will fix it and deploy a new patch of our Docker image, in the meantime you can run the container with:

docker run --rm -it --net=host questdb/questdb /app/bin/java -m io.questdb/io.questdb.ServerMain --add-exports java.base/jdk.internal.math=io.questdb -d /root/.questdb

Let me know if this fixes the issue.

@varunbpatil
Copy link
Author

@mpsq I'm still getting the same error with the above docker command.
Attaching a file with the docker logs (truncated to hide column names).
docker_logs.txt

@mpsq mpsq self-assigned this Jul 8, 2020
@mpsq
Copy link
Contributor

mpsq commented Jul 8, 2020

@varunbpatil My bad, the parameters are in the wrong order, can you try with:

docker run --rm -it --net=host questdb/questdb /app/bin/java --add-exports java.base/jdk.internal.math=io.questdb -m io.questdb/io.questdb.ServerMain -d /root/.questdb

Instead ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Incorrect or unexpected behavior
Projects
None yet
Development

No branches or pull requests

3 participants