While working on #729, I found out some similar issues on JDC and Pool, which I prefer to tackle with a specific PR.
Problem
Pool and JDC handle ExtranonceAllocator failures inconsistently:
allocate_standard() failures trigger a global application shutdown.
allocate_extended() reports every failure as min-extranonce-size-too-large, including CapacityExhausted.
This affects both applications, although JDC’s limit (65,536 channels) is lower than Pool’s (16,777,216).
Expected behavior
Distinguish InvalidRollableSize from CapacityExhausted, reject only the affected channel request with an appropriate OpenMiningChannelError, and keep existing connections running.
Add regression tests for both Pool and JDC.
While working on #729, I found out some similar issues on JDC and Pool, which I prefer to tackle with a specific PR.
Problem
Pool and JDC handle
ExtranonceAllocatorfailures inconsistently:allocate_standard()failures trigger a global application shutdown.allocate_extended()reports every failure asmin-extranonce-size-too-large, includingCapacityExhausted.This affects both applications, although JDC’s limit (65,536 channels) is lower than Pool’s (16,777,216).
Expected behavior
Distinguish
InvalidRollableSizefromCapacityExhausted, reject only the affected channel request with an appropriateOpenMiningChannelError, and keep existing connections running.Add regression tests for both Pool and JDC.