{"action":"created","issue":{"url":"https://api.github.com/repos/dCache/dcache/issues/2140","labels_url":"https://api.github.com/repos/dCache/dcache/issues/2140/labels{/name}","comments_url":"https://api.github.com/repos/dCache/dcache/issues/2140/comments","events_url":"https://api.github.com/repos/dCache/dcache/issues/2140/events","html_url":"https://github.com/dCache/dcache/pull/2140","id":128138056,"number":2140,"title":"spacemanager, srm: Do not allow update to full spaces","user":{"login":"gbehrmann","id":1125766,"avatar_url":"https://avatars.githubusercontent.com/u/1125766?v=3","gravatar_id":"","url":"https://api.github.com/users/gbehrmann","html_url":"https://github.com/gbehrmann","followers_url":"https://api.github.com/users/gbehrmann/followers","following_url":"https://api.github.com/users/gbehrmann/following{/other_user}","gists_url":"https://api.github.com/users/gbehrmann/gists{/gist_id}","starred_url":"https://api.github.com/users/gbehrmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gbehrmann/subscriptions","organizations_url":"https://api.github.com/users/gbehrmann/orgs","repos_url":"https://api.github.com/users/gbehrmann/repos","events_url":"https://api.github.com/users/gbehrmann/events{/privacy}","received_events_url":"https://api.github.com/users/gbehrmann/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-22T11:33:38Z","updated_at":"2016-01-26T17:42:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dCache/dcache/pulls/2140","html_url":"https://github.com/dCache/dcache/pull/2140","diff_url":"https://github.com/dCache/dcache/pull/2140.diff","patch_url":"https://github.com/dCache/dcache/pull/2140.patch"},"body":"Motivation:\n\nA space reservation is exactly what the name indicates: a reservation of some\nspace. It isn't a quota. Yet, in some cases we treat it as if it were a quota:\nSpecifically if we know the file size prior to an upload, we will reject the\nupload if it doesn't fit within the reservation.\n\nIf we do not know the file size ahead of upload, we cannot know if the file\nwill fit. Instead we silently enlarge the reservation (if possible) to make it\nhold the file after upload completes. Since a reservation is not a quota, this\nis legal.\n\nMany people use reservation as if they were quotas and get confused by this\nbehaviour. This is in particular the case because they are unaware which\nclients specify a file size prior to upload and which do not.\n\nModification:\n\nReject uploads to a space reservation if it has no free space at all. This\naffects both uploads for which a size was specified and those for which a\nsize was not specified.\n\nResult:\n\nFixes an issue in which protocols or clients that do not provide a file size\nprior to upload could write to tokens even if they were full. One negative\nconsequence is that this will also prevent upload of empty files to such\nreservations (even if they logically fit).\n\nTarget: trunk\nRequest: 2.14\nRequest: 2.13\nRequest: 2.12\nRequest: 2.11\nRequest: 2.10\nRequire-notes: yes\nRequire-book: no\nAcked-by: Paul Millar <paul.millar@desy.de>\nPatch: https://rb.dcache.org/r/8962/\n(cherry picked from commit f6f1524f3c70bb7a70e527a7797aa1b94a7cba7f)"},"comment":{"url":"https://api.github.com/repos/dCache/dcache/issues/comments/175137260","html_url":"https://github.com/dCache/dcache/pull/2140#issuecomment-175137260","issue_url":"https://api.github.com/repos/dCache/dcache/issues/2140","id":175137260,"user":{"login":"paulmillar","id":533081,"avatar_url":"https://avatars.githubusercontent.com/u/533081?v=3","gravatar_id":"","url":"https://api.github.com/users/paulmillar","html_url":"https://github.com/paulmillar","followers_url":"https://api.github.com/users/paulmillar/followers","following_url":"https://api.github.com/users/paulmillar/following{/other_user}","gists_url":"https://api.github.com/users/paulmillar/gists{/gist_id}","starred_url":"https://api.github.com/users/paulmillar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulmillar/subscriptions","organizations_url":"https://api.github.com/users/paulmillar/orgs","repos_url":"https://api.github.com/users/paulmillar/repos","events_url":"https://api.github.com/users/paulmillar/events{/privacy}","received_events_url":"https://api.github.com/users/paulmillar/received_events","type":"User","site_admin":false},"created_at":"2016-01-26T17:42:53Z","updated_at":"2016-01-26T17:42:53Z","body":"Rejecting as it breaks S2 and G2 tests."}}