summaryrefslogtreecommitdiffstats
path: root/install.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'install.cpp')
-rw-r--r--install.cpp8
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]);