Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

possible missing MST node in firehose event from atproto.brid.gy #1758

Open
bnewbold opened this issue Feb 6, 2025 · 1 comment
Open

possible missing MST node in firehose event from atproto.brid.gy #1758

bnewbold opened this issue Feb 6, 2025 · 1 comment

Comments

@bnewbold
Copy link

bnewbold commented Feb 6, 2025

I'm writing an updated MST implementation to validate events on the firehose, and it failed on this commit message from atproto.brid.gy:

{
  "blobs": null,
  "blocks": {
    "$bytes": "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"
  },
  "commit": {
    "$link": "bafyreicdzinnqpmmiz7k4wkiedjjfplyoddzwhyc7tkpo7gnxjug355ipa"
  },
  "ops": [
    {
      "action": "create",
      "cid": {
        "$link": "bafyreie3szkwavmfre52csyzatnv7f5puo5gfjawn4fbr5q3fhwarfd56a"
      },
      "path": "app.bsky.feed.repost/3lhhvdr62cze2"
    }
  ],
  "prev": null,
  "rebase": false,
  "repo": "did:plc:2bpboeb6wt2wtvqpgvggjml6",
  "rev": "222222d7n7q22",
  "seq": 4621317332,
  "since": null,
  "time": "2025-02-06T01:05:06.935Z",
  "tooBig": false
}

(the content of this event is the creation of a single repost, which I don't think raises too many privacy concerns)

Here is what the partial tree (loaded from the blocks) looks like:

tree root (height=4)
├─ (3; partial) bafyreibnc5zayvllkvyv6j2tmku453rnfivmff24l6kido6getx425g3zq
├ (4) app.bsky.feed.like/3lavgxai7klx2 -> bafyreib5qenoamv6do2a5gdmv3inzugnkedvqo7f3twgjjy2f2mqe4qlha
├─ (3; partial) bafyreid3tssayyv7clmrfia3x3cnms2ngq5rzk4dny76ypuwizd6y43qny
├ (4) app.bsky.feed.like/3ldskrdabj3n2 -> bafyreigxa347li7u2zr2bpylmqbxogbdsd5q3hpow73i6afqudsibeqkdi
├─ (3; partial) bafyreidtphyx6puyirdqklmhoxfcrrrjotwg22uce7qz3txjuza4si2gi4
├ (4) app.bsky.feed.post/3l6bxwo227jl2 -> bafyreigpxhdxlgea5p5kugng35q56unfgzmbvtg5xayepu35yougnypmwy
├─ (3; partial) bafyreieidpuwijau7vsirep452o66tjg4q4tm5a3croyndywadu4jwidde
├ (4) app.bsky.feed.post/3l7rh24yqkwn2 -> bafyreibv5z3xsea34u5wv2kdezpjwifvji5mqt4wotlscxrndmv4jsxb5y
├─ (3; partial) bafyreicwp2pdtxhogogcprzpqenhkzy64lrdwgnlquh2hajnb3dixqnmqe
├ (4) app.bsky.feed.post/3lchqpjsgdtv2 -> bafyreidihx6pcrva25lhi4xc4amfmhvnid7bhkisvq5zt5ojg5fuquwvrm
├─ (3; partial) bafyreiclsvfzvzs3uvk2lrxpsb75t6ixztjmppyubd6tf53v6nogxv5nui
├ (4) app.bsky.feed.post/3lebnyz7jn2i2 -> bafyreiajos7acis7rl2coecwscuoik3noslaclkg5gg5tlm5dwtenbsfmu
├─ (3; partial) bafyreigdqgvgxmijvqgqnx4qufkfsrpsafjtdrovu3a7lph2vpxd2k6abq
├ (4) app.bsky.feed.repost/3l5vd3ny6ckx2 -> bafyreigqawht4hjerr6lz3xh7gt556sboubj5zwhdp54xz7osxypnve5nq
├─ (3; partial) bafyreia7h7ohczlql2ehhw2rcftmgswziwgqbleyoshgnjbp24xvgprike
├ (4) app.bsky.feed.repost/3lapr45mzpm62 -> bafyreigimeq7ktzbbdu4xvniru7nr63q6ujkemcuzmaspio3rxkkxvuhte
└┬─ (2; partial) bafyreifdclx4ehjno2xwzqqf6war4jvtqoc7jpvlhg2eafmp45fipil3yu
│├ (3) app.bsky.feed.repost/3laq4zle37fe2 -> bafyreibzhbdakvnzhx3xyulhu3jo7gicbf3kja23jolbsq7jb6hghkhcrq
│├─ (2; partial) bafyreias6mnyx2i36qpwfsmawoyxyyoryinzr2ad5nnlbnn7yxlhffqtmi
│├ (3) app.bsky.feed.repost/3lhfc7wdnccp2 -> bafyreiadyyvt2nj54cjgsr57mmalccrssydbgsbwbjuhhqwiqehbgmmrf4
│└─┬ (1) app.bsky.feed.repost/3lhfcdfl73gl2 -> bafyreia56zb5fyjefacr5jyadwzg7zxewipgh7vhilchh5p4m44uygm33e
│││├┬ (0) app.bsky.feed.repost/3lhfe5f2sypp2 -> bafyreihjasuxmgksr27bxflzia46isk2v6om6krif5qz3isi44ostjy2yi
││││└ (0) app.bsky.feed.repost/3lhhs7lnwku72 -> bafyreifn5mhl2vjmixl6wgo3utjg6fxltpwyad65osjugieyhwh64biepi
│││├ (1) app.bsky.feed.repost/3lhhvdr62cze2 -> bafyreie3szkwavmfre52csyzatnv7f5puo5gfjawn4fbr5q3fhwarfd56a
│││└─ (0; partial) bafyreihakg2pbt4behbphrpcx3u5hz5eziqsbudhlfsoda5eab6hixl3ea

The new record is app.bsky.feed.repost/3lhhvdr62cze2 down near the bottom. This is an entry on a tree node of height=1, and the creation seems to have split two nodes at height=0. One of those nodes is included in the message blocks, but the other is not.

I see one of these every few seconds on the global firehose, and so far all have come via bridgy. This is new code on my end and it is totally possible I have a bug.

I don't think isn't super urgent to fix right now. We will be making small tweaks to the firehose format soon (had a short conversation with snarfed about that yesterday), and it might make sense to hold off on diving in to the MST code until the updated specs are ready (hopefully in the next week or two).

@snarfed
Copy link
Owner

snarfed commented Feb 7, 2025

Ooh, interesting, and useful! Thank you @bnewbold! Not sure but likely our fault, not yours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants