#!/usr/local/bin/bash

# Copyright (c) 2018-2022, diyIT.org
# All rights reserved.
#
# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License")
# https://diyit.org/license/
#
#

Q=`netstat -LAan | grep "*.3000" | cut -f3 -d" " | cut -f1 -d/`
# Q is null if gitea service is not running

# 1537 is max stuck recvQ qlen limit when logging start:
# sonewconn: pcb 0xfffff804b9f73d58: Listen queue overflow: 1537 already in queue awaiting acceptance (30 occurrences)

if [ ! $Q ] || [ $Q -ge 100 ]; then
    echo "restarting gitea stuck at $Q"
    tail /var/log/gitea/gitea.log
    kill -9 `pgrep gitea` ; sleep 2 ; service gitea start
fi

# crontab - 5 * * * * /mnt/config/gitea-restart.sh
