catageek / ByteCart

Minecraft plugin for bukkit to create a LAN/WAN rail network with routing algorithm
GNU General Public License v3.0
27 stars 9 forks source link

bcupdater Questions #40

Closed LaxSlash closed 7 years ago

LaxSlash commented 7 years ago

Trying to learn how to use this plugin.

I created two seperate networks. I got both to successfully run "/bcupdater region" - both approx. an hour to do. The I did the local updater on my first network, which has one ring with stations on it (8 stations total). That entre process took about an hour again. When I went to do my second network, it took three to five minutes to process a router with eight stations across two loops. Is this normal? How come the updater takes so long to expire in some cases, and not in others? Also... is it normal for the local updater to do 10 loops around a ring with no stations on it before continuing?

catageek commented 7 years ago

Hello LaxSlash,

Thank you for your interest in this plugin.

The expiration time is three times the time since the beginning until the last write operation, with a minimum of 1 hour, in other words T = Max((last_write - start) x 3; 1hr).

If the local updater only runs during 10 minutes, it's probably that the loop 0 is not well configured and the local updater took this loop by mistake. The issue is in the region configuration, and not with the local one.

You can fix it with a full reset ('bcupdater reset_region X full'), checking that absolutely all router signs are erased, and reconfigure again.

You may also set the option 'debug: true' in the configuration file and rerun the local updater to check the output in the console. The log should detail the path determination algorithm and how the updater sees the network. The updater goes in the loop 0 only when it expires, never before.

Paste the logs here if you wish me to help you.

LaxSlash commented 7 years ago

Hello,

I found it generating this error:

ERROR]: ByteCart : Lever missing or wrongly positioned in router Location{world=CraftWorld{name=train_tutorial},x=313.0,y=61.0,z=-153.0,pitch=0.0,yaw=0.0}

javaw_2016-11-24_23-50-57

That location is for the middle redstone... but I'm lost on where there should be a lever there? I attached a schematic of my entire router and rails that I'm building for learning purposes, if you could possibly take a look at it. The MC version is 1.10.2.

Schematic File: https://drive.google.com/file/d/0BzNZlgDtL9ihSXhhR2lSRkpEdlE/view?usp=sharing

E: Found the missing lever on that router and fixed the issue. Trying a run now, will see if it has any issues. Hopefully not.

LaxSlash commented 7 years ago

Okay. So now, the issue is instead of the local updater running for too little of a time, it now runs seemingly indefinitely. All the stations have IPs, but yet the updater cart won't return back to garbage at all. The region updater went to garbage in exactly one hour.

3:42:54 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:42:55 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:42:57 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:42:57 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:42:59 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:42:59 PM CONSOLE: [INFO] ByteCart : Router : coming from EAST going to EAST
3:42:59 PM CONSOLE: [INFO] ByteCart : minimum found ring 3 with 196
3:42:59 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:42:59 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:42:59 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:00 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:00 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:00 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:00 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:02 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:02 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:02 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:02 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:03 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:03 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:03 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:03 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:03 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:03 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:03 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:03 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:05 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:05 PM CONSOLE: [INFO] ByteCart : Router : coming from EAST going to EAST
3:43:05 PM CONSOLE: [INFO] ByteCart : minimum found ring 3 with 196
3:43:05 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:05 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:05 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:06 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:06 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:06 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:06 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:07 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:07 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:07 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:07 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:09 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:09 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:09 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:09 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:09 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:09 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:09 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:09 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:11 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:11 PM CONSOLE: [INFO] ByteCart : setting metric of ring 2 to 199
3:43:11 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:11 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:11 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:11 PM CONSOLE: [INFO] ByteCart : minimum found ring 3 with 196
3:43:11 PM CONSOLE: [INFO] ByteCart : Router : coming from EAST going to SOUTH
3:43:11 PM CONSOLE: [INFO] ByteCart : minimum found ring 3 with 196
3:43:11 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:11 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:11 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:13 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:14 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:16 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:16 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:18 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:18 PM CONSOLE: [INFO] ByteCart : Router : coming from SOUTH going to SOUTH
3:43:18 PM CONSOLE: [INFO] ByteCart : minimum found ring 1 with 197
3:43:18 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:18 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:18 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:20 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:20 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:20 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:20 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:20 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:20 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:20 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:20 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:22 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:22 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:22 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:22 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:23 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:23 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:23 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:23 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:24 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:24 PM CONSOLE: [INFO] ByteCart : Router : coming from SOUTH going to SOUTH
3:43:24 PM CONSOLE: [INFO] ByteCart : minimum found ring 1 with 197
3:43:24 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:24 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:24 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:26 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:26 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:27 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:27 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:27 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:27 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:27 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:27 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:29 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:29 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:29 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:29 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:30 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:30 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:30 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:30 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:31 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:31 PM CONSOLE: [INFO] ByteCart : setting metric of ring 3 to 200
3:43:31 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:31 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:31 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:31 PM CONSOLE: [INFO] ByteCart : minimum found ring 1 with 197
3:43:31 PM CONSOLE: [INFO] ByteCart : Router : coming from SOUTH going to NORTH
3:43:31 PM CONSOLE: [INFO] ByteCart : minimum found ring 1 with 197
3:43:31 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:31 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:31 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:33 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:35 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:36 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:37 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:39 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:39 PM CONSOLE: [INFO] ByteCart : Router : coming from NORTH going to NORTH
3:43:39 PM CONSOLE: [INFO] ByteCart : minimum found ring 2 with 199
3:43:39 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:39 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:39 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:40 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:40 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:40 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:40 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:41 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:41 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:42 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:42 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:43 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:43 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:43 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:43 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:44 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:44 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:44 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:44 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:46 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:46 PM CONSOLE: [INFO] ByteCart : Router : coming from NORTH going to NORTH
3:43:46 PM CONSOLE: [INFO] ByteCart : minimum found ring 2 with 199
3:43:46 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:46 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:46 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:47 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:47 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:47 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:47 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:48 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:48 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:48 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:48 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:50 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:50 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:50 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:50 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:51 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()
3:43:51 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:51 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:51 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:52 PM CONSOLE: [INFO] ByteCart: BC8010.trigger()
3:43:52 PM CONSOLE: [INFO] ByteCart : setting metric of ring 1 to 201
3:43:52 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:52 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:52 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:52 PM CONSOLE: [INFO] ByteCart : minimum found ring 2 with 199
3:43:52 PM CONSOLE: [INFO] ByteCart : Router : coming from NORTH going to EAST
3:43:52 PM CONSOLE: [INFO] ByteCart : minimum found ring 2 with 199
3:43:52 PM CONSOLE: [INFO] ByteCart : Flushing 2504 bytes of data to meta
3:43:52 PM CONSOLE: [INFO] ByteCart : Flushing meta to itemstack
3:43:52 PM CONSOLE: [INFO] ByteCart : BookFile : closing
3:43:54 PM CONSOLE: [INFO] ByteCart: BC9001.trigger()

And so on and so forth.

catageek commented 7 years ago

Hi,

Correct me if I'm wrong, but this the log of a 'reset' region updater. The reset updaters run indefinitely, so this is normal.

You should run 'bcupdater region' to reconfigure the ring numbers, then 'bcupdater local' after to make sure that the stations IP are consistent with the loop there are in.

Please note that the 1 hour timeout is for big networks, it is safe to set it to 10 minutes in the configuration file if your network is completely visited by the updater during this time.

LaxSlash commented 7 years ago

That's /bcupdater local 1 new after about 2 hours of running. What I've been doing is watching the cart, and then once it runs through running /bcupdater remove - is this safe, or is there something else that it does after first assigning an address to the stations?

catageek commented 7 years ago

/bcupdater remove does nothing except turning all the updater carts into regular carts. It is safe in order to stop a update session. So the issue is the local updater running apparently indefinitely ? If the job is done on the signs, just ignore it. There is probably a timeout, but it is too far in the future. Just an update after 1 hour adds 2 hours to the timeout. We need the entire session logs to debug it.

I'm closing the ticket since the configuration seems to be clean. Enjoy your network.