jenkinsci / llvm-cov-plugin

Jenkins llvm-cov plugin
https://plugins.jenkins.io/llvm-cov/
6 stars 4 forks source link

Null pointer exception seen while parsing coverage json file #17

Closed fedora19 closed 1 year ago

fedora19 commented 1 year ago

Jenkins and plugins versions report

Jenkins: 2.382 OS: Windows Server 2016 - 10.0

ace-editor:1.1 adoptopenjdk:1.5 ant:481.v7b_09e538fcca antisamy-markup-formatter:155.v795fb_8702324 apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61 authentication-tokens:1.4 bootstrap4-api:4.6.0-5 bootstrap5-api:5.2.1-3 bouncycastle-api:2.26 branch-api:2.1051.v9985666b_f6cc build-timeout:1.25 build-token-trigger:1.0.0 built-on-column:1.3 caffeine-api:2.9.3-65.v6a_47d0f4d1fe changes-since-last-success:0.6 checks-api:1.8.1 cloudbees-folder:6.800.v71307ca_b_986b code-coverage-api:3.4.0 command-launcher:90.v669d7ccb7c31 commons-lang3-api:3.12.0-36.vd97de6465d5b commons-text-api:1.10.0-27.vb_fa_3896786a_7 conditional-buildstep:1.4.2 credentials:1214.v1de940103927 credentials-binding:523.vd859a_4b_122e6 data-tables-api:1.12.1-4 description-setter:1.10 display-url-api:2.3.7 dtkit-api:3.0.2 durable-task:503.v57154d18d478 echarts-api:5.4.0-1 email-ext:2.92 envinject:2.892.v25453b_80e595 envinject-api:1.199.v3ce31253ed13 external-monitor-job:203.v683c09d993b_9 extra-columns:1.25 font-awesome-api:6.2.1-1 forensics-api:1.17.0 git:4.14.3 git-client:3.13.1 git-server:99.va_0826a_b_cdfa_d handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 htmlpublisher:1.31 instance-identity:142.v04572ca_5b_265 ionicons-api:31.v4757b_6987003 jackson2-api:2.14.1-313.v504cdd45c18b jakarta-activation-api:2.0.1-2 jakarta-mail-api:2.0.1-2 javadoc:226.v71211feb_e7e9 javax-activation-api:1.2.0-5 javax-mail-api:1.6.2-8 jaxb:2.3.7-1 jdk-tool:63.v62d2fd4b_4793 jenkins-design-language:1.26.0 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.16-1 jquery:1.12.4-1 jquery-detached:1.2.1 jquery3-api:3.6.1-2 jsch:0.1.55.61.va_e9ee26616e7 junit:1166.va_436e268e972 ldap:2.12 llvm-cov:1.0.1-SNAPSHOT (private-66de0adc-jenkins) lockable-resources:1069.v726298f53f8c mailer:438.v02c7f0a_12fa_4 matrix-auth:3.1.6 matrix-project:785.v06b_7f47b_c631 maven-plugin:3.20 mina-sshd-api-common:2.9.2-50.va_0e1f42659a_a mina-sshd-api-core:2.9.2-50.va_0e1f42659a_a momentjs:1.1.1 okhttp-api:4.9.3-108.v0feda04578cf p4:1.13.0 pam-auth:1.10 parameterized-trigger:2.45 pipeline-build-step:2.18 pipeline-graph-analysis:195.v5812d95a_a_2f9 pipeline-groovy-lib:621.vb_44ce045b_582 pipeline-input-step:466.v6d0a_5df34f81 pipeline-milestone-step:101.vd572fef9d926 pipeline-model-api:2.2118.v31fd5b_9944b_5 pipeline-model-definition:2.2118.v31fd5b_9944b_5 pipeline-model-extensions:2.2118.v31fd5b_9944b_5 pipeline-rest-api:2.28 pipeline-stage-step:296.v5f6908f017a_5 pipeline-stage-tags-metadata:2.2118.v31fd5b_9944b_5 pipeline-stage-view:2.28 plain-credentials:139.ved2b_9cf7587b plugin-util-api:2.20.0 popper-api:1.16.1-3 popper2-api:2.11.6-2 powershell:1.7 prism-api:1.29.0-2 project-description-setter:1.2 publish-over:0.22 publish-over-ssh:1.24 pubsub-light:1.17 qtest:1.4.8 resource-disposer:0.20 run-condition:1.5 scm-api:631.v9143df5b_e4a_a script-security:1228.vd93135a_2fb_25 slave-setup:1.10 snakeyaml-api:1.33-90.v80dcb_3814d35 ssh-credentials:305.v8f4381501156 ssh-slaves:2.854.v7fd446b_337c9 sshd:3.275.v9e17c10f2571 structs:324.va_f5d6774f3a_d test-results-analyzer:0.4.0 timestamper:1.21 token-macro:321.vd7cc1f2a_52c8 trilead-api:2.84.v72119de229b_7 uno-choice:2.6.4 variant:59.vf075fe829ccb windows-slaves:1.8.1 workflow-aggregator:590.v6a_d052e5a_a_b_5 workflow-api:1200.v8005c684b_a_c6 workflow-basic-steps:994.vd57e3ca_46d24 workflow-cps:3583.v4f58de0d78d5 workflow-durable-task-step:1217.v38306d8fa_b_5c workflow-job:1254.v3f64639b_11dd workflow-multibranch:716.vc692ae52371b workflow-scm-step:400.v6b_89a1317c9a workflow-step-api:639.v6eca_cd8c04aa workflow-support:839.v35e2736cfd5c ws-cleanup:0.44

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

Agent running on Ubuntu 22.04 Controller running on Windows Server 2016

Reproduction steps

Hi,

I am working with commit ID 66de0ad. While publishing the coverage report, a null pointer exception is seen:

Publishing Coverage report.... ERROR: Build step failed with exception java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.iterator()" because "segmentsNode" is null at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processLines(LLVMCovReportDocumentConverter.java:177) at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processFiles(LLVMCovReportDocumentConverter.java:111) at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processDataObj(LLVMCovReportDocumentConverter.java:72) at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.convert(LLVMCovReportDocumentConverter.java:45) at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.convert(LLVMCovReportDocumentConverter.java:17) at io.jenkins.plugins.coverage.adapter.converter.DocumentConverter.convert(DocumentConverter.java:41) at io.jenkins.plugins.coverage.adapter.JSONCoverageReportAdapter.convert(JSONCoverageReportAdapter.java:23) at io.jenkins.plugins.coverage.adapter.CoverageReportAdapter.getResult(CoverageReportAdapter.java:57) at io.jenkins.plugins.coverage.CoverageProcessor.convertToResults(CoverageProcessor.java:363) at io.jenkins.plugins.coverage.CoverageProcessor.performCoverageReport(CoverageProcessor.java:112) at io.jenkins.plugins.coverage.CoveragePublisher.perform(CoveragePublisher.java:116) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at hudson.model.Build$BuildExecution.post2(Build.java:179) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Build step 'Publish Coverage Report' marked build as failure

Expected Results

Coverage report gets generated and published successfully

Actual Results

Null pointer exception is seen

Anything else?

No response

fedora19 commented 1 year ago

Looks like the coverage report I was using was generated with "-summary-only" option due to which segments were not getting added to the json. Removing the flag fixed the issue for me.