Skip to content

Commit

Permalink
Merge pull request #92 from galaxy-genome-annotation/gnb_launch_fix2
Browse files Browse the repository at this point in the history
genotebook: startup fixes
  • Loading branch information
hexylena authored Feb 20, 2024
2 parents 91ccbf9 + 9442679 commit 1429f00
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
21 changes: 19 additions & 2 deletions tools/genenotebook/launch_gnb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

set -e

echo "Running mongod: "
# Make sure the file always exists even on first grep
touch mongod.log

echo "Starting mongod, listening on unix socket in $(pwd)"
mongod --dbpath ./mongo_db/ --unixSocketPrefix "$(pwd)" --bind_ip fake_socket --logpath ./mongod.log --pidfilepath ./mongo.pid &

echo "Waiting while mongod starts up"
Expand All @@ -26,8 +29,15 @@ done;
TMP_STORAGE=$(pwd)/tmp_storage
mkdir "$TMP_STORAGE"

# Make sure the file always exists
touch gnb.log

export NODE_OPTIONS="--max-old-space-size=$((${GALAXY_MEMORY_MB:-8192} * 75 / 100))"

# Find free port at the last moment
export GNB_PORT=$(bash "$(dirname "${BASH_SOURCE[0]}")/find_free_port.sh")
echo "Mongod is ready, starting gnb now on port ${GNB_PORT} and with mongodb://${MONGO_URI}%2Fmongodb-27017.sock/genenotebook"

genoboo run --storage-path "$TMP_STORAGE" --port ${GNB_PORT} --mongo-url mongodb://$MONGO_URI%2Fmongodb-27017.sock/genenotebook > ./gnb.log 2>&1 &

export GNB_PID=$!
Expand All @@ -38,7 +48,8 @@ while ! grep -q "GeneNoteBook server started, serving" ./gnb.log; do

tries_gnb=$((tries_gnb + 1))

if [ "$tries_gnb" -ge 30 ]; then
# GNB can take a while to start depending on storage (accessing many many small js files)
if [ "$tries_gnb" -ge 150 ]; then
echo "Failed to launch GeneNoteBook:" 1>&2;
cat ./gnb.log 1>&2;
kill $GNB_PID $(<"./mongo.pid");
Expand All @@ -47,3 +58,9 @@ while ! grep -q "GeneNoteBook server started, serving" ./gnb.log; do

sleep 3
done;

# Make sure that gnb is working, and that it's serving on the expected port
curl "http://127.0.0.1:${GNB_PORT}/healthcheck" > /dev/null
grep -q "Healthcheck OK" ./gnb.log

echo "GNB is ready"
3 changes: 1 addition & 2 deletions tools/genenotebook/macros.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</requirements>
</xml>

<token name="@TOOL_VERSION@">0.4.12</token>
<token name="@TOOL_VERSION@">0.4.13</token>
<token name="@WRAPPER_VERSION@">@TOOL_VERSION@+galaxy0</token>

<xml name="citation">
Expand Down Expand Up @@ -37,7 +37,6 @@
For some unknwon reason, unixSocketPrefix needs an absolute path
-->
<token name="@START_GNB@"><![CDATA[
export GNB_PORT="\$(bash '$__tool_directory__/find_free_port.sh')";
export MONGO_URI="\$(pwd | sed 's|/|%2F|g')";
#if $existing
tar -xf '${existing}' mongo_db;
Expand Down

0 comments on commit 1429f00

Please sign in to comment.