Open sbellem opened 4 years ago
We do not have any ci tests covering this AWS code, so it is not surprising if small interface changes or refactoring end up breaking these.
A note to myself to keep track of the progress on fixing this issue ... currently fixed the "original" error and running into this error:
ubuntu@ip-172-31-88-6:~$ sudo docker run -p 7000:7000 -v /home/ubuntu/config:/usr/src/HoneyBadgerMPC/config/ -v /home/ubuntu/sharedata:/usr/src/HoneyBadgerMPC/sharedata/ -v /home/ubuntu/benchmark-logs:/usr/src/Ho
neyBadgerMPC/benchmark-logs/ sbellem/honeybadgermpc python -m honeybadgermpc.ipc -d -f config/config-1.json
2020-01-29 22:05:54,345:[base_events.py:1604]:[ERROR]: Exception in callback ProcessProgramRunner.execute.<locals>.callback(<Task finishe...ound only 0')>) at /usr/src/HoneyBadgerMPC/honeybadgermpc/ipc.py:144
handle: <Handle ProcessProgramRunner.execute.<locals>.callback(<Task finishe...ound only 0')>) at /usr/src/HoneyBadgerMPC/honeybadgermpc/ipc.py:144>
Traceback (most recent call last):
File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/ipc.py", line 145, in callback
program_result.set_result(future.result())
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 243, in _run
return result.result()
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 356, in test_prog2
shares = [context.preproc.get_zero(context) for _ in range(1000)]
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 356, in <listcomp>
shares = [context.preproc.get_zero(context) for _ in range(1000)]
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 647, in get_zero
return self._zeros.get_value(context)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 101, in get_value
to_return, used = self._get_value(context, key, *args, **kwargs)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 427, in _get_value
f"Expected "
AssertionError: Expected 1 elements of zeros, but found only 0
Isn't this just the error message due to preprocessing underrun? Generate more zeroes?
just adding a bit of logging info for the above error:
2020-01-30 18:30:44,067:[base_events.py:1604]:[ERROR]: Exception in callback print_exception_callback(<Task finishe..., 1): 0})\n")>) at /usr/src/HoneyBadgerMPC/honeybadgermpc/utils/misc.py:11
handle: <Handle print_exception_callback(<Task finishe..., 1): 0})\n")>) at /usr/src/HoneyBadgerMPC/honeybadgermpc/utils/misc.py:11>
Traceback (most recent call last):
File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/utils/misc.py", line 17, in print_exception_callback
raise ex
File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/ipc.py", line 145, in callback
program_result.set_result(future.result())
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 243, in _run
return result.result()
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 317, in test_batchopening
xs = [context.preproc.get_zero(context) + context.Share(i) for i in range(100)]
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/mpc.py", line 317, in <listcomp>
xs = [context.preproc.get_zero(context) + context.Share(i) for i in range(100)]
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 649, in get_zero
return self._zeros.get_value(context)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 101, in get_value
to_return, used = self._get_value(context, key, *args, **kwargs)
File "/usr/src/HoneyBadgerMPC/honeybadgermpc/preprocessing.py", line 427, in _get_value
f"Expected "
AssertionError: Expected 1 elements of zeros, but found only 0
key is: (0, 4, 1)
count is: defaultdict(<class 'int'>, {(0, 5, 1): 1000, (0, 4, 1): 0})
the key/tuple (0, 4, 1)
corresponds to (context.my_id, context.N, context.t)
which is built from the config:
ubuntu@ip-172-31-46-44:~$ cat config/config-0.json
{"N": 4, "t": 1, "my_id": 0, "peers": ["34.229.192.79:7000", "54.92.170.32:7000", "52.67.182.22:7000", "3.126.146.22:7000", "35.183.10.38:7000"], "reconstruction": {"induce_faults": false}, "skip_preprocessing": true, "extra": {}}
so what is not clear to me now, and what I am looking into now, is why is also the tuple (0, 5, 1)
an entry, and this one has 1000 elements compared to (0, 4, 1)
which has 0 ...
the contents of the sharedata
dir on one of the machines:
ubuntu@ip-172-31-46-44:~$ ls sharedata/
triples_5_1-0.share zeros_5_1-0.share
ubuntu@ip-172-31-46-44:~$ wc -l sharedata/zeros_5_1-0.share
1003 sharedata/zeros_5_1-0.share
Isn't this just the error message due to preprocessing underrun? Generate more zeroes?
Yes, generating more zeroes works ... :smile: but the value of n
needs to match the number of VMs, as this number is currently used when generating triples and zeroes, e.g.:
That script may need to change since we may have VMs for clients in an experiment, that would not count as part of n or t. This especially occurs when running experiments for AVSS where there is a separate dealer
Happens when running the experiment on EC2, for the commands:
python -m apps.asynchromix.powermixing
python -m apps.asynchromix.butterfly_network
python -m honeybadgermpc.ipc