Bitcoinj OverlappingFileLockException в docker compose - PullRequest
1 голос
/ 04 мая 2019

Я тестирую приложение Bitcoinj в docker compose, с двумя кошельками.Один запускается правильно, второй выбрасывает Caused by: java.io.IOException: org.bitcoinj.store.BlockStoreException: java.nio.channels.OverlappingFileLockException.

Файлы кошелька и SPV монтируются в каждый док-контейнер и располагаются в корневом каталоге рабочей области ./docker-volumes/wallet-app/... и ./docker-volumes/wallet-test/....

* 1007.* Насколько я понимаю, OverlappingFileLockException должно быть выдано, когда одна и та же JVM пытается заблокировать один и тот же файл несколько раз.В моем случае он выбрасывается, когда 2 контейнера, по-видимому, блокируют 2 разных файла в разных каталогах, поэтому это похоже на проблему с компоновкой докера, а не на Bitcoinj или другой код.

Мои тома монтируются как - ./docker-volumes/wallet-app:/wallet-app и - ./docker-volumes/wallet-test:/wallet-test в docker-compose.yml

Либо один из кошельков запускается самостоятельно самостоятельно.

После перезапуска сбойного контейнера с помощью docker-compose restart wallet-... пару раз - он запускается нормально, и я могу запустить тесты.

Я подозреваю, что это связано с монтированием томов (хотя мои контейнеры все еще должны работать в 2-х отдельных JVM, как я себе представляю), но не смог найти ничего особенно полезного в докерской документации.Любые советы будут оценены.Спасибо.

РЕДАКТИРОВАТЬ: соответствующие службы docker-compose.yml

version: '3'
services:

  listener:
    image: listener:0.1
    environment:
    - NOTIFIER_URL=http://notifications:9000
    - COIN_NET=test
    - WALLET_PATH=/wallet
    - MONGO_HOST=mongo
    - MONGO_PORT=27017
    - MONGO_DB=test_db
    - RMQ_HOST=rabbit
    - RMQ_PORT=5672
    - RMQ_USERNAME=user
    - RMQ_PASSWORD=password
    - RMQ_ROUTING=event_producer
    - RMQ_EXCHANGE=amq.direct
    volumes:
    - ./docker-volumes/wallet-app:/wallet
    depends_on:
    - mongo
    - notifications
    - rabbit

  listener-test:
    image: test:0.1
    volumes:
    - ./docker-volumes/wallet-test:/wallet-test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...