kth-tcs/trustfull-demonstrator

Crash after collecting votes due to not having `vbt` on path

Closed this issue · 0 comments

I ran the tally command, and it crashed after collection due to vbt not being available

Traceback (most recent call last):
  File "/home/slarse/Documents/github/work/trustfull-demonstrator/scripts/demo.py", line 752, in <module>
    sys.exit(main(parse_args()))
  File "/home/slarse/Documents/github/work/trustfull-demonstrator/scripts/demo.py", line 259, in main
    return globals()[f"{args.subparser_name}_main"](args)
  File "/home/slarse/Documents/github/work/trustfull-demonstrator/scripts/demo.py", line 376, in tally_main
    vbt_json = vbt_count("plaintexts", vbt_call)
  File "/home/slarse/Documents/github/work/trustfull-demonstrator/scripts/demo.py", line 725, in vbt_count
    vbt_call(fname),
  File "/home/slarse/Documents/github/work/trustfull-demonstrator/scripts/demo.py", line 740, in _check_output_vbt
    subprocess.check_output(
  File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.9/subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'vbt'

I figured "I'll just tally again with the bytetree parser", but VMN screamed bloody murder at that:

Exception in thread "main" com.verificatum.protocol.ProtocolError: Attempting to shuffle in a used session!

Suggested actions:

  1. Make the bytetree parser the default, as it's available in the project itself
  2. If using vbt, check that it's on the path before starting to collect votes
    • On that note, what is vbt? We should link to it in the README
  3. Perhaps disconnect the VMN part of producing the plaintext from the post-processing and uploading of that plaintext

Thoughts? 1. and 2. are trivial, I can do that if you agree they're good ideas. 3 is more work, we could have that as a TODO for the future.