jenkinsci / opentelemetry-plugin

Monitor and observe Jenkins with OpenTelemetry.
https://plugins.jenkins.io/opentelemetry/
Apache License 2.0
97 stars 50 forks source link

Incorrect handling on live log for logs > 10kb #520

Closed timmjd closed 1 year ago

timmjd commented 2 years ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.346.3 OS: Linux - 5.4.209-116.363.amzn2.x86_64 --- Parameterized-Remote-Trigger:3.1.6.3 ace-editor:1.1 ansicolor:1.0.2 antisamy-markup-formatter:2.7 anything-goes-formatter:1.0 apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61 authentication-tokens:1.4 badge:1.9.1 basic-branch-build-strategies:1.3.2 blueocean:1.25.8 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.25.8 blueocean-commons:1.25.8 blueocean-config:1.25.8 blueocean-core-js:1.25.8 blueocean-dashboard:1.25.8 blueocean-display-url:2.4.1 blueocean-events:1.25.8 blueocean-git-pipeline:1.25.8 blueocean-github-pipeline:1.25.8 blueocean-i18n:1.25.8 blueocean-jwt:1.25.8 blueocean-personalization:1.25.8 blueocean-pipeline-api-impl:1.25.8 blueocean-pipeline-editor:1.25.8 blueocean-pipeline-scm-api:1.25.8 blueocean-rest:1.25.8 blueocean-rest-impl:1.25.8 blueocean-web:1.25.8 bootstrap5-api:5.2.1-1 bouncycastle-api:2.26 branch-api:2.1046.v0ca_37783ecc5 caffeine-api:2.9.3-65.v6a_47d0f4d1fe checks-api:1.7.5 cloudbees-bitbucket-branch-source:791.vb_eea_a_476405b cloudbees-disk-usage-simple:170.va_fd5b_4ee6858 cloudbees-folder:6.740.ve4f4ffa_dea_54 command-launcher:1.2 configuration-as-code:1512.vb_79d418d5fc8 copyartifact:1.47 credentials:1143.vb_e8b_b_ceee347 credentials-binding:523.vd859a_4b_122e6 display-url-api:2.3.6 docker-commons:1.21 docker-workflow:521.v1a_a_dd2073b_2e dtkit-api:3.0.1 durable-task:500.v8927d9fd99d8 echarts-api:5.3.3-1 email-ext:2.91 extended-read-permission:3.2 favorite:2.4.1 font-awesome-api:6.2.0-1 git:4.12.1 git-client:3.12.0 github:1.34.5 github-api:1.303-400.v35c2d8258028 github-branch-source:1695.v88de84e9f6b_9 groovy-postbuild:2.5 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 hashicorp-vault-plugin:356.ved18810a_b_828 htmlpublisher:1.31 http_request:1.16 ionicons-api:24.va_745a_b_a_97fc3 jackson2-api:2.13.3-285.vc03c0256d517 jakarta-activation-api:2.0.1-1 jakarta-mail-api:2.0.1-1 javax-activation-api:1.2.0-4 javax-mail-api:1.6.2-5 jaxb:2.3.6-1 jdk-tool:1.0 jenkins-design-language:1.25.8 jjwt-api:0.11.5-77.v646c772fddb_0 job-dsl:1.81 jobConfigHistory:1176.v1b_4290db_41a_5 jquery-detached:1.2.1 jquery3-api:3.6.1-1 jsch:0.1.55.61.va_e9ee26616e7 junit:1119.1121.vc43d0fc45561 kubernetes:3706.vdfb_d599579f3 kubernetes-cli:1.10.3 kubernetes-client-api:5.12.2-193.v26a_6078f65a_9 kubernetes-credentials:0.9.0 ldap:2.12 locale:180.v207501dff9b_a_ lockable-resources:2.16 mailer:435.v79ef3972b_5c7 matrix-auth:2.6.11 matrix-project:772.v494f19991984 metrics:4.2.10-389.v93143621b_050 momentjs:1.1.1 monitoring:1.91.0 okhttp-api:4.9.3-108.v0feda04578cf opentelemetry:2.9.2 permissive-script-security:0.7 pipeline-build-step:2.18 pipeline-graph-analysis:195.v5812d95a_a_2f9 pipeline-groovy-lib:612.v84da_9c54906d pipeline-input-step:451.vf1a_a_4f405289 pipeline-milestone-step:101.vd572fef9d926 pipeline-model-api:2.2114.v2654ca_721309 pipeline-model-definition:2.2114.v2654ca_721309 pipeline-model-extensions:2.2114.v2654ca_721309 pipeline-rest-api:2.24 pipeline-stage-step:296.v5f6908f017a_5 pipeline-stage-tags-metadata:2.2114.v2654ca_721309 pipeline-stage-view:2.24 pipeline-utility-steps:2.13.0 plain-credentials:139.ved2b_9cf7587b plugin-util-api:2.17.0 popper2-api:2.11.6-1 prometheus:2.0.10 pubsub-light:1.16 robot:3.2.0 role-strategy:3.2.0 scm-api:621.vda_a_b_055e58f7 script-security:1183.v774b_0b_0a_a_451 simple-theme-plugin:103.va_161d09c38c7 snakeyaml-api:1.31-84.ve43da_fb_49d0b sse-gateway:1.25 ssh-agent:295.v9ca_a_1c7cc3a_a_ ssh-credentials:305.v8f4381501156 ssh-slaves:1.834.v622da_57f702c sshd:3.0.3 structs:324.va_f5d6774f3a_d timestamper:1.20 token-macro:308.v4f2b_ed62b_b_16 trilead-api:1.67.vc3938a_35172f variant:59.vf075fe829ccb windows-slaves:1.8.1 workflow-aggregator:590.v6a_d052e5a_a_b_5 workflow-api:1192.v2d0deb_19d212 workflow-basic-steps:994.vd57e3ca_46d24 workflow-cps:2759.v87459c4eea_ca_ workflow-durable-task-step:1199.v02b_9244f8064 workflow-job:1207.ve6191ff089f8 workflow-multibranch:716.vc692a_e52371b_ workflow-scm-step:400.v6b_89a_1317c9a_ workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:838.va_3a_087b_4055b xunit:3.1.0 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Linux

Reproduction steps

Expected Results

The console log should continuously extend on the bottom of the log, line by line

Actual Results

If the log size exceeds > 10 kB, the log will not extend by the additional lies but extend by the complete log - from the begin of the run.

Anything else?

If you monitor the network traffic coming to your Browser (https://jenkins/job/log-test/lastBuild/logText/progressiveHtml) you will notice a change.

Until the complete log is < 10 kB, the data transferred will be ~1 kB image

If the total log is > 10 kB, it will start to sending the complete log, starting from the start and not a "delta". By this, the live view will not be usable anymore due to it will continuously full.

If the job was finished, everything is back to normal - so only the live streaming of the log seems to have an issue with the total log of a total size greater than 10 kB

progressiveHtml if log < 10 kB: only delta image

progressiveHtml if log > 10 kB: log from the begin of the job image

kuisathaverat commented 1 year ago

I have tried replicating it with version 2.10 and Jenkins core 2.361.2, the issue is gone, I think that is related to the Jenkins version, nothing related to the console output has changed in the plugin.

Screenshot 2022-11-07 at 16 14 55