I'm writing out a capnproto message using the go-capnproto implementation (
https://github.com/glycerine/go-capnproto), and when I'm checking it with the c++ 'capnp decode' utility, I'm getting a corrupt message report, which makes me think I've not serialized correctly. Is there any way to get more precise information about the locate of the byte/word that appears to be corrupt? That would make it much easier to track down where I'm going wrong during creation. If there was something I could hack into the error message at layout.c++:1911 that would be really helpful.
Thanks!
Jason
jaten@i7:~/pubgoq:master$ cat .goq/serverstate | capnp decode schema/zjob.capnp Z
( goqserver = (
nextjobid = 2,
waitingjobs = [
( id = 1,
msg = initialsubmit,
aboutjid = 0,
cmd = "bin/forev.sh",
args = [],
out = [],
env = [],
host = "",
stm = 0,
etm = 0,
elapsec = 0,
status = "",
subtime = 0,
pid = 0,
dir = "/home/jaten/dev/cnet/go/src/
github.com/glycerine/goq",
submitaddr = "tcp://
10.0.0.6:57957",
serveraddr = "",
workeraddr = "",
finishaddr = [],
signature = "49d8f04133b00aae0864ca524980ac634c4a0138",
islocal = false,
arrayid = 0,
groupid = 0,
cancelled = false,
delegatetm = 0,
lastpingtm = 0,
unansweredping = 0,
sendernonce = 2077616783183494630,
sendtime = 1401524574225712183 ) ],
finishedjobscount = 0,
badsgtcount = 0,
cancelledjobcount = 0,
badnoncecount = 0 ) )
*** ERROR DECODING PREVIOUS MESSAGE ***
The following error occurred while decoding the message above.
This probably means the input data is invalid/corrupted.
Exception description: expected ref->kind() == WirePointer::LIST; Message contains non-list pointer where list pointer was expected.
Code location: src/capnp/layout.c++:1911
*** END ERROR ***
jaten@i7:~/pubgoq:master$
For reference, the code that does creation through go-capnproto:
https://github.com/glycerine/goq/blob/master/goq.go#L1719capnp version (from 17 Nov 2013: a88c2b8828f846c1189aa59470a54bb7dbe9a5b2 )