New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disabled Channels Setting invalidates the network on too many channels #1510
Comments
I am still not convinced that disabling channels has any bug in this case. Even when doubling the size again it will not affect anything. |
We have since re-activated channels on our server, however I will try to replicate it myself later this week. I would like to note, we previously only used ME Glass Cable (various colors) and had Dense cables disabled also, as without channels they weren't needed. |
I use the normal ME Glass Cable trough my whole base. If you would like to, I can send the server config to you. So you can test it with that config. |
else blame chunks.. |
Salve, we have the same problem on our server. I turned channels off for convenience and it worked just fine till i hit a threshold. |
Please try with the latest build and report back, |
Latest stable or beta build? Edit. Used rv2.stable build 6 no change the next terminal attached to the system has a rose light, the rest stays blue but the network stops working. |
Can you clarify what you meant with
|
Terminals of all kinds including the thaumcraft added one's, interfaces, import/export bus, storage bus. |
uh, overflow? yuck.. |
Found some more info and maybe a work around. automation { If i set it to 256, my network still crashed when i reach 0/32 but as soon i attache one more entity i goes to 1/32 and starts functioning again. |
Just noticed, how do you have Dense Cables, when you have channels disabled? |
I do not know, i can build the standard the covered and the dense one, controller and smart are disabled, would be cool if they are active even if the channels are disabled so you can pre build an setup if you want to switch back to channels. |
So after my assumption is, that it breaks after using 255 channels.. or on 256th channel usage, because it is stored in a |
second assumption is, that it is not breaking, but the system think that you are using none or just one channel etc.. |
Do you per chance have the ability to spawn in a creative only |
I can do that, what information do you need ? |
Looks like i spoke to soon, i changed the setting restarted the server and now i get an time out when i try to connect. |
Yea, you see the Node Channels section? I just wanted a clear knowledge how many are actually there, WAILA uses some other info. So my guess is, that if your network reaches 256, it will start to break down. Keep away from that number atm (from 8 to 256 should be an improvement, right?) |
This does not really make sense, as my example with a couple of thousand nodes is still working. |
I can confirm that this problem still occurs on a server with dense cables disabled. Also, dense cables is a separate config from enabling channels. |
Ah i can go over that number now, as i mentioned before. automation { If i set it to 256, my network still crashed when i reach 0/32 but as soon i attache one more entity i goes to 1/32 and starts functioning again. I will later attach over 256 items to test it again. Also yueh has a very good point his network is functioning with a lot more stuff. |
You think changing a completely random and unrelated config setting will change anything? |
I can confirm, that it breaks at exactly 256 nodes on a single network, based on cables spread in all 4 directions, just using storage monitors. After adding more, it starts to work again, it will probably start to fail at a multiple of 256. I wonder if there is something like a 0 check somewhere, preventing it from working, since it is based on a ScreenShot: Save File: |
Most likely GridNode.java#L388 and GridNode.java#L362 We only use I doubt it is possible to correctly implement disabled channels currently without reimplementing alternative versions for the most important classes like |
Using the correct type would help a lot probably. Storing information in specific parts of ints and longs is ok, as you use it to transfer information. I think hot-fixing it to 64k is probably ok for now. This is exponentially harder to hit, since you require certain amounts of mods and machines to even get that high. |
It basically creates a copy of the used channels to detect if something actually has changed. But then storing the security key as long is probably wasting more memory than just splitting it into Splitting it into two would be even a (very) small performance improvement as it no longer needs a bit operation everytime something access the data. |
Previously it did encode the current and previous used channels into the same as well as mask it with 0xFF. Which lead to an overflow every 256 gridnodes requiring a channel. This will not happen at > 2^31 Also removes the need to bitshift them for every access. Fixes AppliedEnergistics#1510
Previously it did encode the current and previous used channels into the same as well as mask it with 0xFF. Which lead to an overflow every 256 gridnodes requiring a channel. This will not happen at > 2^31 Also removes the need to bitshift them for every access. Fixes AppliedEnergistics#1510
Previously it did encode the current and previous used channels into the same as well as mask it with 0xFF. Which lead to an overflow every 256 gridnodes requiring a channel. This will not happen at > 2^31 Also removes the need to bitshift them for every access. Fixes AppliedEnergistics#1510
GridNode.java#L362 Is it possible this would be fixed if the conditional on Line 364 above was ... this.getUsedChannels() > 0... Apologies up front because I don't have time to go check all the calls and On Tue, Jun 16, 2015 at 6:47 AM, yueh notifications@github.com wrote:
|
So you want to change it in a way that every part is active even without having a channel assigned? |
The effect of that would be that every time you connect things to the If so, that doesn't seem unreasonable. But again, I'm not nearly as familiar with the code as you guys are. I On Tue, Jun 16, 2015 at 9:53 AM, yueh notifications@github.com wrote:
|
It is also already fixed in a PR. |
I just saw that. I think in the end that's a better fix... the problem Changing the line I suggested would change the way network power usage is Both probably aren't ideal but are decent compromises for the level of On Tue, Jun 16, 2015 at 10:08 AM, yueh notifications@github.com wrote:
|
Previously it did encode the current and previous used channels into the same as well as mask it with 0xFF. Which lead to an overflow every 256 gridnodes requiring a channel. This will not happen at > 2^31 Also removes the need to bitshift them for every access. Fixes #1510
Previously it did encode the current and previous used channels into the same as well as mask it with 0xFF. Which lead to an overflow every 256 gridnodes requiring a channel. This will not happen at > 2^31 Also removes the need to bitshift them for every access. Fixes #1510
collection entry
The text was updated successfully, but these errors were encountered: