{"action":"created","issue":{"url":"https://api.github.com/repos/apache/trafficserver/issues/301","labels_url":"https://api.github.com/repos/apache/trafficserver/issues/301/labels{/name}","comments_url":"https://api.github.com/repos/apache/trafficserver/issues/301/comments","events_url":"https://api.github.com/repos/apache/trafficserver/issues/301/events","html_url":"https://github.com/apache/trafficserver/pull/301","id":110369519,"number":301,"title":"TS-3960: traffic_line -x doesn't reload SSL certs content","user":{"login":"zizhong","id":3625100,"avatar_url":"https://avatars.githubusercontent.com/u/3625100?v=3","gravatar_id":"","url":"https://api.github.com/users/zizhong","html_url":"https://github.com/zizhong","followers_url":"https://api.github.com/users/zizhong/followers","following_url":"https://api.github.com/users/zizhong/following{/other_user}","gists_url":"https://api.github.com/users/zizhong/gists{/gist_id}","starred_url":"https://api.github.com/users/zizhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zizhong/subscriptions","organizations_url":"https://api.github.com/users/zizhong/orgs","repos_url":"https://api.github.com/users/zizhong/repos","events_url":"https://api.github.com/users/zizhong/events{/privacy}","received_events_url":"https://api.github.com/users/zizhong/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-10-08T04:05:00Z","updated_at":"2015-11-18T17:26:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/trafficserver/pulls/301","html_url":"https://github.com/apache/trafficserver/pull/301","diff_url":"https://github.com/apache/trafficserver/pull/301.diff","patch_url":"https://github.com/apache/trafficserver/pull/301.patch"},"body":"traffic_line -x doesn't reload  when SSL certs change file contents without changing the file names."},"comment":{"url":"https://api.github.com/repos/apache/trafficserver/issues/comments/157786700","html_url":"https://github.com/apache/trafficserver/pull/301#issuecomment-157786700","issue_url":"https://api.github.com/repos/apache/trafficserver/issues/301","id":157786700,"user":{"login":"jpeach","id":9917,"avatar_url":"https://avatars.githubusercontent.com/u/9917?v=3","gravatar_id":"","url":"https://api.github.com/users/jpeach","html_url":"https://github.com/jpeach","followers_url":"https://api.github.com/users/jpeach/followers","following_url":"https://api.github.com/users/jpeach/following{/other_user}","gists_url":"https://api.github.com/users/jpeach/gists{/gist_id}","starred_url":"https://api.github.com/users/jpeach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpeach/subscriptions","organizations_url":"https://api.github.com/users/jpeach/orgs","repos_url":"https://api.github.com/users/jpeach/repos","events_url":"https://api.github.com/users/jpeach/events{/privacy}","received_events_url":"https://api.github.com/users/jpeach/received_events","type":"User","site_admin":false},"created_at":"2015-11-18T17:26:09Z","updated_at":"2015-11-18T17:26:09Z","body":"> 1. How to clean up the old watched children files correctly?\r\n\r\nIf you have a tree of ```Rollback``` objects, then any object in the tree that is updated would trigger the root of the tree and remove all the children. You always know the parent of the watched children, so when you trigger on the group, you get the parent and remove the children. IIRC you are already doing this.\r\n\r\n> 2. In a parent with all children style, the whole information can be packed in one message\r\n> instead of O(children) messages, which is more efficient on both time and space.\r\n\r\nSince the message to ```traffic_manager``` is asynchronous and not performance sensitive, there's no need to try to optimize this. We need to optimize for simplicity. When you use a single item per message, it is easy to re-use the existing message marshaling code, and the code in the SSL layer that collects all the child files is no longer needed.\r\n\r\nAlthough I agree that the tree is more general than strictly necessary, I think that the code for that will turn out to be fairly clean. I am OK with file groups, but please add a back pointer from the file group to the parent ```Rollback``` so that the parent lookups can be avoided. Note that if you make the ```ConfigFileGroup``` a member of ```Rollback``` then you basically have the tree structure already, which is why I'm suggesting it :)"}}