stellar / quickstart

Home of the stellar/quickstart docker image for development and testing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

soroban-rpc logs that it isn't ready even when it is

leighmcculloch opened this issue · comments

What version are you using?

b04879d

What did you do?

docker run --rm \
  --name stellar \
  -p 8000:8000 \
  stellar/quickstart:soroban-dev@sha256:1b7317be1eadc28461f4cc9ac93b5c223ccd638b2628b3693bcec6ac46fbc618 \
  --futurenet --enable-soroban-rpc

What did you expect to see?

I expected to see all the services, including rpc, start up and be healthy and ready for use.

What did you see instead?

Indeed all the services come up, including rpc, and rpc is healthy:

❯ ht --check-status POST :8000/soroban/rpc jsonrpc=2.0 method=getHealth id=asdf
HTTP/1.1 200 OK
Accept-Post: application/json
Connection: keep-alive
Content-Length: 59
Content-Type: application/json
Date: Wed, 24 May 2023 23:13:14 GMT
Server: nginx/1.18.0 (Ubuntu)
Vary: Origin

{
    "jsonrpc": "2.0",
    "id": "asdf",
    "result": {
        "status": "healthy"
    }
}

However, the quickstart image continues to log that the rpc is not ready. The not ready logs continue to appear, even once rpc is ready.

...
stellar-core: Catching up; Catching up to ledger 3967: Applying buffered ledgers: apply ledger 3979
stellar-core: Synced!
horizon: ingestion caught up
soroban rpc: waiting for ready state, 1 minutes...
soroban rpc: waiting for ready state, 2 minutes...
soroban rpc: waiting for ready state, 3 minutes...
soroban rpc: waiting for ready state, 4 minutes...
...

cc @sreuland @tsachiherman @stellar/platform-committers

This issue doesn't exist in the previous version of quickstart released on soroban preview release 8, so it appears to have been introduced since then.

Seems like the core is crashlooping against futurenet. Works fine in standalone.

...
stellar-core: Catching up; Waiting for trigger ledger: 14336/14337, ETA: 5s
stellar-core: Catching up; Catching up to ledger 14335: Downloading state file history/00/00/37/history-0000377f.json for ledger 14207
stellar-core: Catching up; Catching up to ledger 14335: downloading and verifying buckets: 10/11 (90%)
supervisor: 2023-05-25 14:19:01,352 INFO exited: stellar-core (terminated by SIGABRT; not expected)
supervisor: 2023-05-25 14:19:01,352 INFO reaped unknown pid 1007 (exit status 0)
supervisor: 2023-05-25 14:19:01,356 INFO spawned: 'stellar-core' with pid 1008
stellar-core: Connected
...

Edit: After a few times, I don't see this anymore, I just see the original issue @leighmcculloch posted. Weird.

commented

I think the rpc service is more strict now on http url request path routing, the problem is here:

https://github.com/stellar/quickstart/blob/master/start#L580

quickstart is posting the health check request to /soroban/rpc and the rpc service is 404'ing that now, the behavior used to be that it would ignore any url paths after / and route to handlers for method name routing, we need to to change that to just post to /

The core crashing issue is being tracked in: