PromucFlow_constructor/deploy/docker/fs/opt/appsmith
Abhijeet 43b675eb6d
chore: Add postgres dependency for server to startup (#36585)
## Description
As in the past we have seen the corruption of postgres DB which is being
used for temporal we want to make sure we have a retry mechanism in
place if:
1. `APPSMITH_DB_URL` is pointing to postgres url
2. Postgres is waiting in recovery mode

As per local testing when the docker container is abruptly shutdown via
`docker rm -f {container_name}` or `docker kill {container_name}` or
even via docker desktop we end up in state where postgres goes into
recovery state.
logs:
```
2024-09-27 08:02:49 backend stdout | SQL State  : 57P03
2024-09-27 08:02:49 backend stdout | Error Code : 0
2024-09-27 08:02:49 backend stdout | Message    : FATAL: the database system is starting up
```
Currently we have implemented polling mechanism, but we will keep
looking for better alternative here if we can opt for.

Note: 
1. With release dump this is taking ~300sec to get out of that state and
start accepting the connections.
2. With the existing implementation without retries server dies down
within 60sec.
```
INFO exited: backend (exit status 1; not expected)
INFO gave up: backend entered FATAL state, too many start retries too quickly
```
Reference doc:
https://www.notion.so/appsmith/Postgres-critical-scenarios-668f49c96aef40308e24c2a8d6b1137c

/test Sanity

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11100944184>
> Commit: 9dbbe4b22ba12aa82c385ad0eef3cc3d4876f217
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11100944184&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 30 Sep 2024 07:26:41 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced new functions for enhanced handling of PostgreSQL database
connections, including availability checks and parameter extraction.
	- Added a new utility script for managing PostgreSQL connections.
- **Bug Fixes**
- Implemented a retry mechanism for PostgreSQL server availability
checks to ensure more reliable connections.
- **Tests**
- Added unit tests to validate the functionality of the PostgreSQL
parameter extraction logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-30 12:57:47 +05:30
..
baseline-ce chore: Add mover script for Mongo to postgres migration (#36458) 2024-09-25 15:22:02 +05:30
templates feat: Make images adaptable to support both Postgres and MongoDB uris (#36424) 2024-09-19 21:45:46 +05:30
utils chore: Add mover script for Mongo to postgres migration (#36458) 2024-09-25 15:22:02 +05:30
auto_heal.sh chore: Fix auto heal script crash if curl times out (#29472) 2023-12-08 15:22:26 +05:30
caddy-reconfigure.mjs chore: Switch rate limit key to client_ip (#36606) 2024-09-30 12:43:20 +05:30
diagnostics.sh Add a diagnostic script to assist in the debugging of issues with appsmith implementation (#35640) 2024-08-29 14:06:30 +05:30
entrypoint.sh feat: Make images adaptable to support both Postgres and MongoDB uris (#36424) 2024-09-19 21:45:46 +05:30
generate-infra-details.sh chore: Update incorrect docker tagging and add fargate tag in deployment telemetry (#33472) 2024-05-27 17:16:13 +05:30
healthcheck.sh chore: Health check only backend, caddy and RTS (#32891) 2024-04-25 10:36:13 +05:30
install_docker.sh chore: replaced decommisioned urls with new ones (#27786) 2023-10-05 12:07:18 +05:30
JFR-recording-24-hours.sh chore: JFR 24 hour script with logs file (#36041) 2024-09-13 12:46:54 +05:30
mongodb-fixer.sh chore: Use tlog instead of echo in more places (#34182) 2024-06-11 20:10:33 +05:30
pg-upgrade.sh fix: cleanup stale postgres postmaster.pid (#35171) 2024-07-26 12:52:49 +05:30
pg-utils.sh chore: Add postgres dependency for server to startup (#36585) 2024-09-30 12:57:47 +05:30
pull_resource.sh
record-heap-dump.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
record-thread-dump.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
run-caddy.sh chore: Switch to vanilla Caddy, when rate limiting is disabled (#33387) 2024-05-24 13:11:56 +05:30
run-java.sh chore: Add postgres dependency for server to startup (#36585) 2024-09-30 12:57:47 +05:30
run-postgres.sh chore: Add Postgres bin to PATH (#34265) 2024-06-17 12:53:34 +05:30
run-starting-page-init.sh feat: Caddy (#28081) 2023-12-05 10:47:36 +05:30
run-with-env.sh chore: Use tlog instead of echo in more places (#34182) 2024-06-11 20:10:33 +05:30
start_app.sh
starting-page-init.py feat: add ability to change application logs location (#31926) 2024-03-20 19:45:48 +05:30
thread-profile-start.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
thread-profile-stop.sh chore: Added multiple scripts to trigger profiles (#35546) 2024-08-12 19:29:47 +05:30