diff options
Diffstat (limited to 'install.cpp')
-rw-r--r-- | install.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/install.cpp b/install.cpp index 959a74222..ce89e0dc0 100644 --- a/install.cpp +++ b/install.cpp @@ -382,8 +382,12 @@ static int try_update_binary(const char* path, ZipArchiveHandle zip, bool* wipe_ umask(022); close(pipefd[0]); execv(chr_args[0], const_cast<char**>(chr_args)); - PLOG(ERROR) << "Can't run " << chr_args[0]; - _exit(-1); + // Bug: 34769056 + // We shouldn't use LOG/PLOG in the forked process, since they may cause + // the child process to hang. This deadlock results from an improperly + // copied mutex in the ui functions. + fprintf(stdout, "E:Can't run %s (%s)\n", chr_args[0], strerror(errno)); + _exit(EXIT_FAILURE); } close(pipefd[1]); |