[0.7.9]Receivers grab freshly mined resources when set to turbo

Discussion in 'Bugs (Stable Only)' started by QuackDuck, Jan 25, 2018.

  1. QuackDuck

    QuackDuck Duck

    Receivers try to grab freshly mined resources from autominers when the base the receivers are on is set to Turbo pacemaker speed and the base is refining large amounts of resources. They will try to grab those resources no matter the distance.

    Game save for recreation and output log below.

    Attached Files:

    ZeroGravitas likes this.
  2. Nightblade Greyswandir

    Nightblade Greyswandir Well-Known Member

    I noticed same but I saw it as inertia of chucks. When they pick up chunks, if chunks collide with something at high speed they try to bounce away, but receivers are holding too tight and the you have that appearance that looks like collectors are taking chunks from far away.
  3. QuackDuck

    QuackDuck Duck

    It could be that, but I saw the receivers on this exact same base try to take resources from an autominer to the left of the others (not here now because I took it down) which used to be closer. They also seem to be coming from the precise direction of where the autominers are.

    P.S. If you slow down the video at 00:39 you can clearly see a freshly mined resource from the visible autominer being grabbed from far away.
  4. Nightblade Greyswandir

    Nightblade Greyswandir Well-Known Member

  5. ZeroGravitas

    ZeroGravitas Breaker of Games

    Did you have another base like that anchored next to the auto-miner it was taking from, previously?

    It looks a lot like this bug, with resources temporarily glitching out of collectors/silos, when a mobile tech is -re-anchored, back to where they were picked up from.

    A variation on the same underlying glitch in the resource chunk handling code, I imagine; receivers also take from other receivers (another report).
  6. QuackDuck

    QuackDuck Duck

    No, there is only that base and the Albatross, which it isn't taking from. The base wasn't reanchored at any point of assembly or operation.
    ZeroGravitas likes this.
  7. kae


    Heya QuackDuck, I've logged this one in our database for the rest of our team to take a look at, thanks for reporting!
    QuackDuck likes this.
  8. Zorgomol

    Zorgomol Well-Known Member

    I have seen this happen a lot, especially when I was mass-mining carbius with autominers scattered all over a fairly large area, but it happens with all types of resource chunks. There have even been instances where a freshly created block gets sucked a fair distance right into a recycler. My diagnosis based only on the outward behavior is that object pooling system is not thread-safe. And what brings me to this conclusion? Pure speculation. A raw chunk is 'destroyed' by a the refinery and recycled into the object pool for the specific type of object. The auto-miner 'creates' a raw chunk and pulls it out of the object pool to spawn it. Now, enter a receiver that is within grabbing range of the refinery. In a single-treaded situation these all will do their work in isolation and everything works neatly. Now, in a multi-threaded case, auto-miner and receiver might work in parallel, and it may just happen that auto-miner brings the chunk back to existence, but before it is relocated to the autominer's position the receiver sees an existing chunk within reach and grabs it, and only after that the auto-miner sets its position. As the receiver won't let go, it just yanks the chunk across the landscape.

    This gets particularly prominent with turbo speed refining simply because the object pool gets a lot more traffic.
    ZeroGravitas likes this.
  9. ZeroGravitas

    ZeroGravitas Breaker of Games

    Interesting hypothesis. I'd been thinking that there are about a half dozen bugs that look like there's a fundamental memory (or data array) management flaw underlying them all. (Smoke effects getting stuck on and transferring between world loads, etc.) But could be this, I've no idea of TT's use of threading...

    (Also non-deterministic crafting errors with my fastest throughput tech (that's otherwise optimised to avoid all known bugs.)

Share This Page