-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Closed
Labels
bug 🐛Programming errors, that need preferential fixingProgramming errors, that need preferential fixingjournal
Milestone
Description
Debian Jessie, stock or testing systemd:
# journalctl --version
systemd 230
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN
Related Docker issue: moby/moby#15722
Somewhat related systemd issue: #1460
Stock journalctl outputs:
{
"__CURSOR" : "s=5d26294b5919405f962545870aae8d16;i=be3105;b=b959b49e885b4c10b502ffaf4e46c96b;m=296eeec21a8;t=53438668c4bae;x=eeef85e9c70c25f9",
"__REALTIME_TIMESTAMP" : "1464791726836654",
"__MONOTONIC_TIMESTAMP" : "2847276802472",
"_BOOT_ID" : "b959b49e885b4c10b502ffaf4e46c96b",
"_TRANSPORT" : "journal",
"_PID" : "18509",
"_UID" : "0",
"_GID" : "0",
"_COMM" : "docker",
"_EXE" : "/usr/bin/docker",
"_CMDLINE" : "/usr/bin/docker daemon -H fd:// --storage-driver overlay --exec-opt native.cgroupdriver=systemd --log-driver journald",
"_CAP_EFFECTIVE" : "3fffffffff",
"_SYSTEMD_CGROUP" : "/system.slice/docker.service",
"_SYSTEMD_UNIT" : "docker.service",
"_SYSTEMD_SLICE" : "system.slice",
"_MACHINE_ID" : "327881646f66435f8402208ed69def74",
"_HOSTNAME" : "myhost",
"PRIORITY" : "6",
"CONTAINER_ID" : "17fb289f439b",
"CONTAINER_ID_FULL" : "17fb289f439b3a5bb5dc04bad06dc23d12b096f98ca6d70ebff001a22a3d6f1e",
"CONTAINER_NAME" : "backstabbing_davinci",
"CONTAINER_TAG" : "wtf",
"MESSAGE" : [ 87, 101, 100, 32, 74, 117, 110, 32, 32, 49, 32, 49, 52, 58, 51, 53, 58, 50, 54, 32, 85, 84, 67, 32, 50, 48, 49, 54, 13 ],
"_SOURCE_REALTIME_TIMESTAMP" : "1464791726836197"
}With a little patch (expected behavior):
{
"__CURSOR" : "s=5d26294b5919405f962545870aae8d16;i=be3105;b=b959b49e885b4c10b502ffaf4e46c96b;m=296eeec21a8;t=53438668c4bae;x=eeef85e9c70c25f9",
"__REALTIME_TIMESTAMP" : "1464791726836654",
"__MONOTONIC_TIMESTAMP" : "2847276802472",
"_BOOT_ID" : "b959b49e885b4c10b502ffaf4e46c96b",
"_TRANSPORT" : "journal",
"_PID" : "18509",
"_UID" : "0",
"_GID" : "0",
"_COMM" : "docker",
"_EXE" : "/usr/bin/docker",
"_CMDLINE" : "/usr/bin/docker daemon -H fd:// --storage-driver overlay --exec-opt native.cgroupdriver=systemd --log-driver journald",
"_CAP_EFFECTIVE" : "3fffffffff",
"_SYSTEMD_CGROUP" : "/system.slice/docker.service",
"_SYSTEMD_UNIT" : "docker.service",
"_SYSTEMD_SLICE" : "system.slice",
"_MACHINE_ID" : "327881646f66435f8402208ed69def74",
"_HOSTNAME" : "36com79",
"PRIORITY" : "6",
"CONTAINER_ID" : "17fb289f439b",
"CONTAINER_ID_FULL" : "17fb289f439b3a5bb5dc04bad06dc23d12b096f98ca6d70ebff001a22a3d6f1e",
"CONTAINER_NAME" : "backstabbing_davinci",
"CONTAINER_TAG" : "wtf",
"MESSAGE" : "Wed Jun 1 14:35:26 UTC 2016\u000d",
"_SOURCE_REALTIME_TIMESTAMP" : "1464791726836197"
}Little patch mentioned earlier:
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 9351b85..6b4c957 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -607,7 +607,7 @@ void json_escape(
if (!(flags & OUTPUT_SHOW_ALL) && l >= JSON_THRESHOLD)
fputs("null", f);
- else if (!utf8_is_printable(p, l)) {
+ else if (!utf8_is_printable(p, l) && !(flags & OUTPUT_SHOW_ALL)) {
bool not_first = false;
fputs("[ ", f)\r looks perfectly printable unicode character to me:
# ./journalctl -a -n1 -o json-pretty CONTAINER_TAG=wtf | jq .MESSAGE
"Wed Jun 1 14:35:26 UTC 2016\r"
# ./journalctl -a -n1 -o json-pretty CONTAINER_TAG=wtf | jq -r .MESSAGE
Wed Jun 1 14:35:26 UTC 2016
I've seen the issue happening with docker containers running without tty (no \r at the end), but I can't find an example right now.
It seems that:
- Whitespace-ish
\ris not stripped, while it should be. - Printable
\ris considered unprintable. --allis not respected for json.
My patch only addresses the latter. Should I make a PR?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bug 🐛Programming errors, that need preferential fixingProgramming errors, that need preferential fixingjournal