Replay Mod (Fabric & Forge)

Replay Mod (Fabric & Forge)

1M Downloads

IllegalReferenceCountException on replay cut

i0xHeX opened this issue ยท 5 comments

commented

ReplayMod 2.5.2 (downloaded from official site)
When I try to cut a replay (anyway, one cut insert in the middle for example), it ends up with crash report.
Sample:
BW_2021_03_03_20_01_50_ORIGINAL.zip

---- Minecraft Crash Report ----
// Who set us up the TNT?

Time: 03.03.2021, 20:43
Description: Running marker processor

io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
	at io.netty.buffer.AbstractReferenceCountedByteBuf.release0(AbstractReferenceCountedByteBuf.java:100)
	at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:84)
	at com.replaymod.replaystudio.protocol.Packet.release(Packet.java:96)
	at com.replaymod.replaystudio.PacketData.release(PacketData.java:63)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1510)
	at com.replaymod.replaystudio.filter.SquashFilter.release(SquashFilter.java:226)
	at com.replaymod.editor.gui.MarkerProcessor.apply(MarkerProcessor.java:258)
	at com.replaymod.editor.gui.GuiEditReplay.lambda$apply$10(GuiEditReplay.java:158)
	at java.base/java.lang.Thread.run(Thread.java:832)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.16.5
	Minecraft Version ID: 1.16.5
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 14, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation
	Memory: 185357944 bytes (176 MB) / 1073741824 bytes (1024 MB) up to 1073741824 bytes (1024 MB)
	CPUs: 4
	JVM Flags: 9 total; -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Xmx1024M -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M
	Fabric Mods: 
		clear-skies: Clear Skies 1.5.55
		fabric: Fabric API 0.29.0+1.16
		fabric-api-base: Fabric API Base 0.2.0+ab87788d3a
		fabric-biome-api-v1: Fabric Biome API (v1) 3.1.0+2e23b97c3a
		fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.4+6a2618f53a
		fabric-command-api-v1: Fabric Command API (v1) 1.0.9+6a2618f53a
		fabric-commands-v0: Fabric Commands (v0) 0.2.1+cbe9176f3a
		fabric-containers-v0: Fabric Containers (v0) 0.1.9+a03e98793a
		fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.0+e77439c73a
		fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.2+b7f9825d3a
		fabric-dimensions-v1: fabric-dimensions-v1 2.0.1+9a6c75813a
		fabric-entity-events-v1: Fabric Entity Events (v1) 1.0.0+79b23bee3a
		fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.1+6a2618f53a
		fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.0+6a2618f53a
		fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.5+cbe9176f3a
		fabric-item-api-v1: Fabric Item API (v1) 1.2.0+6a2618f53a
		fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.2+cbe9176f3a
		fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.1+730711c63a
		fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.0+3fa9f7c53a
		fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.2.0+ffb68a873a
		fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.1+6a2618f53a
		fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.2+6a2618f53a
		fabric-models-v0: Fabric Models (v0) 0.2.0+cbe9176f3a
		fabric-networking-api-v1: Fabric Networking API (v1) 1.0.0+4358fbc63a
		fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.7+a03e98793a
		fabric-networking-v0: Fabric Networking (v0) 0.3.1+2a4333d33a
		fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.9.2+6a2618f53a
		fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.1+6a2618f53a
		fabric-particles-v1: Fabric Particles (v1) 0.2.3+cbe9176f3a
		fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.3+be155ae23a
		fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.0+cbe9176f3a
		fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.3+6a2618f53a
		fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 2.2.0+6a2618f53a
		fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.4+6a2618f53a
		fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.12+6a2618f53a
		fabric-rendering-v0: Fabric Rendering (v0) 1.1.1+6a2618f53a
		fabric-rendering-v1: Fabric Rendering (v1) 1.5.0+c26373133a
		fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.0+552549d53a
		fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.0+6a2618f53a
		fabric-structure-api-v1: Fabric Structure API (v1) 1.1.3+cbe9176f3a
		fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.1.0+e77439c73a
		fabric-textures-v0: Fabric Textures (v0) 1.0.5+6a2618f53a
		fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.5+6a2618f53a
		fabricloader: Fabric Loader 0.11.1
		java: Java HotSpot(TM) 64-Bit Server VM 14
		logical_zoom: Logical Zoom 0.0.7
		minecraft: Minecraft 1.16.5
		modmenu: Mod Menu 1.14.13+build.19
		no_fog: No Fog 1.0.2-beta.1+1.16.2
		replaymod: Replay Mod 1.16.4-2.5.2
		sodium: Sodium 0.1.0
		tellme: TellMe 0.9.2
commented

Is there any workaround for now? Even if the recording is without markers, it will throw the exception. Furthermore, the cut recording might be with duplicated players (via B) and map glitches (some chunks are from another worlds combined).

commented

Even if the recording is without markers, it will throw the exception.

No, that's not possible. MarkerProcessor.apply only executes if there are markers in the replay.

commented

Even if the recording is without markers, it will throw the exception.

No, that's not possible. MarkerProcessor.apply only executes if there are markers in the replay.

So, probably this caused by the markers created when you make Insert / End Cut?
You can reproduce the issue with the sample I included above:

  1. Remove markers (markers.json -> "[]")
  2. Press Edit on recording
  3. Press Insert Cut
  4. Move to 6:40 and press End Cut
  5. Move to 13:00 and press Insert Cut
  6. Press Apply
commented

So, probably this caused by the markers created when you make Insert / End Cut?

Ah, yes, the only thing which those buttons do is inserting markers.

The "workaround" would be to just not use the edit feature for replays where it crashes until that's fixed. Depending on why you're trying to use it, you can probably compensate by using Quick Mode instead.

commented

I believe I'm having this same issue. It has happened twice to me. Both times I did the same steps from the editor:
Insert a "CUT" at a marker I had made
Insert an "END CUT" at the end of recording

It's possible the "END CUT" is redundant and unnecessary, but I didn't test that.
Here is the crash report, log and one of the effected recordings
2021_03_30 shop wall build.mcpr.zip
2021-04-06-2.log
crash-2021-04-06_14.33.06-client.txt