Hi all,
I recently updated my cluster to release 24.5.22, and when I did this all my active worker Pioreactors disconnected and no longer show up in the inventory (not just that they are unassigned). I’ve tried power cycling my cluster leader and multiple different workers, reflashing workers, and adding from the UI or command line, but I cannot get any of my workers to be added. When I try to add from the UI, I get the error:
"Unable to complete connection. The following error occurred: ... ERROR [add_pioreactor] Did not add
Pioreactor to backende[0m Traceback (most recent call last): File "/usr/local/lib/python3.11/dist
packages/pioreactor/cluster_management/__init__.py", line 110, in add_worker result.raise_for_status()
File "/usr/local/lib/python3.11/dist-packages/pioreactor/mureq.py", line 230, in raise_for_status raise
HTTPErrorStatus(self.status_code) pioreactor.mureq.HTTPErrorStatus: HTTP response returned error
code 500 During handling of the above exception, another exception occurred: Traceback (most recent
call last): File "/usr/local/bin/pio", line 8, in <module> sys.exit(pio()) ^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 1157, in __call__ return self.main(*args,
**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/click/core.py", line
1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist
packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1688, in
invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 1434, in invoke return
ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 783, in invoke return __callback(*args,
**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist
packages/pioreactor/cluster_management/__init__.py", line 113, in add_worker raise HTTPException("Did
not add Pioreactor to backend") http.client.HTTPException: Did not add Pioreactor to backend"
Any ideas on how to fix this? I am running on a local access point and previously had 4 workers connected to my cluster leader (Raspberry Pi without HAT), all my Raspberry Pis are 3 Model A+, and all my pioreactors version 1.0. I had tried updating the config.ini file to include
model=pioreactor_20ml
version=1.0
but had even more errors when I tried that:
Unable to complete connection. The following error occurred: ... ERROR [add_pioreactor] + set -e + export
LC_ALL=C + LC_ALL=C + SSHPASS=raspberry + PIO_VERSION=1.0 + PIO_MODEL=pioreactor_20ml +
HOSTNAME=worker1 + HOSTNAME_local=worker1.local + USERNAME=pioreactor ++ hostname +
LEADER_HOSTNAME=leader + ssh-keygen -R worker1.local + ssh-keygen -R worker1 ++ getent hosts
worker1.local ++ cut '-d ' -f1 + ssh-keygen -R 10.42.0.61 + N=120 + counter=0 + sshpass -p raspberry ssh
pioreactor@worker1.local 'test -d /home/pioreactor/.pioreactor && echo '\''exists'\''' Warning:
Permanently added 'worker1.local' (ED25519) to the list of known hosts. + pio workers discover -t + grep
-q worker1 + sshpass -p raspberry ssh-copy-id pioreactor@worker1.local /usr/bin/ssh-copy-id: INFO:
Source of key(s) to be installed: "/home/pioreactor/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO:
attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id:
WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a
mistake, you may want to use -f option) +
UNIT_CONFIG=/home/pioreactor/.pioreactor/config_worker1.ini + rm -f
/home/pioreactor/.pioreactor/config_worker1.ini + touch
/home/pioreactor/.pioreactor/config_worker1.ini + echo -e '# Any settings here are specific to worker1,
and override the settings in shared config.ini' + crudini --set
/home/pioreactor/.pioreactor/config_worker1.ini pioreactor version 1.0 --set
/home/pioreactor/.pioreactor/config_worker1.ini pioreactor model pioreactor_20ml + ssh-keyscan
worker1.local # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0
OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22
SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 + pios
sync-configs --units worker1 --skip-save e[36m2023-12-11T17:11:10-0500 DEBUG [sync_configs] Syncing
configs on worker1...e[0m + sleep 1 + N=120 + counter=0 + sshpass -p raspberry ssh
pioreactor@worker1.local 'test -f /home/pioreactor/.pioreactor/config.ini && echo '\''exists'\''' + ssh
pioreactor@worker1.local 'echo "server leader.local iburst prefer" | sudo tee -a /etc/chrony/chrony.conf'
tee: /etc/chrony/chrony.conf: No such file or directory e[0m Traceback (most recent call last): File
"/usr/local/bin/pio", line 8, in <module> sys.exit(pio()) ^^^^^ File "/usr/local/lib/python3.11/dist
packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1078, in main rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1688, in invoke return
_process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 1688, in invoke return
_process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 1434, in invoke return
ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
"/usr/local/lib/python3.11/dist-packages/click/core.py", line 783, in invoke return __callback(*args,
**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist
packages/pioreactor/cluster_management/__init__.py", line 102, in add_worker raise
BashScriptError(res.stderr) pioreactor.exc.BashScriptError: + set -e + export LC_ALL=C + LC_ALL=C +
SSHPASS=raspberry + PIO_VERSION=1.0 + PIO_MODEL=pioreactor_20ml + HOSTNAME=worker1 +
HOSTNAME_local=worker1.local + USERNAME=pioreactor ++ hostname + LEADER_HOSTNAME=leader
+ ssh-keygen -R worker1.local + ssh-keygen -R worker1 ++ getent hosts worker1.local ++ cut '-d ' -f1 +
ssh-keygen -R 10.42.0.61 + N=120 + counter=0 + sshpass -p raspberry ssh pioreactor@worker1.local
'test -d /home/pioreactor/.pioreactor && echo '\''exists'\''' Warning: Permanently added 'worker1.local'
(ED25519) to the list of known hosts. + pio workers discover -t + grep -q worker1 + sshpass -p raspberry
ssh-copy-id pioreactor@worker1.local /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: \
"/home/pioreactor/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),
to filter out any that are already installed /usr/bin/ssh-copy-id: WARNING: All keys were skipped because
they already exist on the remote system. (if you think this is a mistake, you may want to use -f option) +
UNIT_CONFIG=/home/pioreactor/.pioreactor/config_worker1.ini + rm -f
/home/pioreactor/.pioreactor/config_worker1.ini + touch
/home/pioreactor/.pioreactor/config_worker1.ini + echo -e '# Any settings here are specific to worker1,
and override the settings in shared config.ini' + crudini --set
/home/pioreactor/.pioreactor/config_worker1.ini pioreactor version 1.0 --set
/home/pioreactor/.pioreactor/config_worker1.ini pioreactor model pioreactor_20ml + ssh-keyscan
worker1.local # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0
OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22
SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 # worker1.local:22 SSH-2.0-OpenSSH_9.2p1 -2+deb12u1 + pios
sync-configs --units worker1 --skip-save e[36m2023-12-11T17:11:10-0500 DEBUG [sync_configs] Syncing
configs on worker1...e[0m + sleep 1 + N=120 + counter=0 + sshpass -p raspberry ssh
pioreactor@worker1.local 'test -f /home/pioreactor/.pioreactor/config.ini && echo '\''exists'\''' + ssh
pioreactor@worker1.local 'echo "server leader.local iburst prefer" | sudo tee -a /etc/chrony/chrony.conf'
tee: /etc/chrony/chrony.conf: No such file or directory