\r does not round-trip the local socket, escape and restore on the other side (#43507)
This commit is contained in:
parent
c4591f0861
commit
9169daa326
2 changed files with 4 additions and 0 deletions
|
@ -214,6 +214,8 @@ def main():
|
|||
raise Exception("EOF found before vars data was complete")
|
||||
vars_data += cur_line
|
||||
cur_line = stdin.readline()
|
||||
# restore escaped loose \r characters
|
||||
vars_data = vars_data.replace(br'\r', b'\r')
|
||||
|
||||
if PY3:
|
||||
pc_data = cPickle.loads(init_data, encoding='bytes')
|
||||
|
|
|
@ -936,6 +936,8 @@ class TaskExecutor:
|
|||
stdin.write(b'\n#END_INIT#\n')
|
||||
|
||||
src = cPickle.dumps(variables, protocol=0)
|
||||
# remaining \r fail to round-trip the socket
|
||||
src = src.replace(b'\r', br'\r')
|
||||
stdin.write(src)
|
||||
stdin.write(b'\n#END_VARS#\n')
|
||||
|
||||
|
|
Loading…
Reference in a new issue