Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-3084

Pod logs: Long lines are corrupted when using timestamps=true

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • 4.8
    • Unknown
    • None
    • None
    • 3
    • OCPNODE Sprint 227 (Green), OCPNODE Sprint 228 (Green), OCPNODE Sprint 229 (Green), OCPNODE Sprint 230 (Green), OCPNODE Sprint 231 (Green), OCPNODE Sprint 232 (Green)
    • 6
    • False
    • Hide

      None

      Show
      None

      Upstream Issue: https://github.com/kubernetes/kubernetes/issues/77603

      Long log lines get corrupted when using '--timestamps' by the Kubelet.

      The root cause is that the buffer reads up to a new line. If the line is greater than 4096 bytes and '--timestamps' is turrned on the kubelet will write the timestamp and the partial log line. We will need to refactor the ReadLogs function to allow for a partial line read.

      https://github.com/kubernetes/kubernetes/blob/f892ab1bd7fd97f1fcc2e296e85fdb8e3e8fb82d/pkg/kubelet/kuberuntime/logs/logs.go#L325

      apiVersion: v1
      kind: Pod
      metadata:
        name: logs
      spec:
        restartPolicy: Never
        containers:
        - name: logs
          image: fedora
          args:
          - bash
          - -c
          - 'for i in `seq 1 10000000`; do echo -n $i; done'
      
      kubectl logs logs --timestamps
      

            rphillip@redhat.com Ryan Phillips
            rphillip@redhat.com Ryan Phillips
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 3 minutes
                3m
                Remaining:
                Remaining Estimate - 3 minutes
                3m
                Logged:
                Time Spent - Not Specified
                Not Specified