tth05 / morerefinedstorage

Continuation of RefinedStorage for 1.12 with focus on performance and new features.
MIT License
16 stars 7 forks source link

When making an absurdly large number of an item, autocrafting stops working for that recipe and other recipes (not all). Also my materials needed for that got wiped out of existence. #27

Closed lokep001 closed 3 years ago

lokep001 commented 3 years ago

Issue description:

Friend went on my system and ordered 23512 crafters (e2e recipe). It wouldn't go onto the pre craft screen and just stay there. Clicked cancel and tried again to craft 1. it wouldnt go onto the pre craft screen again, and i logged on and checked that all of my redstone, iron and glass just disappeared.

What happens:

Friend went on my system and ordered 23512 crafters (e2e recipe). It wouldn't go onto the pre craft screen and just stay there. Clicked cancel and tried again to craft 1. it wouldnt go onto the pre craft screen again, and i logged on and checked that all of my redstone, iron and glass just disappeared.

What you expected to happen:

To go to the precraft screen and be able to cancel it and be able to autocraft it again, and not have my items disappear.

Steps to reproduce:

  1. Craft a crafter (e2e recipe) fully automated recipe. Ask for an absurdly large number.
  2. To be honest I don't even know if this is reproduceable, if you want I can send you the server IP so you can test it out and the co ordinates of my house. ...

Version (make sure you are on the latest version before reporting):

Does this issue occur on a server? [yes/no] Yes

If a (crash)log is relevant for this issue, link it here:

[pastebin/gist/etc link here]

lokep001 commented 3 years ago

Also what is the payload too large error? Try making a crafting table recipe and it just crashes or the greenhouse glass from actually additions

Pelotrio commented 3 years ago

Also what is the payload too large error? Try making a crafting table recipe and it just crashes or the greenhouse glass from actually additions

That happens because the maximum size for a packet payload in minecraft is 32767 bytes. The amount of different saplings that are a available for the recipe all have to be sent to the client thus exceeding this limit. This could probably be caught to not kick you but it would still not work. I am currently thinking of including this into a core-mod I am working on to make this limit customizable.

tth05 commented 3 years ago

Sounds like an error happened while it was calculating. Anything in the log or debug log? I should probably handle errors better so you don't loose all items

lokep001 commented 3 years ago

Sounds like an error happened while it was calculating. Anything in the log or debug log? I should probably handle errors better so you don't loose all items

I'll be honest, I have no idea how to read the debug log, I can send it if you like, and yeah every single thing that that recipe used is gone. latest.log stuff at the bottom is when it tries to craft because i remember trying to craft it again and it wouldnt work and i left my name is minecraftfan715 (cringe ik, just never bothered to change it) and i just left after that lol havent joined back since (mainly because ive got exams)

tth05 commented 3 years ago

Thanks for the log. There was indeed an error during calculation.

  1. Does it break in the same way if you only request a single crafter? I don't think it depends on the requested amount
  2. I've made a new build with improved error messages. Could you try running that and send me the logs again?
  3. Could you post all patterns that are involved in making a crafter in your setup if that aren't too many. Or even better would be if you could build a setup in single player with the minimal amount of blocks and patterns required to make it crash.
lokep001 commented 3 years ago

Yes, breaks the exact same way. I can send the logs as well,

here is what i saw on the terminal after clicking the craft button

`[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.(Task.java:239)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.ProcessingTask.(ProcessingTask.java:62)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:536)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.Task.calculate(Task.java:544)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.engine.task.MasterCraftingTask.calculate(MasterCraftingTask.java:350)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler.lambda$onCraftingPreviewRequested$1(ItemGridHandler.java:220)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)

[20:08:57] [ForkJoinPool.commonPool-worker-2/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: ... 5 more

[20:08:58] [Thread-142/INFO] [THAUMCRAFT]: Stopping aura thread for dim 144

[20:09:12] [Server thread/DEBUG] [FML]: Gathering id map for writing to world save world`

latest.log

image image

sorry i couldnt do the single player world thing my internet is awful especially my upload speed (talking about 0.5mbps upload, living rurally isnt very good for this sort of thing lol)

lokep001 commented 3 years ago

I can send you the server IP with the additional mods for E2e 1.82a and the co ordinates for my base if you'd like.

tth05 commented 3 years ago

I can send you the server IP with the additional mods for E2e 1.82a and the co ordinates for my base if you'd like.

Joining your server won't help me. Have you tried point number 2 from my comment?

lokep001 commented 3 years ago

I can send you the server IP with the additional mods for E2e 1.82a and the co ordinates for my base if you'd like.

Joining your server won't help me. Have you tried point number 2 from my comment?

Yeah I downloaded the new update and it would still do the same thing, i sent the log in my reply with the images, i can send it again here because I recognise that it's hard to see. latest (1).log (new update)

tth05 commented 3 years ago

Yes, that log helps. The problematic pattern seems to be the one that makes stone. Is the input for that flint? You could probably avoid the error by turning off oredict.

lokep001 commented 3 years ago

Right okay I’ll try the stone pattern and turn ore dict off for that one because I redid all the patterns apart from stone with ore dict off.

I’m presuming that ore dict is completely broken or something? One of the other issues is about ore dictionary which I’ll be honest about I have no clue what it means but if it means I have to turn it off, so be it.

tth05 commented 3 years ago

What does the stone pattern look like? It seems like you put something there which also oredict to stone, meaning 1 stone = 1 stone which kinda breaks stuff

lokep001 commented 3 years ago

Well, that fixed it. The pattern was just cobblestone in a furnace. So I'm assuming now that ore dict is broken and I should not use it at all? Because turning ore dict off on that fixed it all lol. Also, did my items get deleted because of the error?

tth05 commented 3 years ago

Also, did my items get deleted because of the error?

Yeah, how I handle that isn't the greatest right now.

So I'm assuming now that ore dict is broken and I should not use it at all? Because turning ore dict off on that fixed it all lol.

I think I can circumvent the crash, although your oredict there seems just weird I guess. I recommend always turning off oredict anyway and only turning it on when you might need the functionality.

lokep001 commented 3 years ago

Alright thanks, now that the issue is resolved I guess we can close this now. Thanks!