You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2022/01/14 07:15:26 UTC
[GitHub] [pulsar] Jason918 commented on pull request #13725: Fix method is not safely accessed by multiple concurrent threads.
Jason918 commented on pull request #13725:
URL: https://github.com/apache/pulsar/pull/13725#issuecomment-1012836703
Sorry, I am not getting this yet.
In the error part.
https://github.com/apache/pulsar/blob/2a7515f9593a76b294bfe2835621a0ab8a904957/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LockManagerTest.java#L146-L148
We have the following key code line executed in the order:
```
[0] [Main Thread] lock.updateValue("value-2").join();
[1. Main Thread] store.put(path, payload, ...)
[2. metadata-store Thread] metadataCaches.forEach(c -> c.refresh(path));
[3. metadata-store Thread] objCache.synchronous().invalidate(path);
[4. metadata-store Thread] objCache.synchronous().refresh(path);
[5] cache.get("/my/path/1").join()
```
Is this the right executing order that [3] happens before [5]?
Why would [5] got value before [0] ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org