Closed Lupus590 closed 4 years ago
Logs or it didn't happen.
Hoping that these are the right logs latest.log debug.log
Can you enable log_computer_errors
in the config and try again? Sorry, forget it's not on by default in many configs.
I finally got it to happen again (I still don't know how I'm causing it)
I had this error too, but I'm unable to reproduce it on demand. Unfortunately log_computer_errors
was of when it happened, but I'll post logs if it does. I'm going to include much more information than I usually do since this seems like one of those bugs that only happens when doing a handstand in africa during a full moon while closing a browser window.
Running minecraft 1.12.2, forge-1.12.2-14.23.5.2768-universal.jar
with these mods:
73b91aff1ad79d6f96e61753cf5962a4cf9af0f222067608575873c6fde0e7d3 mods/FTBLib-5.4.7.0.jar
7695572b3234d90556e9a3d4da6eb27818aeae65b36edb3e48a2178c4c0dac0c mods/FTBUtilities-5.4.0.124.jar
f32537175f89ddc9890550a158a910e746cac2848db8f6f123865bd4a8a425fb mods/cc-tweaked-1.12.2-1.89.2.jar
94cc1c05725d81270aee57a3fcce58b726603c272a8d1ad527bbe1379aa85361 mods/plethora-1.12.2-1.2.3.jar
I was running a benchmarking program on an advanced computer, which had a wireless modem attached, and a wired modem attached to a bunch of chests image (was going to make an inventory management system), although the program I was running did not interface with any of these.
this should be the exact program I was running at the time. It's meant to benchmark a library I made that allows connecting to a postgres server through a special-purpose proxy, ws2pg. It uses the default websockets library, and serializes and deserializes with a messagepack library I made, mp. The query
function sends off a websocket frame and than waits for a database_message
event with the right msgid. A separate "processing" coroutine receives websocket events with websocket.receive()
and parsed the data, and queues either a database_message
or database_notification
, although the latter shouldn't come into play with the timedb
script I was running.
I got the error twice. The second time I had run the exact program once already, just after that I ran it again, it immediately showed the OrphanedThreadException error.
Before I got this error and often when trying&failing to reproduce it, I get the error:
Error running computer
Too long without yielding
ComputerCraft may be installed incorrectly
Suspicious things:
n
arguments to parallel.waitForAll
, when most uses of it I see in examples have 2 or 3 arguments. When n
is 1000 it never seems to finish, while when n
is 100 it seems to work fine albeit slowly.n
coroutines, and something has to copy every event to every coroutine.Edit: Fixed image links for the 2nd time
Basically the OrphanedThreadException
should happen when a yield happens within a Java call and has no way of being resumed (i.e, the coroutine has been garbage collected). It's quite an easy exception to make happen, but it should never be displayed to the user (and on a running coroutine!) - I'm honestly not sure how this is happening.
TLDR: Y'all should update to 1.15, as this is fixed there :p.
I'll update to 1.15 once plethora supports it (and maybe a few other mods).
Starting to consider making a backport fork of CC:T for continued 1.12.2 support.
Sadly this is one of those changes which can't (well, easily) be backported - it's heavily tied to the API changes in 1.15, which break back-compat.
Useful information to include: