Guppy service not starting

Hello,

We are testing Gen3 and I am using the docker-compose method to stand up a test environment. All services have come up with the exception of guppy, data-portal and nginx. I am seeing the following in the docker logs for guppy:

..snip..
"indices": [
{
"index": "etl",
"type": "case"
},
{
"index": "file",
"type": "file"
}
],
"configIndex": "etl_array-config",
"authFilterField": "auth_resource_path",
"aggregationIncludeMissingData": true,
"missingDataAlias": "no data"
},
"port": 80,
"path": "/graphql",
"arboristEndpoint": "http://arborist-service",
"tierAccessLevel": "private",
"tierAccessLimit": 1000,
"logLevel": "INFO",
"enableEncryptWhiteList": false,
"encryptWhitelist": [],
"analyzedTextFieldSuffix": ".analyzed",
"matchedTextHighlightTagName": "em",
"allowedMinimumSearchLen": 2
}
[05:03:01] INFO: [ES.initialize] getting mapping from elasticsearch...
(node:7) UnhandledPromiseRejectionWarning: Error: [ES.initialize] error getting mapping from ES index "file": index_not_found_exception
at client.indices.getMapping.then.err (/guppy/dist/server/es/index.js:171:13)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:7) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[05:03:01] INFO: [ES] connected to elasticsearch at http://esproxy-service:9200.

Am I supposed to create these Index's manually? If so, what is the correct way to do this?

Thanks,
-J

Here is a link to the logs dump:

Any help would be greatly appreciated!

Hi @jagga13 and welcome to the Gen3 Forum!
Thank you for your question. We are following up on this question with our developers and get back to you. In the meantime, we were wondering if you have seen the following two sections in our readme file:

  1. https://github.com/uc-cdis/compose-services#docker-elasticsearch
  2. https://github.com/uc-cdis/compose-services#start-running-your-local-gen3-docker-compose-environment

Could you run docker ps and show what containers you have running?

Thanks for the reply. Yes, I have seen those sections and followed these instructions to try to stand up the gen3 environment. As a new user it is limiting me to 2 url's and pasting the output of docker ps directly in this thread is not working so I have taken a screenshot and attaching it to this reply.

Thanks for your help on getting this working.

Regards,
-Simran

Hi @jagga13,

Thank you for the screenshot.

Basically nginx has a rule for guppy, so there needs to be a guppy service running or nginx will crash. Guppy needs an index to start, which involves actually submitting data, so we should make sure guppy is not in nginx config. We can pull it out of the docker-compose.yml file until data is submitted so an ETL can be run and it can start. Try to comment out this and this. section and re-start with docker-compose down and docker-compose up.

Thanks but we will eventually need these services. How can I create the required indexes so that we can bring up the guppy service even if there is no data yet. It would be good to have all these services up and running.

Hi @jagga13,

thank you for your reply and for sharing your concern.

Commenting the section out would allow you to start up other services. After it’s started up you should be able to submit data as usual with the sheepdog submission page. Since Guppy sets up the explorer page, it’s probably easiest to temporarily remove Guppy until the rest of the services can be run and data is submitted.

Then you can uncomment the lines, run https://github.com/uc-cdis/compose-services/blob/master/guppy_setup.sh, and start Guppy.

ETL won't create indices if there is no data and we have not tested if a manually created empty Elastic Search index will work with Guppy, so we would not recommend. However, we would love for you to try it and let us know if it worked.

Please also make sure you have the default dictionary and gitops.json files as they work together.

Best wishes!

Just a quick hit, I'll try to follow up, but we ran into the same, and found guppy_setup.sh did the trick..you should find that under compose-services

1 Like