{"action":"created","issue":{"url":"https://api.github.com/repos/google/kythe/issues/271","repository_url":"https://api.github.com/repos/google/kythe","labels_url":"https://api.github.com/repos/google/kythe/issues/271/labels{/name}","comments_url":"https://api.github.com/repos/google/kythe/issues/271/comments","events_url":"https://api.github.com/repos/google/kythe/issues/271/events","html_url":"https://github.com/google/kythe/issues/271","id":335557172,"node_id":"MDU6SXNzdWUzMzU1NTcxNzI=","number":271,"title":"Reproduce header search state and use a VFS for (k)index( packs). [phab:D67]","user":{"login":"kythe","id":10677145,"node_id":"MDQ6VXNlcjEwNjc3MTQ1","avatar_url":"https://avatars2.githubusercontent.com/u/10677145?v=4","gravatar_id":"","url":"https://api.github.com/users/kythe","html_url":"https://github.com/kythe","followers_url":"https://api.github.com/users/kythe/followers","following_url":"https://api.github.com/users/kythe/following{/other_user}","gists_url":"https://api.github.com/users/kythe/gists{/gist_id}","starred_url":"https://api.github.com/users/kythe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kythe/subscriptions","organizations_url":"https://api.github.com/users/kythe/orgs","repos_url":"https://api.github.com/users/kythe/repos","events_url":"https://api.github.com/users/kythe/events{/privacy}","received_events_url":"https://api.github.com/users/kythe/received_events","type":"User","site_admin":false},"labels":[{"id":932824657,"node_id":"MDU6TGFiZWw5MzI4MjQ2NTc=","url":"https://api.github.com/repos/google/kythe/labels/phabricator%20diff","name":"phabricator diff","color":"efd57f","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-25T20:32:57Z","updated_at":"2018-06-26T12:30:21Z","closed_at":"2018-06-25T20:32:59Z","author_association":"COLLABORATOR","body":"_Created by **zarko** at 2015-02-19 00:04:21_: \n\nThis CL addresses file lookup from index packs in a more thorough\nway. Previously we used Clang tooling support for virtual files\nand attempted to canonicalze paths using the working directory\nat the time of extraction. This was not a complete solution, as\nsome paths with relative elements (foo/../bar) would not be\ncorrectly handled. In fact, one root cause of #248 was that\nrelative paths were not mapped to virtual files, but instead were\nlooked up in the real filesystem. By using a virtual filesystem,\nwe can prevent (most) access to the real filesystem, thus catching\nthese kinds of errors in the future.\n\nThe other root cause of #248 is that the extractor can set up\na header search state that is not reproduced in the indexer.\nAbsent any manipulation, the header search state is a function\nof the machine on which Clang is currently running. This leads to\nconfusion when the indexer is run on a machine distinct from the one\nthat ran the extractor. Unfortunately, Clang's representation of\nthe search state depends on objects (DirectoryEntry*s) that cannot\nbe reasonably constructed without control of the VFS layer.\n\nThis CL does make the assumption that paths are tree-structured\n(/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/string\nis the same as /usr/include/c++/4.9/string). Should this be a problem,\nwe can complicate path canonicalization, perhaps by checking in the\nextractor whether relative paths have this property or not and\nblacklisting the ones that fail.\n\nTests were changed minimally. When not reading from a kindex\nor index pack, the indexer will still access the local filesystem."},"comment":{"url":"https://api.github.com/repos/google/kythe/issues/comments/400290009","html_url":"https://github.com/google/kythe/issues/271#issuecomment-400290009","issue_url":"https://api.github.com/repos/google/kythe/issues/271","id":400290009,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMDI5MDAwOQ==","user":{"login":"kythe","id":10677145,"node_id":"MDQ6VXNlcjEwNjc3MTQ1","avatar_url":"https://avatars2.githubusercontent.com/u/10677145?v=4","gravatar_id":"","url":"https://api.github.com/users/kythe","html_url":"https://github.com/kythe","followers_url":"https://api.github.com/users/kythe/followers","following_url":"https://api.github.com/users/kythe/following{/other_user}","gists_url":"https://api.github.com/users/kythe/gists{/gist_id}","starred_url":"https://api.github.com/users/kythe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kythe/subscriptions","organizations_url":"https://api.github.com/users/kythe/orgs","repos_url":"https://api.github.com/users/kythe/repos","events_url":"https://api.github.com/users/kythe/events{/privacy}","received_events_url":"https://api.github.com/users/kythe/received_events","type":"User","site_admin":false},"created_at":"2018-06-26T12:30:21Z","updated_at":"2018-06-26T12:30:21Z","author_association":"COLLABORATOR","body":"_**fromberger** commented inline (context lost during migration) at 2015-02-19 17:33:01_:\n\nPlease document what the fields mean here (I don't care about doxygen; brief line-ending comments would be fine)"}}
{"actor":{"display_login":"kythe"}}