--- Log opened Tue Nov 09 00:00:27 2021 03:03 < kcalvinalvin> After undo 03:03 < kcalvinalvin> |-------------------------------\ 03:03 < kcalvinalvin> 12:1083 03:03 < kcalvinalvin> |---------------\ |---------------\ 03:03 < kcalvinalvin> 08:daaf 09:5bea 10:dfcb 03:03 < kcalvinalvin> |-------\ |-------\ |-------\ |-------\ 03:03 < kcalvinalvin> 00:0000 01:0100 02:0200 03:0300 04:0400 05:0500 03:03 < kcalvinalvin> f2 03:03 < kcalvinalvin> 06:1083 03:03 < kcalvinalvin> |---------------\ 03:03 < kcalvinalvin> 04:daaf 05:5bea 03:03 < kcalvinalvin> |-------\ |-------\ 03:03 < kcalvinalvin> 00:0000 01:0100 02:0200 03:0300 03:03 < kcalvinalvin> -------------------------------------------------------------- 03:03 < kcalvinalvin> --- FAIL: TestUndoRandom (0.00s) 03:03 < kcalvinalvin> undo_test.go:129: hashes aren't equal at global position: 4 forest: 040000ff00000000000000000000000000000000000000000000000000000000 compareForest: daaf42b3128dcdaa8056c38fb5563495c31a177988287f61bb15c572c9d1a726 03:04 < kcalvinalvin> One of the errors I'm getting. It's erroring out because the position 4 should be at row 1 but the forest.data.read(4) will return the position 4 at row 0 03:07 < kcalvinalvin> There's another super weird one 03:07 < kcalvinalvin> Before modify 03:07 < kcalvinalvin> |---------------------------------------------------------------\ 03:07 < kcalvinalvin> 28:9012 03:07 < kcalvinalvin> |-------------------------------\ |-------------------------------\ 03:07 < kcalvinalvin> 24:5807 25:3793 26:0b11 03:07 < kcalvinalvin> |---------------\ |---------------\ |---------------\ |---------------\ 03:07 < kcalvinalvin> 16:00ba 17:9aba 18:c273 19:e5c4 20:82cc 21:daaf 03:07 < kcalvinalvin> |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ 03:07 < kcalvinalvin> 00:0b00 01:0c00 02:0d00 03:0e00 04:0600 05:0700 06:0800 07:0a00 08:0000 09:0400 10:0200 11:0100 03:07 < kcalvinalvin> Before undo 03:07 < kcalvinalvin> |---------------------------------------------------------------\ 03:07 < kcalvinalvin> 28:9012 03:07 < kcalvinalvin> |-------------------------------\ |-------------------------------\ 03:07 < kcalvinalvin> 24:5807 25:3793 26:0b11 03:07 < kcalvinalvin> |---------------\ |---------------\ |---------------\ |---------------\ 03:07 < kcalvinalvin> 16:00ba 17:9aba 18:c273 19:e5c4 20:82cc 21:daaf 03:07 < kcalvinalvin> |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ |-------\ 03:07 < kcalvinalvin> 00:0b00 01:0c00 02:0d00 03:0e00 04:0600 05:0700 06:0800 07:0a00 08:0000 09:0400 10:1000 11:0100 03:07 < kcalvinalvin> Look at position 10 03:07 < kcalvinalvin> 1000 is added but just overwrites 0200 03:08 < kcalvinalvin> I'm not sure if 0200 is not supposed to be there 03:08 < kcalvinalvin> Anyhow, the idea of "don't read past the edge" is not working 03:10 < kcalvinalvin> I'll put up how to reproduce these on an issue 03:54 < devrandom> "One of the errors I'm getting..." <- I assume you are using a modified version of the `Equal` implementation that you first introduced in PR 329. I believe the issue, at least with this failure, is with that implementation. The row start position and the row logical length need to be computed. The row start position can be gotten via `getRowOffset` and is dependent on the number of rows, which is different for the two trees. 03:54 < devrandom> The row logical length is dependent on the number of leaves and the row number and is the same for the two trees, but the comparison must not look beyond that length, or you'll be comparing the garbage at the end of the row. 03:55 < devrandom> I'll add some comments on #329. 04:07 < devrandom> https://github.com/mit-dci/utreexo/pull/329#pullrequestreview-801185240 09:26 < kcalvinalvin> lol looked at the comments on the PR and looked up getRowOffset() 09:26 < kcalvinalvin> Turns out I wrote it last year 09:27 < kcalvinalvin> hmmm I should re-read the codebase docs once in a while --- Log closed Wed Nov 10 00:00:28 2021