Future timeout when starting the sandbox with persistence

When I run the sandbox with persistence against a Postgres database I see the following error repeatedly on startup:

INFO: No ledger end found, assuming empty database. Skipping migration.
Exception in thread "main" java.util.concurrent.TimeoutException: Futures timed out after [1 minute]
        at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255)
        at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:259)
        at scala.concurrent.Await$.$anonfun$result$1(package.scala:215)
        at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
        at scala.concurrent.Await$.result(package.scala:142)
        at com.daml.resources.ProgramResource.$anonfun$run$1(ProgramResource.scala:40)
        at com.daml.resources.ProgramResource.$anonfun$run$1$adapted(ProgramResource.scala:29)
        at com.daml.logging.LoggingContext$.newLoggingContext(LoggingContext.scala:15)
        at com.daml.resources.ProgramResource.run(ProgramResource.scala:29)

Ultimately, the sandbox seems to start up properly, but should I be worried about those errors?

  1. Can you confirm that, as the log suggests, you are running against a pristine database?
  2. What SDK version are you using?
  3. Can you use the same JDBC connection string you are using in another tool and confirm that it works?

Yes, it’s freshly created.

v1.0.1

I don’t have a Java program that takes the exact connection string, but using psql with the same parameters I can see that the DB got initialized:

 Schema |                     Name                     | Type  |   Owner
--------+----------------------------------------------+-------+-----------
 public | configuration_entries                        | table | damlonsql
 public | contract_data                                | table | damlonsql
 public | contract_divulgences                         | table | damlonsql
 public | contract_key_maintainers                     | table | damlonsql
 public | contract_keys                                | table | damlonsql
 public | contract_observers                           | table | damlonsql
 public | contract_signatories                         | table | damlonsql
 public | contract_witnesses                           | table | damlonsql
 public | contracts                                    | table | damlonsql
 public | disclosures                                  | table | damlonsql
 public | flyway_schema_history                        | table | damlonsql
 public | ledger_entries                               | table | damlonsql
 public | ledger_flyway_schema_history                 | table | damlonsql
 public | ledger_log                                   | table | damlonsql
 public | ledger_meta                                  | table | damlonsql
 public | ledger_state                                 | table | damlonsql
 public | package_entries                              | table | damlonsql
 public | packages                                     | table | damlonsql
 public | parameters                                   | table | damlonsql
 public | participant_command_completions              | table | damlonsql
 public | participant_command_submissions              | table | damlonsql
 public | participant_event_flat_transaction_witnesses | table | damlonsql
 public | participant_event_witnesses_complement       | table | damlonsql
 public | participant_events                           | table | damlonsql
 public | parties                                      | table | damlonsql
 public | party_entries                                | table | damlonsql

So I’m wondering if those errors are even relevant. I haven’t tried submitting commands against it yet, so can’t say if it actually works.

You can probably ignore the error. It was fixed in PR #5564 and will be shipped as part of DAML SDK v1.1.1 (hopefully later today).

3 Likes