Mercurial > hg
view tests/phabricator/phabsend-create-alpha.json @ 45095:8e04607023e5
procutil: ensure that procutil.std{out,err}.write() writes all bytes
Python 3 offers different kind of streams and it’s not guaranteed for all of
them that calling write() writes all bytes.
When Python is started in unbuffered mode, sys.std{out,err}.buffer are
instances of io.FileIO, whose write() can write less bytes for
platform-specific reasons (e.g. Linux has a 0x7ffff000 bytes maximum and could
write less if interrupted by a signal; when writing to Windows consoles, it’s
limited to 32767 bytes to avoid the "not enough space" error). This can lead to
silent loss of data, both when using sys.std{out,err}.buffer (which may in fact
not be a buffered stream) and when using the text streams sys.std{out,err}
(I’ve created a CPython bug report for that:
https://bugs.python.org/issue41221).
Python may fix the problem at some point. For now, we implement our own wrapper
for procutil.std{out,err} that calls the raw stream’s write() method until all
bytes have been written. We don’t use sys.std{out,err} for larger writes, so I
think it’s not worth the effort to patch them.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Fri, 10 Jul 2020 12:27:58 +0200 |
parents | a5e3f38407cb |
children |
line wrap: on
line source
{ "interactions": [ { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:00 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":{\"data\":[{\"id\":2,\"type\":\"REPO\",\"phid\":\"PHID-REPO-bvunnehri4u2isyr7bc3\",\"fields\":{\"name\":\"Mercurial\",\"vcs\":\"hg\",\"callsign\":\"HG\",\"shortName\":null,\"status\":\"active\",\"isImporting\":false,\"almanacServicePHID\":null,\"refRules\":{\"fetchRules\":[],\"trackRules\":[],\"permanentRefRules\":[]},\"spacePHID\":null,\"dateCreated\":1498761653,\"dateModified\":1500403184,\"policy\":{\"view\":\"public\",\"edit\":\"admin\",\"diffusion.push\":\"users\"}},\"attachments\":{}}],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/diffusion.repository.search", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "183" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22HG%22%5D%7D%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:01 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":{\"diffid\":19390,\"phid\":\"PHID-DIFF-36wohqs4e4l6spcrzg65\",\"uri\":\"https:\\/\\/phab.mercurial-scm.org\\/differential\\/diff\\/19390\\/\"},\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.creatediff", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "1172" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22alpha%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22alpha%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Balpha%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+%22PHID-REPO-bvunnehri4u2isyr7bc3%22%2C+%22sourceControlBaseRevision%22%3A+%220000000000000000000000000000000000000000%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:01 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.setdiffproperty", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "482" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%22d386117f30e6b1282897bdbde75ac21e095163d4%5C%22%2C+%5C%22parent%5C%22%3A+%5C%220000000000000000000000000000000000000000%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+19390%2C+%22name%22%3A+%22hg%3Ameta%22%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:02 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.setdiffproperty", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "594" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22d386117f30e6b1282897bdbde75ac21e095163d4%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22d386117f30e6b1282897bdbde75ac21e095163d4%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%220000000000000000000000000000000000000000%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+19390%2C+%22name%22%3A+%22local%3Acommits%22%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:03 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"create alpha for phabricator test \\u20ac\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"https:\\/\\/phab.mercurial-scm.org\"},\"transactions\":[{\"type\":\"title\",\"value\":\"create alpha for phabricator test \\u20ac\"}]},\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.parsecommitmessage", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "187" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22create+alpha+for+phabricator+test+%5Cu20ac%22%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:03 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":{\"object\":{\"id\":7915,\"phid\":\"PHID-DREV-3mzbavd2ajsbar5l3esr\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-55yg7c5j7d6wjfv\"},{\"phid\":\"PHID-XACT-DREV-wizrkanyez7gzuu\"},{\"phid\":\"PHID-XACT-DREV-aobh3arrwbdwoh7\"},{\"phid\":\"PHID-XACT-DREV-zwea5upt4cn23ve\"},{\"phid\":\"PHID-XACT-DREV-dklz3iyhmwcoi5p\"}]},\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.revision.edit", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "340" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-36wohqs4e4l6spcrzg65%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22create+alpha+for+phabricator+test+%5Cu20ac%22%7D%5D%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:04 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":[{\"id\":\"7915\",\"phid\":\"PHID-DREV-3mzbavd2ajsbar5l3esr\",\"title\":\"create alpha for phabricator test \\u20ac\",\"uri\":\"https:\\/\\/phab.mercurial-scm.org\\/D7915\",\"dateCreated\":\"1579221124\",\"dateModified\":\"1579221124\",\"authorPHID\":\"PHID-USER-tzhaient733lwrlbcag5\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":1,\"lines.removed\":0},\"branch\":\"default\",\"summary\":\"\",\"testPlan\":\"\",\"lineCount\":\"1\",\"activeDiffPHID\":\"PHID-DIFF-36wohqs4e4l6spcrzg65\",\"diffs\":[\"19390\"],\"commits\":[],\"reviewers\":{\"PHID-PROJ-3dvcxzznrjru2xmmses3\":\"PHID-PROJ-3dvcxzznrjru2xmmses3\"},\"ccs\":[\"PHID-USER-q42dn7cc3donqriafhjx\"],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":\"PHID-REPO-bvunnehri4u2isyr7bc3\",\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.query", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "146" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B7915%5D%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:05 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.setdiffproperty", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "482" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%22347bf67801e55faaffe1616c6bac53cdf6b6dfc2%5C%22%2C+%5C%22parent%5C%22%3A+%5C%220000000000000000000000000000000000000000%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+19390%2C+%22name%22%3A+%22hg%3Ameta%22%7D&output=json&__conduit__=1" } }, { "response": { "headers": { "x-content-type-options": [ "nosniff" ], "x-xss-protection": [ "1; mode=block" ], "content-type": [ "application/json" ], "transfer-encoding": [ "chunked" ], "strict-transport-security": [ "max-age=0; includeSubdomains; preload" ], "date": [ "Fri, 17 Jan 2020 00:32:06 GMT" ], "cache-control": [ "no-store" ], "expires": [ "Sat, 01 Jan 2000 00:00:00 GMT" ], "server": [ "Apache/2.4.10 (Debian)" ], "x-frame-options": [ "Deny" ], "referrer-policy": [ "no-referrer" ] }, "status": { "code": 200, "message": "OK" }, "body": { "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" } }, "request": { "method": "POST", "uri": "https://phab.mercurial-scm.org//api/differential.setdiffproperty", "headers": { "content-type": [ "application/x-www-form-urlencoded" ], "user-agent": [ "mercurial/proto-1.0 (Mercurial 5.2.2+620-6ee2ba170fe6+20200116)" ], "accept": [ "application/mercurial-0.1" ], "content-length": [ "594" ], "host": [ "phab.mercurial-scm.org" ] }, "body": "params=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22347bf67801e55faaffe1616c6bac53cdf6b6dfc2%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22347bf67801e55faaffe1616c6bac53cdf6b6dfc2%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%220000000000000000000000000000000000000000%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+19390%2C+%22name%22%3A+%22local%3Acommits%22%7D&output=json&__conduit__=1" } } ], "version": 1 }