oci: make ExecSync handle split std{out,err}
Now that conmon splits std{out,err} for !terminal containers, ExecSync can parse that output to return the correct std{out,err} split to the kubelet. Invalid log lines are ignored but complained about. Signed-off-by: Aleksa Sarai <asarai@suse.de>
This commit is contained in:
parent
d4c9f3e6dc
commit
87faf98447
2 changed files with 44 additions and 21 deletions
|
@ -533,24 +533,9 @@ int main(int argc, char *argv[])
|
|||
if (num_read <= 0)
|
||||
goto out;
|
||||
|
||||
if (exec) {
|
||||
/*
|
||||
* If we're in ExecSync we don't output the k8s log
|
||||
* format. TODO(cyphar): This code really should be
|
||||
* rewritten so that we have a single conmon per
|
||||
* container and the conmon is logging the main
|
||||
* container process as a separate piece of logic to
|
||||
* the streaming to Exec[Sync] clients.
|
||||
*/
|
||||
if (write(logfd, buf, num_read) < 0) {
|
||||
nwarn("write failed");
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
if (write_k8s_log(logfd, pipe, buf, num_read) < 0) {
|
||||
nwarn("write_k8s_log failed");
|
||||
goto out;
|
||||
}
|
||||
if (write_k8s_log(logfd, pipe, buf, num_read) < 0) {
|
||||
nwarn("write_k8s_log failed");
|
||||
goto out;
|
||||
}
|
||||
} else if (evlist[i].events & (EPOLLHUP | EPOLLERR)) {
|
||||
printf("closing fd %d\n", evlist[i].data.fd);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue