Hi Pasindu,
Thanks for the mail. I cloned the repo and tried to run it on my own computer, commit 925c171480f90b2d97f8ddf137a69cf1a25e1b42, but it runs through with no error - OK, if I add ‘-debug 4’, it fails. But without ‘-debug 4’, it works.
- What version of go are you using? Here I use go 1.14.2 on MacOS
- Usually I prefer using log.Print or log.Lvl for the different messages - it gives you also the line where the output is created.
- Another point is to create the smallest possible version that gives the error - strip away as much stuff to get the minimum code that gets you the error.
- I also don’t get why you’re using JSON to marshal the ServerIdentities - this is usually done by the framework itself using protobuf and takes care of all things like suites, points, and scalars.
- Also RawSend is usually an indication of a bad implementation. You should better write an onet-protocol with well-defined messages instead of writing your own RawSend messages.
- If have a gut feeling, then you need to test your gut. It _might_ give you a good indication, but most often it just gives you a first place to start, and the real error is elsewhere. Like the above indication: strip it down.
- As far as I can see, the error happens when the system tries to compare the ServerIdentities. So there is a possibility that you change a ServerIdentity somewhere you should not - it’s not always all nicely wrapped up, and some of the values
you get from the system should not be overwritten.
- To debug, I check out the Onet-code one level higher, and add the following line to your go.mod:
This allows you to drill in the error and understand better what is wrong.
- OK - I created
https://github.com/dedis/onet/pull/645 which should take care of the panic. But there is still something wrong at another place, because this panic should not happen
;) You can check out onet like described above, check out the equal_testing branch in onet, and then run your simulation. Once the PR is in, Onet-version needs to be increased, and then you can use it directly in your go.mod. But that you need to look with
the DEDIS guys.
- Finally, please use the #engineer channel on the DEDIS slack - this will make the other people aware of the problem, too, and they can chime in.
Best,
Linus