STINNER Victor added the comment: I can reproduce the crash. It occurs at the line "fd.write(data)". It looks like the crash occurs in the C function fwrite() which doesn't handle EPIPE / SIGPIPE correctly.
Top of the gdb traceback: #0 0x00000033d0a8968b in __mempcpy_sse2 () from /lib64/libc.so.6 #1 0x00000033d0a79339 in __GI__IO_default_xsputn () from /lib64/libc.so.6 #2 0x00000033d0a77362 in __GI__IO_file_xsputn () from /lib64/libc.so.6 #3 0x00000033d0a6cfad in fwrite () from /lib64/libc.so.6 #4 0x0000000000435cc4 in file_write (f=0x7f46d74a2dc0, args=('0123456789\n0123456789\n0123456789\n...(truncated)) at Objects/fileobject.c:1852 Last syscalls (strace output): ... pipe2([3, 4], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f5ce26aca10) = 4711 close(3) = 0 fcntl(4, F_SETFD, 0) = 0 fstat(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fstat(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce26ca000 write(4, "0123456789\n0123456789\n0123456789"..., 1097728) = 98304 --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4710, si_uid=1000} --- --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4711, si_status=0, si_utime=0, si_stime=0} --- write(4, "89\n0123456789\n0123456789\n0123456"..., 999424) = -1 EPIPE (Broken pipe) --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4710, si_uid=1000} --- --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7f5cdbe87000} --- +++ killed by SIGSEGV (core dumped) +++ ---------- nosy: +haypo, neologix _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue20866> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com