Confusion about the read concern majority int the document

I’m reading the document on write concern with majority in this documentation https://www.mongodb.com/docs/manual/reference/read-concern-majority/

The docs said:

read concern "majority" guarantees that the data read has been acknowledged by a majority of the replica set members (i.e. the documents read are durable and guaranteed not to roll back).

Then I look at the example part:

This example is causing confusion for me based on the definition above. According to the definition, after t3 when the data has been acknowledged, the expectation is that when reading from secondary 1 and secondary 2, I should receive write 0. However, to receive write 0, I have to wait until t5 and t6. This leads to a lack of “read your own writes” capability, as mentioned in the Read Your Own Writes section:

'Prior to MongoDB 3.6, in order to read your own writes you must issue your write operation with { w: “majority” } write concern, and then issue your read operation with primary read preference, and either “majority” or “linearizable” read concern.

Is it possible that the example in the document is incorrect?

Hi @phthaocse_N_A and welcome to the community forum!! :star:

Lets break the above statement into parts and understand briefly,
At t3, there data has been acknowledged for the write operation, which changes the write at Primary from Wprev to W0.
Now, read concern “majority” says that, it reads only things which has gone through majority of nodes.
At t3, when you try to read the data, you would only see the data that has been written in the primary and the secondary 1 which is the majority in the 3 node replica set.

From the image attached above, before t3, as the “majority read” says, it will read the data which is written to majority of nodes. Since before t3, the write has not been acknowledged, the read which happens only from Primary.
After t3, since the write has been acknowledged, the state of write at primary changes to W0, and hence you get W0 from the primary.

Now, before t5, the secondary 1 has the Wprev because it has not updated the snapshot to get the latest data which happens after t5 and the state of write changes to W0.
Similarly, when the snapshot of write is updated with the latest information, the state of write is changed to W0 after t6 for secondary2.

I hope I have been able to justly the answer but if my understanding is not correct, could you please elaborate on

Best regards
Aasawari