ARM crash with a trivial API client
The source for 4.10.0 helpfully provides api-example.php which shows raw summary data, and then php data structure parsed from the raw summary data. All good, and works.
So, not being a php person I attempted to boil down what api-example.php does, and akaict it does this:
$ echo -n summary | nc 127.0.0.1 4028
Silly me, not only does that not work, but it crashes cgminer, and my 256M arm system running cgminer. (Some sort of resource exhaustion - system is still pingable, but unable to accept new logins.) Apparently, the slow readline loop to read result bytes one at a time is critical to avoid crashing cgminer. Is this a known problem?
All I want to do is monitor the total hash rate with nagios. I guess I can run php at each check...
I tried this on a x86_64 desktop (Fedora 25) running cgminer-4.10.0, and it works. On the arm controller, both versions crash with "echo -n summary | nc 127.0.0.1 4028". So I guess it might be a timing thing, and that slow read loop is critical on tiny computers. Maybe I can simulate it with python.
I tried with and without the embedded jansson-2.9 lib on X86_64 - it works on both. The arm box system jansson is 2.6, so I used the embedded version.
----
Update: twice now, reading status via API from miner.php has crashed the arm controller. So it is a timing thing, and it just happens much less often with the php client. The next step will be to put some resource limits on cgminer via its systemd service. If I can keep a login running when cgminer crashes, then we can do some debugging.