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

Build failing by docker #750

Closed
shakti-rajput opened this issue Aug 22, 2022 · 11 comments · Fixed by #752
Closed

Build failing by docker #750

shakti-rajput opened this issue Aug 22, 2022 · 11 comments · Fixed by #752

Comments

@shakti-rajput
Copy link

shakti-rajput commented Aug 22, 2022

I tried setting up qlever using simple steps to build using docker as given in the documentation of Docker and guide on quickstart.

export QLEVER_HOME=/local/data/qlever
mkdir $QLEVER_HOME
cd $QLEVER_HOME
git clone --recursive -j8 https://github.com/ad-freiburg/qlever qlever-code
cd qlever-code
docker build -t qlever . [Getting error in this last step]

I recently saw the changes in this file. with this commit
Parse triplesBlock and solutionModifier using ANTLR (#732)

Please help in building and setting it up.

#18 233.1 [412/616] Building CXX object src/parser/sparqlParser/CMakeFiles/sparqlParser.dir/SparqlQleverVisitor.cpp.o
#18 233.1 FAILED: src/parser/sparqlParser/CMakeFiles/sparqlParser.dir/SparqlQleverVisitor.cpp.o
#18 233.1 /usr/bin/c++ -DLOGLEVEL=3 -D_PARALLEL_SORT -I/app/third_party/antlr4/runtime/Cpp/runtime/src -I/app/third_party/googletest/googletest/include -I/app/third_party/googletest/googlemock/include -I/app/third_party/json -I/app/third_party/ctre/include -I/app/third_party/abseil-cpp -I/app/src -isystem /app/third_party/stxxl/include -isystem /app/build/third_party/stxxl/include -isystem /app/third_party/stxxl/extlib/foxxll -isystem /app/build/third_party/stxxl/extlib/foxxll -isystem /app/third_party/stxxl/extlib/foxxll/extlib/tlx -isystem /app/third_party/re2 -Wall -Wextra -fopenmp -O3 -DNDEBUG -O3 -fcoroutines -fdiagnostics-color=always -std=gnu++20 -MD -MT src/parser/sparqlParser/CMakeFiles/sparqlParser.dir/SparqlQleverVisitor.cpp.o -MF src/parser/sparqlParser/CMakeFiles/sparqlParser.dir/SparqlQleverVisitor.cpp.o.d -o src/parser/sparqlParser/CMakeFiles/sparqlParser.dir/SparqlQleverVisitor.cpp.o -c /app/src/parser/sparqlParser/SparqlQleverVisitor.cpp
#18 233.1 c++: fatal error: Killed signal terminated program cc1plus
#18 233.1 compilation terminated.

I found a solution to it on StackOverflow.
https://stackoverflow.com/questions/72632973/make-failing-with-not-used-function

@shakti-rajput
Copy link
Author

@Qup42

@joka921
Copy link
Member

joka921 commented Aug 22, 2022

Hi,
I think that your machine ran out of memory and killed one of the compiler processes (That's how I read the kill signal terminated stuff.
How much RAM and what kind of CPU (how many cores/hardware threads) are you using?
Maybe you can reduce the degree of parallelism used to compile in the Dockerfile
(replace the ninja command at the end of line 19 to ninja -j <numThreads> where numThreads is smaller than your CPU count. Let us know if this helps.

@shakti-rajput
Copy link
Author

Hello,
Thanks for replying so fast. I have an I7 10th generation. 8 cores. 16 Logical Cores. @2.20 GHz. 16 GB RAM.
In your comment " is smaller than your CPU count," are u referring to the number of cores?

@joka921
Copy link
Member

joka921 commented Aug 22, 2022

I would suggest you try out. I think on your machine, the default (ninja without arguments) runts 16 threads, which might be too much for 16GB of RAM, especially if other stuff is still running on the machine. Maybe try ninja -j8 or ninja -j4 (less threads will increase the compilation time, but decrease the amount of memory used and therefore the probability of crashes like this.
Let me know what worked for you, or if you run into other troubles.

@hannahbast
Copy link
Member

You should really use https://github.com/ad-freiburg/qlever-control , as is also recommended in the QLever README.md

If you use QLever via docker, you don't have to compile anything.

@shakti-rajput
Copy link
Author

docker build -t qlever .

Thank you, @joka921.
This slight modification worked. ninja -j8 for me.

@shakti-rajput
Copy link
Author

You should really use https://github.com/ad-freiburg/qlever-control , as is also recommended in the QLever README.md

If you use QLever via docker, you don't have to compile anything.

I was trying to use qlever commands provided on the page, but it was not recognizing the qlever as the command in terminal.

Now also, even after successfully running docker build -t qlever . I am not able to run any qlever command.
It is displaying the sudo: qlever: command not found. Not sure how to start it in local.

I arranged the folder structure in the way as mentioned in the qlever-control
Cloned https://github.com/ad-freiburg/qlever in cd qlever/ and https://github.com/ad-freiburg/qlever-control in cd qlever/qlever-control
Data I unzipped in cd qlever/
using

wget https://github.com/wallscope/olympics-rdf/raw/master/data/olympics-nt-nodup.zip
unzip olympics-nt-nodup.zip

These were the instructions -
Download the qlever script anywhere you like and call it once with the full path. The script will then tell you what else to do. We recommend that you have a directory "qlever" for all things QLever on your machine, with subdirectories for the different components, for example: "qlever-control" (this repository), "qlever-code" (if you want to download the code), "qlever-indices" (with a subfolder for each of your datasets and indices), etc. But it's not a must, you can organize your files any way you like.

Not related to my query but I could not find the repo qlever-indices

@hannahbast
Copy link
Member

hannahbast commented Aug 23, 2022

The instructions say: "Download the qlever script anywhere you like and call it once with the full path."

PS: I revised the README.md now. It was missing some new features of the qlever script.

@shakti-rajput
Copy link
Author

Thank you It worked. I was able to understand from ReadMe.

After completion, I got this message.

QLEVER CONFIG

Checking your PATH ...
Added the directory "/mnt/c/Users/hp/Desktop/Freiburg/Semester3/HannaBastProject/qlever-code/qlever-control" to your PATH

Setting up bash autocompletion ...
Done, number of completions: 35

Creating new Qleverfile ...
Copied pre-configured Qleverfile for "olympics" into current directory.

Setup is complete
Type "qlever" and use autocompletion to see which actions are available. Add a
"show" in the end to see what an action does without executing it (for example,
"qlever index show"). Typing "qlever" without arguments gives some basic help
and pointers for further help. Edit your local "Qleverfile" to change settings.

@shakti-rajput
Copy link
Author

Can we include this in the documentation of https://github.com/ad-freiburg/qlever/blob/master/docs/quickstart.md?

(replace the ninja command at the end of line 19 to ninja -j where numThreads is smaller than your core count. Maybe try ninja -j8
To avoid developer's error?

@hannahbast
Copy link
Member

I have used the occasion to overhaul the way the qlever script provides help: ad-freiburg/qlever-control@7fd542a

The quickstart.md script is outdated

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

Successfully merging a pull request may close this issue.

3 participants