Apparently, factorio doesn't have a graceful way of handling parallel pipes, or when pipes might form loops.
Anyways, I've boiled it down to the attached scenario
once you start it, you'll need to disable the constant combinator, and the fluid oscillator will run itself...tried to set it up this way, to rule out it was background processes slowing down my machine.
To test the bug, simply vary the parallel join pipes (circled pink), and look at the game tick readout (circled blue, it's thermometer coded from right to left), once the done light goes on (circled red) There's some strange non-determinism going on, since there are some subtle timing differences between scenario instances (might not get a consistent timing behavior between different launches of the scenario)
In one instance, I saw the following tick counts for the tank to fill up:
(binary coded presense of a pipe from top to bottom) = (game ticks for tank to fill up, average over 3 cycles)
0000 = 960
1000 = 1227
0100 = 1241
0010 = 962
0001 = 962
0011 = 1267
1100 = 1248
1010 = 1351
0101 = 1354
1111 = 5183
Blueprint for the unit-test structure
Code: Select all
0eNrdWtuOo0YQ/ZWoHyO84tLNxUr2ZTX5grxFKwvbbbsVDKiBSawR/54G22MPFFCFZ3aifdlZsM/pourUpdu8sHVSyVyrtGTLF6Y2WVqw5V8vrFD7NE6ae+Upl2zJVCmPzGJpfGyuijLT8V4uyjj9m9UWU+lW/suWTv3dYjItVankmae9OK3S6riW2nzhlSHb7YpDpuUir465Ic6zwqCytFnSMC0ii53MHyeqa6tH46JpnDEa75VmwojgizAPuVVabs4fc4sZV5U6S1ZreYifVaYbzEbpTaXKlfls+0q0U7ooVz2HPitdVubOzaftNxZPjT+bOBjfmqDYzcUxj3VcNmuwr6w+f56ebSkaSqf5R8vtvcuVueJ2/b2GnpzfnlwZa/pP7l+fHEKLKTQfQ/tTXnd+Vq8HU3676s2H0OEUOhxDR1PoYAzt2FjBCBDuYOHw6i5WcPDqHhYOrz6ZLN4ofDJb3FG4PwV3RuFozXEQHmLhHghHqw5c3bWxkofhaNXBcBcbdxiOVh0M59i4g553BRYOr+5jRQvD0apzQThadQ4IR6sOXN1Dqw5c3XOwq8NwFx6y+jTilQbuTHstZdrtTZ7xzbVfNtfOQKvyPKz44afgWP3AcLR6YTi6ZsICuKm3qNZmImiRgAi/XEJg/gPy3GS8lRu1lXphhoq1StuhYrAahcix58J5G3uKGXNPnJ7Kg0r3b8cflwu7PwJZLKvKvCKwnyXYUucnY2iVlqudzo4rlRoettzFSSHrR/VrMXdgEut+2232JyAvD4YSIaIFUXxCEOWz1FAYuyH8bUYIG6++awDdOye3N0JSRMNuRN+yCbfHNhTxcGhvZE9tUDgtxh+wP3F6kSXsT7yOz/zONe/eEHzC6QLXVLiDbSo2CMe2RvsSn7fRcSFKD0npXSkhEo4k8fF2CSRlNGbXrQ1elTNeuyLQvgFV71RSSj1wWjQh46rRcNOEb+dG73Gocde3j3GSLJIYTN9LGIL649IVbqvAqYLFqkKapZKscWWpK0kqpr1qOOCZEOcZ8fN4JkJ6JkKWJPggzEbu8WC0gxySYbQ7azARP3IwuQwPhWxYZo2NDw6gD0wvqHGy0wc97PDRHVPc0aGn23/xvM7MTi28WVuXzxDX2FBEF8y3d5QLMItegwwGz7eRweG04PD74HxeOH6fEY6nDwzHeM4NThlC0Lzv/h9S4z0282OxaNszbYSjV8bHksanbR7AEx0R0LYLYnrSFyFt8wDbFdG2Cwi7/NtoE2tVHo6yVBuU0j2k0m+0j4n9ac6I0db5LJf6fLi3ZL/OywiC6LtKHT6M6nbpqTljvJL1M6Sz/UfOBL5DyyAXITKXlk/gca3v0TIIYxen5RNsl5ibQc4PziAZbw53SXTXwu3mGPg+TRYz0uRM/1imwIq81fS12i9kYri18XGeJeDvLpfzehs+rvcDkr7BXx78kCRoByHFiKRu0KrAJskZYVVAqwUcwUgrBeDPjgGtEmCsohUC2CpB8hW42Q98kncCxJMFJF/BVoUk72Csimg5aE9ThjYtJcGj59ChZSHGLpeWlLBdHs1f4LsCIad5yEM8nKD5C7bLp3kIYxexxvsISmLJh9/tIlZ5hF0RsejDb43R6jz8mmVEK+2GZPrhaJV+wC5ace/bZeb39rXY5d1btBZL4rU0YxH7I8n++eVPWZSyGfWepS5aWODZThj4EbfDuv4PeLyDwg==