{"action":"created","issue":{"url":"https://api.github.com/repos/squid-cache/squid/issues/161","repository_url":"https://api.github.com/repos/squid-cache/squid","labels_url":"https://api.github.com/repos/squid-cache/squid/issues/161/labels{/name}","comments_url":"https://api.github.com/repos/squid-cache/squid/issues/161/comments","events_url":"https://api.github.com/repos/squid-cache/squid/issues/161/events","html_url":"https://github.com/squid-cache/squid/pull/161","id":300075311,"number":161,"title":"Fixed Transient reader locking broken by 4310f8b","user":{"login":"rousskov","id":1084944,"avatar_url":"https://avatars0.githubusercontent.com/u/1084944?v=4","gravatar_id":"","url":"https://api.github.com/users/rousskov","html_url":"https://github.com/rousskov","followers_url":"https://api.github.com/users/rousskov/followers","following_url":"https://api.github.com/users/rousskov/following{/other_user}","gists_url":"https://api.github.com/users/rousskov/gists{/gist_id}","starred_url":"https://api.github.com/users/rousskov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rousskov/subscriptions","organizations_url":"https://api.github.com/users/rousskov/orgs","repos_url":"https://api.github.com/users/rousskov/repos","events_url":"https://api.github.com/users/rousskov/events{/privacy}","received_events_url":"https://api.github.com/users/rousskov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-02-26T00:04:04Z","updated_at":"2018-02-26T15:48:19Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/squid-cache/squid/pulls/161","html_url":"https://github.com/squid-cache/squid/pull/161","diff_url":"https://github.com/squid-cache/squid/pull/161.diff","patch_url":"https://github.com/squid-cache/squid/pull/161.patch"},"body":"The closeForWriting() call comment is correct -- we must keep the lock,\nbut the optional argument was accidentally lost (when undoing the failed\nattempt to remove all long-term transient locks in the feature branch).\n\nAlso polished stale comments (which led to the above bug discovery!)."},"comment":{"url":"https://api.github.com/repos/squid-cache/squid/issues/comments/368546919","html_url":"https://github.com/squid-cache/squid/pull/161#issuecomment-368546919","issue_url":"https://api.github.com/repos/squid-cache/squid/issues/161","id":368546919,"user":{"login":"rousskov","id":1084944,"avatar_url":"https://avatars0.githubusercontent.com/u/1084944?v=4","gravatar_id":"","url":"https://api.github.com/users/rousskov","html_url":"https://github.com/rousskov","followers_url":"https://api.github.com/users/rousskov/followers","following_url":"https://api.github.com/users/rousskov/following{/other_user}","gists_url":"https://api.github.com/users/rousskov/gists{/gist_id}","starred_url":"https://api.github.com/users/rousskov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rousskov/subscriptions","organizations_url":"https://api.github.com/users/rousskov/orgs","repos_url":"https://api.github.com/users/rousskov/repos","events_url":"https://api.github.com/users/rousskov/events{/privacy}","received_events_url":"https://api.github.com/users/rousskov/received_events","type":"User","site_admin":false},"created_at":"2018-02-26T15:48:19Z","updated_at":"2018-02-26T15:48:19Z","author_association":"CONTRIBUTOR","body":"> what if we manage to generate somehow a couple of URLs giving the same Transients index?\r\n\r\nGood idea! I have (incorrectly or at least prematurely) rejected it when thinking about ways to trigger this bug because I thought that it is not feasible, but, thanks to your prompt, I now know that fairly simple MD5 collisions have been [discovered](https://crypto.stackexchange.com/questions/1434/are-there-two-known-strings-which-have-the-same-md5-hash-value). I do not know whether there is an algorithm to produce an MD5 collision with a specific input prefix (i.e., `GET http://host/`), but I hope there is, and some of those Stack Exchange answers look promising! Please research that as a part of your Daft test case rewriting issue.\r\n\r\nPlease note that you will most likely need to %-encode the URLs because colliding URLs probably have to contain unsafe characters, but that is OK if Squid computes the cache key _after_ decoding %-encoding. That is something you should double check though.\r\n\r\nEven if we cannot use colliding URLs to test this bug (for some yet-undiscovered reason), it would be great to have them as a tool for other test cases. URLs created \"by hand\" are a bit difficult to work with because they are constant (no random path part) and, hence, may clash with prior or parallel test cases, but they are still valuable IMO. For example, they can expose the lack of key collision checks in proxy code."}}
{"actor":{"display_login":"rousskov"}}