so, lets prove me wrong, re-start the pool and lets see what happens! :-)
Do you want to say that Kano is not interested in finding blocks by his pool? where is the logic?
Indeed - I only restart the pool when it needs to be.
Due to: resource issues, changes, or it restarts itself if it crashes.
Restarting KDB has no effect at all on your work/block finding data unless it cascades into a pool restart also
(which is rare but not 'never')
Yes indeed it is fun to think that restarts are helpful, but when it degenerates in to comments about code problems ... well ... OK ... fun gone
I am not doubting your ability's at all. In fact I know you know what you are doing. I just made a comment that it has happened a few times that these long spells have been fixed after a pool restart. Yes, I may notice that moreso than when there was no restart.
I understand the miners do the work, but the work is issued to them by the pool. If the work issued or the returned work is not generated properly, or logged properly, or some small thing is happening that is not noticed which yields bad work from miners, or not even that, just missed or mis-handled work of a miner. Maybe it happens, maybe there is some set of circumstances that occur that is not "visible"
Look at it this way... and I know this has happened to me with other stuff. You write your code, you have gone through it more often than you can remember. If your looking at it and expecting it to be correct, you might gloss over something. I do not mean any disrespect by any means. I have had people look over stuff I have done, and seen something, and its like.. oh yeah... opps. If there was an issue, i am sure you will find it, or have found other things as you have mentioned. Maybe the issue is not even with code, it could be something else. Bad transactions that are put into a block that effect the results, but hard to know which transactions are bad. And when I say bad, I do not mean one without proper funds, I mean with some other thing someone discovered that can corrupt data etc...
A good example is... remember when android phones could be hacked by just sending it an a particular SMS message. No one thought that would ever be the case, but somebody found out how to do it.
At the end of the day, Bitcoin has had alot of people doing alot of bad things to gain the advantage.
So, if I might be noticing these events, lets start a log.... well, actually you probably have a log of re-starts.. look back and find the dates and see if just preceeding it there was low block finds, and then more blocks found just after. maybe there is another event that happens that causes it, if it is even there. Maybe there is a set of circumstances that make it happen that isn't discovered yet.
Again, I am not trying to be disrespectful, I know that you are perfect if your work and knowledge. you understand the inner workings alot better than any of us. I am just saying it might be worth looking at it from a different angle. ( Again, not code related, but a set of circumstances, internal or external. Maybe a bad miner like the one you had sending invalid shares for over 2 months that you found. You said that it didnt send one valid share for that 2 or 2+ months, and that it doesnt affect the pool. So if someone had knowledge to modify miner code to make it send back all invalids, they probably know that this would not harm the pool. So why are they doing it? There has to be more to that one. )