Opensearch FileSystemException: /usr/share/opensearch/data/nodes/0: Not a directory

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
I have tried all the versions of docker image

Describe the issue:
Starting an opensearch container throws a java.nio.file.FileSystemException: /usr/share/opensearch/data/nodes/0: Not a directory error
nodes is a file not a directory when I checked the files
even after using latest docker image, the issue is still there
→ I have tried removing all the volumes and images from docker and tried again
→ Restarted the docker multiple times

Configuration:

    image: opensearchproject/opensearch:latest
    container_name: openmetadata_opensearch
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms1024m -Xmx1024m
      - plugins.security.disabled=true
    networks:
      - local_app_net
    expose:
      - 9200
      - 9300
    ports:
      - "9200:9200"
      - "9300:9300"
    healthcheck:
      test: "curl -s http://localhost:9200/_cluster/health?pretty | grep status | grep -qE 'green|yellow' || exit 1"
      interval: 15s
      timeout: 10s
      retries: 10
    volumes:
      - es-data:/usr/share/opensearch/data

Relevant Logs or Screenshots:

org.opensearch.bootstrap.StartupException: OpenSearchException[failed to bind service]; nested: FileSystemException[/usr/share/opensearch/data/nodes/0: Not a directory];
	at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:182) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:169) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:100) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138) ~[opensearch-cli-1.3.20.jar:1.3.20]
	at org.opensearch.cli.Command.main(Command.java:101) ~[opensearch-cli-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:135) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:101) ~[opensearch-1.3.20.jar:1.3.20]
Caused by: org.opensearch.OpenSearchException: failed to bind service
	at org.opensearch.node.Node.<init>(Node.java:965) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.node.Node.<init>(Node.java:319) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:242) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:242) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:412) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:178) ~[opensearch-1.3.20.jar:1.3.20]
	... 6 more
Caused by: java.nio.file.FileSystemException: /usr/share/opensearch/data/nodes/0: Not a directory
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:100) ~[?:?]
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[?:?]
	at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389) ~[?:?]
	at java.nio.file.Files.createDirectory(Files.java:690) ~[?:?]
	at java.nio.file.Files.createAndCheckIsDirectory(Files.java:797) ~[?:?]
	at java.nio.file.Files.createDirectories(Files.java:783) ~[?:?]
	at org.opensearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:301) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:239) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.env.NodeEnvironment.<init>(NodeEnvironment.java:299) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.node.Node.<init>(Node.java:414) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.node.Node.<init>(Node.java:319) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:242) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:242) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:412) ~[opensearch-1.3.20.jar:1.3.20]
	at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:178) ~[opensearch-1.3.20.jar:1.3.20]
	... 6 more
uncaught exception in thread [main]
OpenSearchException[failed to bind service]; nested: FileSystemException[/usr/share/opensearch/data/nodes/0: Not a directory];
Likely root cause: java.nio.file.FileSystemException: /usr/share/opensearch/data/nodes/0: Not a directory
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389)
	at java.base/java.nio.file.Files.createDirectory(Files.java:690)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:797)
	at java.base/java.nio.file.Files.createDirectories(Files.java:783)
	at org.opensearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:301)
	at org.opensearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:239)
	at org.opensearch.env.NodeEnvironment.<init>(NodeEnvironment.java:299)
	at org.opensearch.node.Node.<init>(Node.java:414)
	at org.opensearch.node.Node.<init>(Node.java:319)
	at org.opensearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:242)
	at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:242)
	at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:412)
	at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:178)
	at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:169)
	at org.opensearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:100)
	at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
	at org.opensearch.cli.Command.main(Command.java:101)
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:135)
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:101)

Hi @lucifer,

Have you tried checking your volume with docker volume inspect es-data or completely removing it and starting fresh with docker-compose down -v (note: this will permanently remove it so make sure you have backups where needed)?

best,
mj

1 Like