Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-711

Tile ticks of connected redstone components might be executed in the wrong order when unloading/reloading chunks

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reopened
    • Resolution: Unresolved
    • Affects Version/s: Minecraft 1.4.2, Minecraft 1.4.5, Minecraft 1.4.6, Minecraft 1.4.7, Snapshot 13w03a, Snapshot 13w04a, Snapshot 13w05a, Snapshot 13w05b, Snapshot 13w09b, Snapshot 13w09c, Snapshot 13w10a, Minecraft 1.5, Snapshot 13w11a, Minecraft 1.5.1, Minecraft 1.5.2, Minecraft 1.6.1, Minecraft 1.6.2, Minecraft 1.7.4, Minecraft 14w02c, Minecraft 14w03a, Minecraft 14w03b, Minecraft 1.7.9, Minecraft 14w20b, Minecraft 14w21a, Minecraft 14w21b, Minecraft 1.8, Minecraft 1.8.1-pre3, Minecraft 1.8.1, Minecraft 1.8.2-pre1, Minecraft 1.9.4, Minecraft 1.10, Minecraft 1.10.2, Minecraft 1.11.2, Minecraft 17w06a, Minecraft 1.12.2, Minecraft 17w43a, Minecraft 17w43b, Minecraft 18w03b, Minecraft 18w16a, Minecraft 1.13-pre2, Minecraft 1.13-pre3, Minecraft 1.13-pre6, Minecraft 1.13-pre7, Minecraft 1.13-pre8, Minecraft 1.13, Minecraft 18w31a, Minecraft 1.13.1-pre1, Minecraft 1.13.1-pre2, Minecraft 1.13.1, 1.14.4, 19w37a, 19w38b
    • Fix Version/s: Snapshot 13w10b
    • Confirmation Status:
      Confirmed
    • Category:
      Chunk loading, Redstone

      Description

      The bug

      Sometimes repeater clocks may freeze due to the way tile ticks are saved and updated. Most cases of that already got fixed and it already got a lot better compared to when the issue was created. This happens when the repeaters are in different chunks.

      How to reproduce

      1. Move to a location outside of the spawn chunks. The spawn chunks are close to the location you are when you type /kill without having a bed spawn. Move far away from there.
      2. Hit F3 + G to show chunk borders.
      3. Build a repeater clock in such a way that the repeaters are located in two different chunks.
      4. Now move away from the clock in such a way that the chunk of one repeater is closer than the other. Move away until you can't see either of the repeaters anymore and maybe a little further to be extra sure. You can lower your render distance if you want to make this happening faster.
      5. Now move closer to your clock again. The clock is likely to be stuck now.

      Why this happens

      That happens because when you move away the chunks unload and so do the tile ticks of the repeaters. When you move closer again and the repeater that is in the chunk that was closer to you has a tile tick scheduled for turning on while the other has scheduled a tile tick for turning off, the chunk with the repeater that wants to turn on gets loaded first, the tile tick counts down and gets executed while the other repeater was not loaded the entire time and thus didn't yet turn off. Now both repeaters are turned on and the clock is broken.

      This is certainly not easy to fix. I think in order to fix this, tile ticks need to be overhauled in general. A system where tile ticks can be "connected" so that if one of them is loaded, the other gets loaded as well might be an option.

        Attachments

        1. 14w21b World(MC-711 Redstone Bug Test.zip) after tp.png
          14w21b World(MC-711 Redstone Bug Test.zip) after tp.png
          794 kB
        2. 2012-10-26_06.10.04.png
          2012-10-26_06.10.04.png
          670 kB
        3. 2012-10-28_03.49.28.png
          2012-10-28_03.49.28.png
          195 kB
        4. 2012-10-28_03.49.48.png
          2012-10-28_03.49.48.png
          127 kB
        5. 2015-01-30_22.01.20.png
          2015-01-30_22.01.20.png
          75 kB
        6. 2015-01-30_22.01.25.png
          2015-01-30_22.01.25.png
          81 kB
        7. 2015-01-30_22.01.33.png
          2015-01-30_22.01.33.png
          67 kB
        8. 2015-01-30_22.01.39.png
          2015-01-30_22.01.39.png
          102 kB
        9. 2015-01-30_22.01.46.png
          2015-01-30_22.01.46.png
          68 kB
        10. 2015-01-30_22.02.14.png
          2015-01-30_22.02.14.png
          203 kB
        11. 2019-09-18_12.47.35.png
          2019-09-18_12.47.35.png
          722 kB
        12. chunk-middle-problem-01-basic-setup-repeaters.png
          chunk-middle-problem-01-basic-setup-repeaters.png
          158 kB
        13. chunk-middle-problem-02-repeaters-behavior.png
          chunk-middle-problem-02-repeaters-behavior.png
          290 kB
        14. chunk-middle-problem-03-wire-behavior.png
          chunk-middle-problem-03-wire-behavior.png
          335 kB
        15. chunk-middle-problem-04-comparator-behavior.png
          chunk-middle-problem-04-comparator-behavior.png
          267 kB
        16. chunk-middle-problem-05-setup-piston-pushing-redstone-blocks.png
          chunk-middle-problem-05-setup-piston-pushing-redstone-blocks.png
          358 kB
        17. chunk-middle-problem-06-piston-pushing-redstone-blocks-behavior.png
          chunk-middle-problem-06-piston-pushing-redstone-blocks-behavior.png
          269 kB
        18. comparator-stuck.png
          comparator-stuck.png
          72 kB
        19. comparator-stuck.zip
          5.89 MB
        20. crash-2012-12-18_20.41.48-client.txt
          3 kB
        21. crash-2013-01-24_22.15.08-client.txt
          4 kB
        22. crash-2013-01-31_20.06.55-client.txt
          10 kB
        23. Frozen repeaters.jpg
          Frozen repeaters.jpg
          131 kB
        24. long-redstone-wire-bug-world.zip
          229 kB
        25. MC-711 Redstone Bug Test.zip
          2.28 MB
        26. stuck-repeater-clock.png
          stuck-repeater-clock.png
          186 kB

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                Schortan [Helper] NeunEinser
              • Votes:
                113 Vote for this issue
                Watchers:
                30 Start watching this issue

                Dates

                • Created:
                  Updated:
                  CHK: