mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
add troubleshooting section on concurrency with containers (#5678)
This commit is contained in:
@ -93,4 +93,21 @@ Caused by:
|
|||||||
make db-tools
|
make db-tools
|
||||||
./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).
|
||||||
Reference in New Issue
Block a user