Skip to content
This repository has been archived by the owner on Feb 18, 2021. It is now read-only.

Mixin complains about missing mixin host service #13

Open
mikroskeem opened this issue Jan 13, 2020 · 13 comments
Open

Mixin complains about missing mixin host service #13

mikroskeem opened this issue Jan 13, 2020 · 13 comments
Assignees
Labels

Comments

@mikroskeem
Copy link
Collaborator

[12:47:07 INFO]: [LaunchWrapper] Calling tweak class eu.mikroskeem.orion.core.launcher.legacylauncher.OrionTweakClass
Exception in thread "main" org.spongepowered.asm.service.ServiceNotAvailableError: No mixin host service is available. Services: INVALID[ModLauncher] and 1 other invalid services.
	at org.spongepowered.asm.service.MixinService.initService(MixinService.java:159)
	at org.spongepowered.asm.service.MixinService.getServiceInstance(MixinService.java:125)
	at org.spongepowered.asm.service.MixinService.getService(MixinService.java:120)
	at org.spongepowered.asm.launch.MixinBootstrap.<clinit>(MixinBootstrap.java:78)
	at eu.mikroskeem.orion.core.OrionCore.<init>(OrionCore.java:122)
	at eu.mikroskeem.orion.core.OrionCore.<clinit>(OrionCore.java:103)
	at eu.mikroskeem.orion.core.launcher.legacylauncher.OrionTweakClass.injectIntoClassLoader(OrionTweakClass.java:53)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:132)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:31)
	at eu.mikroskeem.orion.launcher.Bootstrap.main(Bootstrap.java:275)
@mikroskeem mikroskeem added the bug label Jan 13, 2020
@mikroskeem mikroskeem self-assigned this Jan 13, 2020
@F0x06
Copy link

F0x06 commented Apr 29, 2020

Hi!

Any update on this issue ? Trying to find the cause, works fine in dev env but not in production.

@mikroskeem
Copy link
Collaborator Author

There are no updates right now. #12 or should look into pointing Mixin to continuing using LegacyLauncher reliably.

If you know a proper fix, then PR is appreciated. I haven't used Orion myself for a while, hence haven't had much interest in fixing it.

@F0x06
Copy link

F0x06 commented Apr 29, 2020

I found the cause ! Need to test more to ensure all is working, after a lot of step debugging i found that the error was caused by a missing library from org.ow2.asm, i successfully booted Paper 1.15.2 with Mixins 0.8.1 on Orion by adding this to OrionAPI/build.gradle

// Mixin required deps
downloadDep(group: 'org.ow2.asm', name: 'asm-analysis', version: '6.2')
downloadDep(group: 'org.ow2.asm', name: 'asm-util', version: '6.2')
downloadDep(group: 'org.ow2.asm', name: 'asm-commons', version: '6.2')

This was working in dev because the deps where present due to gradle sub-dependencies, in production this was causing MixinServiceLaunchWrapper to fail to load, and loading MixinServiceModLauncher as replacement which fails obviously.

If all of this works i'll make a PR 👍

@mikroskeem
Copy link
Collaborator Author

Aren't org.ow2.asm dependencies being pulled as a transitive dependencies from eu.mikroskeem:shuriken.something?

@mikroskeem
Copy link
Collaborator Author

In ideal whole Gradle stuff should get an overhaul, writing everything into Kotlin and making API a lot lighter (dropping Shuriken etc)...

@F0x06
Copy link

F0x06 commented Apr 29, 2020

In ideal whole Gradle stuff should get an overhaul, writing everything into Kotlin and making API a lot lighter (dropping Shuriken etc)...

Agree yes, transitive dependencies are not downloaded properly for mixin apparently, maybe related to PicoMaven config.

Apart of that i successfully ported the SampleMod and it's working perfectly !

@F0x06
Copy link

F0x06 commented Apr 29, 2020

Sticking with Orion was my best option instead of re-writing everything you did a good job here !

@F0x06
Copy link

F0x06 commented Apr 29, 2020

Lol didn't noticed that PicoMaven is your project, there is an issue open mikroskeem/PicoMaven#5

I see you worked on it, maybe Orion uses an old version.

@mikroskeem
Copy link
Collaborator Author

Orion does indeed use older version. However as PicoMaven needs more work then it should be dropped right now, and an alternative solution should be used (shading or getting Gradle to spit out all dependencies with direct links + checksum)

@mikroskeem
Copy link
Collaborator Author

mikroskeem commented Apr 29, 2020

Perhaps this and this can be used as some inspiration.

@F0x06
Copy link

F0x06 commented Apr 29, 2020

Also i noticed an issue when loading Dynmap plugin under Orion launcher context, it seems that plugins can't access net.minecraft.server package and only see net.minecraft.server.v1_15_R1 any idea how to solve this issue ? Works normally when launching from PaperClip.

This is the log:

[21:00:46 INFO]: [dynmap] Loading dynmap v3.0-beta-10-257
[21:00:46 INFO]: [dynmap] version=git-Paper-227 (MC: 1.15.2)
[21:00:46 ERROR]: [dynmap] Error finding net.minecraft.server packages
[21:00:46 ERROR]: [dynmap] Cannot find [Lnet.minecraft.server.BiomeBase;
[21:00:46 ERROR]: [dynmap] Cannot find net.minecraft.server.BiomeStorage
[21:00:46 ERROR]: [org.bukkit.craftbukkit.v1_15_R1.CraftServer] Error initializing dynmap - bukkit version incompatible! initializing dynmap v3.0-beta-10-257 (Is it up to date?)
java.lang.IllegalArgumentException: Error initializing dynmap - bukkit version incompatible!
	at org.dynmap.bukkit.helper.BukkitVersionHelperGeneric.<init>(BukkitVersionHelperGeneric.java:166) ~[?:?]
	at org.dynmap.bukkit.helper.BukkitVersionHelperCB.<init>(BukkitVersionHelperCB.java:45) ~[?:?]
	at org.dynmap.bukkit.helper.v115.BukkitVersionHelperSpigot115.<init>(BukkitVersionHelperSpigot115.java:49) ~[?:?]
	at org.dynmap.bukkit.Helper.getHelper(Helper.java:40) ~[?:?]
	at org.dynmap.bukkit.DynmapPlugin.onLoad(DynmapPlugin.java:810) ~[?:?]
	at org.bukkit.craftbukkit.v1_15_R1.CraftServer.loadPlugins(CraftServer.java:364) ~[CraftServer.class:git-Paper-227]
	at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:234) ~[DedicatedServer.class:?]
	at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:895) ~[MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]

Issue seems present only for plugins that access minecraft classes

@mikroskeem
Copy link
Collaborator Author

This is a completely different issue, does not belong here.

Anyway,

plugins can't access net.minecraft.server package and only see net.minecraft.server.v1_15_R1

That's correct? Spigot and inherently Paper relocate nms and cb packages.

Works normally when launching from PaperClip.

However if dynmap works fine without Orion then there are some issues again with LegacyLauncher classloading I bet...

@F0x06
Copy link

F0x06 commented Apr 29, 2020

This is a completely different issue, does not belong here.

Anyway,

plugins can't access net.minecraft.server package and only see net.minecraft.server.v1_15_R1

That's correct? Spigot and inherently Paper relocate nms and cb packages.

Works normally when launching from PaperClip.

However if dynmap works fine without Orion then there are some issues again with LegacyLauncher classloading I bet...

Thanks for the answer, yes different issue, i messaged you on discord to not bloat the issue. 👍

@mikroskeem mikroskeem mentioned this issue Apr 30, 2020
5 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants