2020-02-04 09:59:38
the pool now has these in the logs
```Feb 04, 2020 9:56:16 AM snowblossom.miner.plow.MrPlow$BlockTemplateEater onError
INFO: Got error:io.grpc.StatusRuntimeException: UNAVAILABLE: Channel shutdownNow invoked```
Rotonen
2020-02-04 10:00:24
it is getting the block info too, but something is erroring out
Rotonen
2020-02-04 16:26:15
Yeah, it is messily creating new connections
Fireduck
2020-02-04 16:26:36
Which is what I was trying to fix when I introduced that bug
Fireduck
2020-02-04 21:13:51
frying pan -> fire
Rotonen
2020-02-04 21:14:35
yeah, so I did a simple revert of that
Fireduck
2020-02-04 21:14:39
working on a better fix now
Fireduck
2020-02-04 21:15:29
i can do low impact testing as essentially no one mines on my pool
Rotonen
2020-02-04 21:16:36
it took me stupidly long to get my unit test for this case working
Fireduck
2020-02-04 21:17:05
turns out I was running the MrPlow maintenance loop from main() so my tests were not running it at all
Fireduck
2020-02-04 21:37:13
rough
Rotonen
2020-02-04 21:38:12
i suppose it’d not be too fun to blackbox / smoketest that with controlling processes and asserting on the log output?
Rotonen
2020-02-04 21:38:54
mostly the data setup would be hard to build and still not make it realistic
Rotonen
2020-02-04 21:40:01
hmm, maybe build a log parser with a whitelist and have it alert you of every unexpected output? and just leave stuff running?
Rotonen
2020-02-04 21:40:02
For most of my modules, it is easy to start them up with just new Thing(config)
Fireduck
2020-02-04 21:40:17
and then I can use methods on the thing to check on its state
Fireduck
2020-02-04 21:40:35
so in the case of the mining test, I start up a node, a MrPlow and two miners
Fireduck
2020-02-04 21:40:47
then I check with a client connected to the node that the miners are making funds
Fireduck
2020-02-04 21:41:23
that’s already better orchestrated than i’m assuming
Rotonen
2020-02-04 21:41:42
then I call the shutdown methods, which may or may not work
Fireduck
2020-02-04 21:41:51
but regardless, junit/bazel cleans it up eventually
Fireduck
2020-02-04 21:42:14
There are almost certainly some linger thread pools and such, but not a big deal
Fireduck
2020-02-04 21:47:01
new version is looking good, but the node will need to be updated first
Fireduck
2020-02-04 21:47:08
There is a new updatable template grpc
Fireduck
2020-02-04 21:49:15
*https://github.com/snowblossomcoin/snowblossom/compare/6cf1a66112b5...4c134b9888a4*
https://github.com/snowblossomcoin/snowblossom/commit/4c134b9888a4ae1b09f47f08d570411a88d87007 - New block template RPC and unit tests for miner pay changes
GitHub
2020-02-04 22:00:30
*https://github.com/snowblossomcoin/snowblossom/compare/4c134b9888a4...a20502254b67*
https://github.com/snowblossomcoin/snowblossom/commit/a20502254b677d1fe8d1f72f9577e4b6af3a9803 - fix typo
GitHub
2020-02-04 22:01:49
other than one of my testnet nodes was way out of date, it seems to be working fine
Fireduck
2020-02-04 22:06:25
does only the pool depend on the block template?
Rotonen
2020-02-04 22:07:37
The old solo miner does
Fireduck
2020-02-04 22:07:49
which is why I am leaving in the old rpc
Fireduck
2020-02-04 22:07:52
not a lot of code
Fireduck
2020-02-04 22:22:51
rather kill the solo miner than carry cruft?
Rotonen
2020-02-04 22:23:16
for anyone mad enough to think they can do it, they might as well go for writing their own miner instead
Rotonen
2020-02-04 22:25:03
The cruft is about 10 lines, I'm not worried about it
Fireduck
2020-02-04 22:26:56
so it starts
Rotonen
2020-02-04 22:27:05
removing code is like the best thing ever
Rotonen
2020-02-04 22:29:56
When I was at Amazon I did a project where I was about to delete a few packages totaling about 25k lines of stupid. That was good.
Fireduck
2020-02-04 22:31:09
i'd love to see the process red tape for that :smile:
Rotonen
2020-02-04 22:32:21
Basically none. The previous packages were a dumpster fire.
Fireduck
2020-02-04 22:32:38
My replacement worked faster, more reliably and with about half the hardware
Fireduck
2020-02-04 22:32:59
But this was a long time ago, probably 2010 or so
Fireduck
2020-02-04 22:33:13
maybe it's different when you're in house, as an external it was thicker than any governments i've dealt with in similar circumstances
Rotonen
2020-02-04 22:33:50
my experience is from 2014
Rotonen
2020-02-04 22:34:14
It was a relatively new cloud product at the time (SNS)
Fireduck
2020-02-04 22:35:03
used that in 2012 to pass turns around in a turn based iOS game
Rotonen
2020-02-04 22:35:17
the pricing model was prone for abusing the hell out of it
Rotonen
2020-02-04 22:35:38
good
Fireduck
2020-02-04 22:37:21
The parts I replaced had so much insane broker indirection that it sometimes delivered messages to the wrong queue (owned by a different customer)
Fireduck
2020-02-04 22:37:54
off by one? :smile:
Rotonen
2020-02-04 22:38:35
timing issue, grab a broken from a pool, assign it to an endpoint, use it
Fireduck
2020-02-04 22:38:46
something like that, but with some sort of really stupid race condition
Fireduck
2020-02-04 22:39:37
as a business with cash to burn in getting a position in a new market, it's not a bad idea to go live with something which is barely holding together
Rotonen
2020-02-04 22:39:53
if the business side of it makes any sense, then just burn more cash to redo it
Rotonen
2020-02-04 22:40:18
yeah, probably true
Fireduck
2020-02-04 22:40:19
there are not many companies on the planet where that makes sense
Rotonen
2020-02-04 22:40:29
but amazon certainly has the cash
Rotonen
2020-02-04 22:40:31
like how S3 implemented reduced redundancy storage at first
Fireduck
2020-02-04 22:40:49
Initially, it was just a bit you set that charged you less money
Fireduck
2020-02-04 22:41:14
And they would (I imagine) run a query occasionally to see how much they would save by implementing the actual feature
Fireduck
2020-02-04 22:41:32
yep
Rotonen
2020-02-04 22:42:11
also there's the classic category of not doing some expensive rarely used doohickey in tech, but actually dedicating people to act behind the curtain
Rotonen
2020-02-04 22:42:39
hah, yeah
Fireduck
2020-02-04 22:42:43
probably going to be better and more accurate than the initial implementation would be anyway :smile:
Rotonen