1

Installed Docker on Mac and trying to run Vespa on Docker following steps specified in following link https://docs.vespa.ai/documentation/vespa-quick-start.html

I did n't had any issues till step 4. I see vespa container running after step 2 and step 3 returned 200 OK response.

But Step 5 failed to return 200 OK response. Below is the command I ran on my terminal curl -s --head http://localhost:8080/ApplicationStatus

I keep getting

curl: (52) Empty reply from server whenever I run without -s option.

So I tried to see listening ports inside my vespa container and don't see anything for 8080 but can see for 19071(used in step 3)

➜  ~ docker exec vespa bash -c 'netstat -vatn| grep 8080'  

➜  ~ docker exec vespa bash -c 'netstat -vatn| grep 19071'

tcp        0      0 0.0.0.0:19071           0.0.0.0:*               LISTEN     

Below doc has info related to vespa ports

https://docs.vespa.ai/documentation/reference/files-processes-and-ports.html

I'm assuming port 8080 should be active after docker run(step 2 of quick start link) and can be accessed outside container as port mapping is done. But I don't see 8080 port active inside container in first place. A'm I missing something. Do I need to perform any additional step than mentioned in quick start? FYI I installed Jenkins inside my docker and was able to access outside container via port mapping. But not sure why it's not working with vespa.I have been trying from quiet sometime but no progress. Please advice me if I'm missing something here.

bigdata123
  • 453
  • 2
  • 8
  • 24

2 Answers2

4

You have too low memory for your docker container, "Minimum 6GB memory dedicated to Docker (the default is 2GB on Macs).". See https://docs.vespa.ai/documentation/vespa-quick-start.html

The deadlock detector warnings and failure to get configuration from configuration server (which is likely oom killed) indicates that you are too low on memory.

Jo Kristian Bergum
  • 2,984
  • 5
  • 8
  • In step 3 you deploy configuration which describes the application, when this is activated the vespa configuration sentinel process fires up a set of processes which all requires memory (container, searchnode +++) and if the container cannot start you won't be able to connect to port 8080. – Jo Kristian Bergum Dec 10 '18 at 09:48
  • thanks Kristian. It worked after increasing docker memory to 6gb – bigdata123 Dec 10 '18 at 13:47
2

My guess is that your jdisc container had not finished initialize or did not initialize properly? Did you try to check the log?

docker exec vespa bash -c '/opt/vespa/bin/vespa-logfmt /opt/vespa/logs/vespa/vespa.log'

This should tell you if there was something wrong. When it is ready to receive requests you would see something like this:

[2018-12-10 06:30:37.854] INFO    : container        Container.org.eclipse.jetty.server.AbstractConnector   Started SearchServer@79afa369{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[2018-12-10 06:30:37.857] INFO    : container        Container.org.eclipse.jetty.server.Server  Started @10280ms
[2018-12-10 06:30:37.857] INFO    : container        Container.com.yahoo.container.jdisc.ConfiguredApplication  Switching to the latest deployed set of configurations and components. Application switch number: 0
[2018-12-10 06:30:37.859] INFO    : container        Container.com.yahoo.container.jdisc.ConfiguredApplication  Initializing new set of configurations and components. Application switch number: 1
Frode Lundgren
  • 336
  • 1
  • 4