{"action":"closed","issue":{"url":"https://api.github.com/repos/irods/irods/issues/2789","labels_url":"https://api.github.com/repos/irods/irods/issues/2789/labels{/name}","comments_url":"https://api.github.com/repos/irods/irods/issues/2789/comments","events_url":"https://api.github.com/repos/irods/irods/issues/2789/events","html_url":"https://github.com/irods/irods/issues/2789","id":94276349,"number":2789,"title":"icp erratic behaviour with the 'passthru' resource","user":{"login":"triitaojcsc","id":10650102,"avatar_url":"https://avatars.githubusercontent.com/u/10650102?v=3","gravatar_id":"","url":"https://api.github.com/users/triitaojcsc","html_url":"https://github.com/triitaojcsc","followers_url":"https://api.github.com/users/triitaojcsc/followers","following_url":"https://api.github.com/users/triitaojcsc/following{/other_user}","gists_url":"https://api.github.com/users/triitaojcsc/gists{/gist_id}","starred_url":"https://api.github.com/users/triitaojcsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/triitaojcsc/subscriptions","organizations_url":"https://api.github.com/users/triitaojcsc/orgs","repos_url":"https://api.github.com/users/triitaojcsc/repos","events_url":"https://api.github.com/users/triitaojcsc/events{/privacy}","received_events_url":"https://api.github.com/users/triitaojcsc/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/irods/irods/labels/bug","name":"bug","color":"fc2929"}],"state":"closed","locked":false,"assignee":{"login":"jasoncoposky","id":1790140,"avatar_url":"https://avatars.githubusercontent.com/u/1790140?v=3","gravatar_id":"","url":"https://api.github.com/users/jasoncoposky","html_url":"https://github.com/jasoncoposky","followers_url":"https://api.github.com/users/jasoncoposky/followers","following_url":"https://api.github.com/users/jasoncoposky/following{/other_user}","gists_url":"https://api.github.com/users/jasoncoposky/gists{/gist_id}","starred_url":"https://api.github.com/users/jasoncoposky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasoncoposky/subscriptions","organizations_url":"https://api.github.com/users/jasoncoposky/orgs","repos_url":"https://api.github.com/users/jasoncoposky/repos","events_url":"https://api.github.com/users/jasoncoposky/events{/privacy}","received_events_url":"https://api.github.com/users/jasoncoposky/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/irods/irods/milestones/17","html_url":"https://github.com/irods/irods/milestones/4.1.4","labels_url":"https://api.github.com/repos/irods/irods/milestones/17/labels","id":1179444,"number":17,"title":"4.1.4","description":"","creator":{"login":"trel","id":55238,"avatar_url":"https://avatars.githubusercontent.com/u/55238?v=3","gravatar_id":"","url":"https://api.github.com/users/trel","html_url":"https://github.com/trel","followers_url":"https://api.github.com/users/trel/followers","following_url":"https://api.github.com/users/trel/following{/other_user}","gists_url":"https://api.github.com/users/trel/gists{/gist_id}","starred_url":"https://api.github.com/users/trel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trel/subscriptions","organizations_url":"https://api.github.com/users/trel/orgs","repos_url":"https://api.github.com/users/trel/repos","events_url":"https://api.github.com/users/trel/events{/privacy}","received_events_url":"https://api.github.com/users/trel/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":15,"state":"open","created_at":"2015-06-24T15:30:31Z","updated_at":"2015-07-15T01:44:23Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-07-10T10:24:28Z","updated_at":"2015-07-15T01:44:23Z","closed_at":"2015-07-15T01:44:23Z","body":"Hi,\r\n\r\nin iRODS 4.X the newish 'passthru' resource has a weird bug(/feature?) related to 'icp' and the 'replication' resource.\r\n\r\nIn a situation where an iRODS administrator would like to allow writes but to prevent reads to/from a certain (slow) resource, the resource tree might look like the following:\r\n\r\n```\r\n    test_resource:replication\r\n    ├── test_resource_1\r\n    └── weightResc:passthru\r\n            └── test_resource_2\r\n```\r\n\r\nWhere 'weightResc' has the context \"read=0.00;write=0.25\".\r\n\r\nThis works fine for 'iput' (the data object gets replicated to both test_resource_1 and test_resource_2) and for 'iget' (the data object is retrieved from test_resource_1, and not from test_resource_2).\r\n\r\nHowever, an 'icp' operation for a data object causes the new copy to only have one replica. The 'read=0.00' when used with 'icp' for some reason prevents the creation of a second replica, though 'iput' works OK.\r\n\r\nDifferent scenarios:\r\n\r\n- icp, iput, iget work, and icp produces 2 replicas:\r\n\r\n```\r\n    test_resource:replication\r\n    ├── test_resource_1\r\n    └── test_resource_2\r\n```\r\n\r\n- icp, iput, and iget work, but icp produces only 1 replica:\r\n\r\n```\r\n    test_resource:replication\r\n    ├── test_resource_1\r\n    └── weightResc:passthru    <---- read=0.00\r\n            └── test_resource_2\r\n```\r\n        \r\n- icp, iput, iget work, and icp produces 2 replicas:\r\n\r\n```\r\n    test_resource:replication\r\n    ├── test_resource_1\r\n    └── weightResc:passthru    <---- read=0.25\r\n            └── test_resource_2\r\n```\r\n\r\nThe desired outcome is that 'icp' would behave like 'iput' and produce two replicas when 'read=0.00'.\r\n\r\n-- Taneli Riitaoja / CSC - IT Center for Science Ltd.\r\n"}}