add troubleshooting section on concurrency with containers (#5678)

This commit is contained in:
chipmonkclarity
2023-12-04 17:07:09 +02:00
committed by GitHub
parent dffa462003
commit 0555800818

View File

@ -94,3 +94,20 @@ Caused by:
./db-tools/mdbx_chk $(reth db path)/mdbx.dat | tee mdbx_chk.log ./db-tools/mdbx_chk $(reth db path)/mdbx.dat | tee mdbx_chk.log
``` ```
If `mdbx_chk` has detected any errors, please [open an issue](https://github.com/paradigmxyz/reth/issues) and post the output from the `mdbx_chk.log` file. If `mdbx_chk` has detected any errors, please [open an issue](https://github.com/paradigmxyz/reth/issues) and post the output from the `mdbx_chk.log` file.
### Concurrent database access error (using containers/Docker)
If you encounter an error while accessing the database from multiple processes and you are using multiple containers or a mix of host and container(s), it is possible the error is related to `PID` namespaces. You might see one of the following error messages.
```console
mdbx:0: panic: Assertion `osal_rdt_unlock() failed: err 1' failed.
```
or
```console
pthread_mutex_lock.c:438: __pthread_mutex_lock_full: Assertion `e != ESRCH || !robust' failed
```
If you are using Docker, a possible solution is to run all database-accessing containers with `--pid=host` flag.
For more information, check out the `Containers` section in the [libmdbx README](https://github.com/erthink/libmdbx#containers).