Skip to content
This repository has been archived by the owner on Apr 2, 2022. It is now read-only.

java.nio.file.FileAlreadyExistsException: /deployments/luckperms/yaml-storage #5

Closed
vorburger opened this issue May 9, 2018 · 1 comment

Comments

@vorburger
Copy link
Member

The image as of right now in 925cb49 "works", but only in Docker and OpenShift WITHOUT a PV mounted at /deployments/persistent/ - with one, we hit this snag on start up:

  | [20:10:57 INFO]: [LuckPerms] [ERROR] Failed to init storage dao
  | [20:10:57 ERROR] [STDERR]: java.nio.file.FileAlreadyExistsException: /deployments/luckperms/yaml-storage
  | [20:10:57 ERROR] [STDERR]: 	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
  | [20:10:57 ERROR] [STDERR]: 	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
  | [20:10:57 ERROR] [STDERR]: 	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
  | [20:10:57 ERROR] [STDERR]: 	at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
  | [20:10:57 ERROR] [STDERR]: 	at java.nio.file.Files.createDirectory(Files.java:674)
  | [20:10:57 ERROR] [STDERR]: 	at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
  | [20:10:57 ERROR] [STDERR]: 	at java.nio.file.Files.createDirectories(Files.java:727)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.utils.MoreFiles.createDirectoriesIfNotExists(MoreFiles.java:55)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.dao.file.AbstractConfigurateDao.init(AbstractConfigurateDao.java:135)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.init(SeparatedConfigurateDao.java:150)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.AbstractStorage.init(AbstractStorage.java:126)
  | [20:10:57 ERROR] [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | [20:10:57 ERROR] [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  | [20:10:57 ERROR] [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  | [20:10:57 ERROR] [STDERR]: 	at java.lang.reflect.Method.invoke(Method.java:498)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.wrappings.PhasedStorage.lambda$wrap$0(PhasedStorage.java:69)
  | [20:10:57 ERROR] [STDERR]: 	at com.sun.proxy.$Proxy55.init(Unknown Source)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.StorageFactory.getInstance(StorageFactory.java:117)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.common.plugin.AbstractLuckPermsPlugin.enable(AbstractLuckPermsPlugin.java:136)
  | [20:10:57 ERROR] [STDERR]: 	at me.lucko.luckperms.sponge.LPSpongeBootstrap.onEnable(LPSpongeBootstrap.java:162)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.event.listener.GamePreInitializationEventListener_LPSpongeBootstrap_onEnable3.handle(Unknown Source)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:408)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:435)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:213)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.common.SpongeImpl.postState(SpongeImpl.java:221)
  | [20:10:57 ERROR] [STDERR]: 	at org.spongepowered.server.SpongeVanilla.preInitialize(SpongeVanilla.java:121)
  | [20:10:57 ERROR] [STDERR]: 	at net.minecraft.server.dedicated.DedicatedServer.handler$onServerLoad$zpp000(SourceFile:1234)
  | [20:10:57 ERROR] [STDERR]: 	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(SourceFile:117)
  | [20:10:57 ERROR] [STDERR]: 	at net.minecraft.server.MinecraftServer.run(SourceFile:434)
  | [20:10:57 ERROR] [STDERR]: 	at java.lang.Thread.run(Thread.java:748)
  | [20:10:57 INFO]: [LP] Loading internal permission managers...
  | [20:10:57 INFO]: [LP] Registering PermissionService...
  | [20:10:58 INFO]: [LP] Performing initial data load...
  | [20:10:58 ERROR] [STDERR]: java.util.concurrent.CompletionException: java.lang.NullPointerException
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629)
  | [20:10:58 ERROR] [STDERR]: 	at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:139)
  | [20:10:58 ERROR] [STDERR]: 	at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  | [20:10:58 ERROR] [STDERR]: 	at java.lang.Thread.run(Thread.java:748)
  | [20:10:58 ERROR] [STDERR]: Caused by: java.lang.NullPointerException
  | [20:10:58 ERROR] [STDERR]: 	at java.nio.file.Files.provider(Files.java:97)
  | [20:10:58 ERROR] [STDERR]: 	at java.nio.file.Files.newDirectoryStream(Files.java:457)
  | [20:10:58 ERROR] [STDERR]: 	at java.nio.file.Files.list(Files.java:3451)
  | [20:10:58 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.loadAllGroups(SeparatedConfigurateDao.java:285)
  | [20:10:58 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.AbstractStorage.lambda$loadAllGroups$10(AbstractStorage.java:218)
  | [20:10:58 ERROR] [STDERR]: 	at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:96)
  | [20:10:58 ERROR] [STDERR]: 	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626)
  | [20:10:58 ERROR] [STDERR]: 	... 7 more
  | [20:10:58 INFO]: [LP] Successfully enabled. (took 1882ms)
  | [20:10:58 INFO]: Loading properties
  | [20:10:58 INFO]: Default game type: CREATIVE
  | [20:10:58 INFO]: Generating keypair
  | [20:10:58 INFO]: Starting Minecraft server on *:25565
  | [20:10:58 INFO]: Using epoll channel type
  | [20:10:58 INFO] [Sponge]: Successfully loaded and initialized plugins.
  | [20:10:58 WARN]: banned-players.json does not exist, creating it.
  | [20:10:58 WARN]: banned-ips.json does not exist, creating it.
  | [20:10:58 WARN]: whitelist.json does not exist, creating it.
  | [20:10:58 INFO]: Preparing level "world"
  | [20:10:58 INFO] [Sponge]: Checking for worlds that need to be migrated...
  | [20:10:58 INFO] [Sponge]: No worlds were found in need of migration.
  | [20:10:59 INFO]: Loaded 488 advancements
  | [20:10:59 INFO]: Loaded 6 advancement trees
  | [20:10:59 INFO]: Preparing start region for level 0 (world)
  | [20:11:00 ERROR] [Sponge]: The Scheduler tried to run the task luckperms-A-9 owned by Plugin{id=luckperms, name=LuckPerms, version=4.1.102, description=A permissions plugin, url=https://github.com/lucko/LuckPerms , authors=[Luck], source=mods/LuckPerms-Sponge-4.1.102.jar}, but an error occured.
  | java.util.concurrent.CompletionException: java.lang.NullPointerException
  | at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629) ~[?:1.8.0_161]
  | at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:139) ~[Task$Builder.class:1.12.2-7.1.0-BETA-33]
  | at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186) ~[SchedulerBase.class:1.12.2-7.1.0-BETA-33]
  | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_161]
  | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
  | at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
  | Caused by: java.lang.NullPointerException
  | at java.nio.file.Files.provider(Files.java:97) ~[?:1.8.0_161]
  | at java.nio.file.Files.newDirectoryStream(Files.java:457) ~[?:1.8.0_161]
  | at java.nio.file.Files.list(Files.java:3451) ~[?:1.8.0_161]
  | at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.loadAllGroups(SeparatedConfigurateDao.java:285) ~[SeparatedConfigurateDao.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$loadAllGroups$10(AbstractStorage.java:218) ~[AbstractStorage.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:96) ~[AbstractStorage.class:?]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626) ~[?:1.8.0_161]
  | ... 7 more
  | [20:11:00 INFO]: Preparing spawn area: 6%
  | [20:11:01 INFO]: Preparing spawn area: 12%
  | [20:11:02 INFO]: Preparing spawn area: 17%
  | [20:11:03 INFO]: Preparing spawn area: 25%
  | [20:11:04 INFO]: Preparing spawn area: 33%
  | [20:11:05 INFO]: Preparing spawn area: 39%
  | [20:11:06 INFO]: Preparing spawn area: 47%
  | [20:11:07 INFO]: Preparing spawn area: 56%
  | [20:11:08 INFO]: Preparing spawn area: 63%
  | [20:11:09 INFO]: Preparing spawn area: 69%
  | [20:11:10 INFO]: Preparing spawn area: 74%
  | [20:11:11 INFO]: Preparing spawn area: 81%
  | [20:11:12 INFO]: Preparing spawn area: 91%
  | [20:11:13 INFO] [Sponge]: Loading world [world] (overworld)
  | [20:11:13 INFO]: Done (15.189s)! For help, type "help" or "?"
  | [20:13:58 ERROR] [Sponge]: The Scheduler tried to run the task luckperms-A-11 owned by Plugin{id=luckperms, name=LuckPerms, version=4.1.102, description=A permissions plugin, url=https://github.com/lucko/LuckPerms , authors=[Luck], source=mods/LuckPerms-Sponge-4.1.102.jar}, but an error occured.
  | java.util.concurrent.CompletionException: java.lang.NullPointerException
  | at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629) ~[?:1.8.0_161]
  | at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:139) ~[Task$Builder.class:1.12.2-7.1.0-BETA-33]
  | at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186) ~[SchedulerBase.class:1.12.2-7.1.0-BETA-33]
  | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_161]
  | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
  | at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
  | Caused by: java.lang.NullPointerException
  | at java.nio.file.Files.provider(Files.java:97) ~[?:1.8.0_161]
  | at java.nio.file.Files.newDirectoryStream(Files.java:457) ~[?:1.8.0_161]
  | at java.nio.file.Files.list(Files.java:3451) ~[?:1.8.0_161]
  | at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.loadAllGroups(SeparatedConfigurateDao.java:285) ~[SeparatedConfigurateDao.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$loadAllGroups$10(AbstractStorage.java:218) ~[AbstractStorage.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:96) ~[AbstractStorage.class:?]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626) ~[?:1.8.0_161]
  | ... 7 more
  | [20:16:58 ERROR] [Sponge]: The Scheduler tried to run the task luckperms-A-13 owned by Plugin{id=luckperms, name=LuckPerms, version=4.1.102, description=A permissions plugin, url=https://github.com/lucko/LuckPerms , authors=[Luck], source=mods/LuckPerms-Sponge-4.1.102.jar}, but an error occured.
  | java.util.concurrent.CompletionException: java.lang.NullPointerException
  | at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629) ~[?:1.8.0_161]
  | at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:139) ~[Task$Builder.class:1.12.2-7.1.0-BETA-33]
  | at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186) ~[SchedulerBase.class:1.12.2-7.1.0-BETA-33]
  | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_161]
  | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
  | at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
  | Caused by: java.lang.NullPointerException
  | at java.nio.file.Files.provider(Files.java:97) ~[?:1.8.0_161]
  | at java.nio.file.Files.newDirectoryStream(Files.java:457) ~[?:1.8.0_161]
  | at java.nio.file.Files.list(Files.java:3451) ~[?:1.8.0_161]
  | at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.loadAllGroups(SeparatedConfigurateDao.java:285) ~[SeparatedConfigurateDao.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$loadAllGroups$10(AbstractStorage.java:218) ~[AbstractStorage.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:96) ~[AbstractStorage.class:?]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626) ~[?:1.8.0_161]
  | ... 7 more
  | [20:19:58 ERROR] [Sponge]: The Scheduler tried to run the task luckperms-A-15 owned by Plugin{id=luckperms, name=LuckPerms, version=4.1.102, description=A permissions plugin, url=https://github.com/lucko/LuckPerms , authors=[Luck], source=mods/LuckPerms-Sponge-4.1.102.jar}, but an error occured.
  | java.util.concurrent.CompletionException: java.lang.NullPointerException
  | at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_161]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629) ~[?:1.8.0_161]
  | at org.spongepowered.api.scheduler.Task$Builder.lambda$execute$0(Task.java:139) ~[Task$Builder.class:1.12.2-7.1.0-BETA-33]
  | at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186) ~[SchedulerBase.class:1.12.2-7.1.0-BETA-33]
  | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_161]
  | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
  | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
  | at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
  | Caused by: java.lang.NullPointerException
  | at java.nio.file.Files.provider(Files.java:97) ~[?:1.8.0_161]
  | at java.nio.file.Files.newDirectoryStream(Files.java:457) ~[?:1.8.0_161]
  | at java.nio.file.Files.list(Files.java:3451) ~[?:1.8.0_161]
  | at me.lucko.luckperms.common.storage.dao.file.SeparatedConfigurateDao.loadAllGroups(SeparatedConfigurateDao.java:285) ~[SeparatedConfigurateDao.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$loadAllGroups$10(AbstractStorage.java:218) ~[AbstractStorage.class:?]
  | at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:96) ~[AbstractStorage.class:?]
  | at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626) ~[?:1.8.0_161]
  | ... 7 more

@edewit FYI

@vorburger
Copy link
Member Author

I suspect that this may have something to do with this from the .s2i/bin/assemble :

mkdir -p /deployments/luckperms/
mkdir -p /deployments/persistent/data/luckperms/yaml-storage
ln -s /deployments/persistent/data/luckperms/yaml-storage /deployments/luckperms/yaml-storage

because with a PV mounted at /deployments/persistent that symlink points to a non-existant directory? Because above runs during image preparation, but that mkdir is lost (shadowed) by the mount. So that needs to happen later, at start (run), not assemble.

https://docs.openshift.org/3.9/using_images/s2i_images/customizing_s2i_images.html looks interesting...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

1 participant