Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-69423

Webhook push data too long, caused pipeline git pull errror. it tips that Argument list too long.

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Blocker Blocker
    • git-plugin
    • IMAGE:jenkins/jenkins:2.336,Git:4.11.5,Generic Webhook Trigger Plugin:1.84,CentOS Linux release 7.4.1708 (Core)

      Complete environment version information:

      full-env-version-info.txt

       

      Problem description:

      Webhook push data too long, caused pipeline git pull errror. it tips that Argument list too long.

      At present, on the gitlab hook, the length of the message text pushed is 1,301,714. The hook can normally trigger the operation of the pipeline. However, when the user-defined shared library code is pulled in the first step, the pull fails. The exception message is caused by: java.io IOException: error=7, Argument list too long.

      I infer that the message data pushed by webhook was passed into the GIT command as a parameter, resulting in the execution of the GIT command exceeding the page limit of the Linux command line parameter (MAX_ARG_PAGES).

      If I use a small gitlab text hook data, such as 1000 in length, GIT pull will pull the shared library code successfully.

      The pipeline log (consoleText.txt) that I have uploaded to the attachment.

       

      Problem Recurrence Procedure:

      The first step. Create a new pipeline (not multi-branched) and use Git to pull up the Jenkinfile file.

      And the Jenkinsfile file uses this service-biz-ebank.jenkinsfile . This uses the Jenkins shared Library @library (['jenkinslib-tools@master']) _

      The second step. Use Postman for debugging. The POST interface of the hook with large text has been exported. And modify the appropriate token for push debugging.

      And the postman file uses this Jenkins webhook git Argument list too long.postman_collection.json . Import the file to Postman and use it

      The third step. 使用postman工具推送后,就会出现以下日志的错误:java.io IOException: error=7, Argument list too long.

      If you replace the text data in the Body with this smaller data packet: smaller text data.json, The pipeline pulls the Jenkins shared Library @library (['jenkinslib-tools@master']) _ successfully. And the pipeline is also running normally, no abnormalities reported

       

      Pipeline complete log:

      consoleText.txt

      Key Log screenshots:

      Webhook data size:

      16615721599321.png

       

          [JENKINS-69423] Webhook push data too long, caused pipeline git pull errror. it tips that Argument list too long.

          Johnny Shaw added a comment -

          Dear markewaite ,

          Can you help me introduce a maintenance author of GIT plugin? I want to help troubleshoot this problem and help modify the open source code to solve this problem.

          Johnny Shaw added a comment - Dear markewaite , Can you help me introduce a maintenance author of GIT plugin? I want to help troubleshoot this problem and help modify the open source code to solve this problem.

          Mark Waite added a comment -

          The maintainers of the git plugin are listed on https://plugins.jenkins.io/git/ . I'm one of those maintainers. I'm not willing to help troubleshoot the problem that you are seeing. Other areas of the git plugin and git client plugin are higher priority for me.

          Mark Waite added a comment - The maintainers of the git plugin are listed on https://plugins.jenkins.io/git/ . I'm one of those maintainers. I'm not willing to help troubleshoot the problem that you are seeing. Other areas of the git plugin and git client plugin are higher priority for me.

          Daniel Beck added a comment -

          This has nothing to do with https://plugins.jenkins.io/webhook-step/ , correct?

          Daniel Beck added a comment - This has nothing to do with https://plugins.jenkins.io/webhook-step/ , correct?

          Johnny Shaw added a comment -

          Dear danielbeck ,

          So far, it is not entirely clear that Webhook is irrelevant, because only in scenarios where Webhook triggers pipelining can Git pull fail.

          Johnny Shaw added a comment - Dear danielbeck , So far, it is not entirely clear that Webhook is irrelevant, because only in scenarios where Webhook triggers pipelining can Git pull fail.

          Johnny Shaw added a comment -

          Dear olamy ,
          Through introducing the Mark Waite, I found you on the https://plugins.jenkins.io/git/ website. I'm really sorry to disturb you. I need to consult you. At present, I have encountered a failure when Git pulls the shared library code. As for this problem, I would like to ask you how to solve it.
           

          Johnny Shaw added a comment - Dear olamy , Through introducing the Mark Waite, I found you on the https://plugins.jenkins.io/git/ website. I'm really sorry to disturb you. I need to consult you. At present, I have encountered a failure when Git pulls the shared library code. As for this problem, I would like to ask you how to solve it.  

          Daniel Beck added a comment - - edited

          13060851331 

          Please stop pinging people, who are not involved yet, directly. This isn't an important bug for anyone but you. Most folks participating in Jenkins development either do so during their spare time (so you are not entitled to their help) or because they work for companies providing commercial support (and if you were eligible to get that, you'd know what other support channels to use).

          Regarding the following, from the users mailing list,

          I raised this issue at JIRA, but it has not been resolved yet.

          Please note that nothing but the most urgent problems affecting large numbers of users gets resolved in two days.

          So far you are unable to even provide steps to reproduce this issue from scratch, or identify which plugins are involved, so even someone interested in helping is unable to do so.

          Daniel Beck added a comment - - edited 13060851331   Please stop pinging people, who are not involved yet, directly. This isn't an important bug for anyone but you. Most folks participating in Jenkins development either do so during their spare time (so you are not entitled to their help) or because they work for companies providing commercial support (and if you were eligible to get that, you'd know what other support channels to use). Regarding the following, from the users mailing list, I raised this issue at JIRA, but it has not been resolved yet. Please note that nothing but the most urgent problems affecting large numbers of users gets resolved in two days. So far you are unable to even provide steps to reproduce this issue from scratch, or identify which plugins are involved, so even someone interested in helping is unable to do so.

          Johnny Shaw added a comment - - edited

          Regarding the following, from the users mailing list,

          Please note that nothing but the most urgent problems affecting large numbers of users gets resolved in two days.

          I'm so sorry to bother you. I only found a problem and wanted to provide my own ideas and help to solve it. I have added steps for reproducing the problem to the description.

          I'm not claiming that the problem needs to be solved immediately, just that the problem will be treated correctly, rather than being removed from the module to which it belongs without being traced.

          Johnny Shaw added a comment - - edited Regarding the following, from the users mailing list, Please note that nothing but the most urgent problems affecting large numbers of users gets resolved in two days. I'm so sorry to bother you. I only found a problem and wanted to provide my own ideas and help to solve it. I have added steps for reproducing the problem to the description. I'm not claiming that the problem needs to be solved immediately, just that the problem will be treated correctly, rather than being removed from the module to which it belongs without being traced.

          Johnny Shaw added a comment - - edited

          As we all know, if we use Gitlab SCM, in the design of DevOps, we will use MR results as the start of triggering CI pipeline, but once MR triggering fails, it will cause obstructive problems to the start of the pipeline.

          Also, hooks for large text data are unavoidable. The message content of the big text hook occurs whenever a large number of file changes are required;

          This error often occurs in our actual iterative application scenarios, where there is actually always a lot of code development.

          If we did not manually log in to Jenkins to monitor the pipeline, it would be difficult for this error to occur, leading to the omission of CI pipeline triggering.

          Johnny Shaw added a comment - - edited As we all know, if we use Gitlab SCM, in the design of DevOps, we will use MR results as the start of triggering CI pipeline, but once MR triggering fails, it will cause obstructive problems to the start of the pipeline. Also, hooks for large text data are unavoidable. The message content of the big text hook occurs whenever a large number of file changes are required; This error often occurs in our actual iterative application scenarios, where there is actually always a lot of code development. If we did not manually log in to Jenkins to monitor the pipeline, it would be difficult for this error to occur, leading to the omission of CI pipeline triggering.

          Daniel Beck added a comment -

          rather than being removed from the module to which it belongs without being traced.

          The new steps you provide indicate that https://plugins.jenkins.io/generic-webhook-trigger/ is involved. So no https://plugins.jenkins.io/webhook-step/ after all.

          The best thing you can do is provide complete and minimal steps to reproduce the problem from scratch.

          • Complete, so people trying to reproduce this issue do not have to guess which steps to take
          • Minimal, so there's no unnecessary steps making the investigation more difficult than it needs to be.

          While your new description is better than before, this still isn't the case. Based on your description, I wonder immediately:

          Daniel Beck added a comment - rather than being removed from the module to which it belongs without being traced. The new steps you provide indicate that https://plugins.jenkins.io/generic-webhook-trigger/ is involved. So no https://plugins.jenkins.io/webhook-step/ after all. The best thing you can do is provide complete and minimal steps to reproduce the problem from scratch. Complete, so people trying to reproduce this issue do not have to guess which steps to take Minimal, so there's no unnecessary steps making the investigation more difficult than it needs to be. While your new description is better than before, this still isn't the case. Based on your description, I wonder immediately: Does this require a library in a Pipeline to occur, or was that just the first repo that was checked out? Is the webhook trigger actually needed, or would a String parameter to the build with 1.3 MB of text content cause the same problem? https://github.com/jenkinsci/generic-webhook-trigger-plugin/blob/fa0974147f7e7c7ff4f2fb7e78ada5c1bb3a7ada/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java#L181-L183 looks suspicious.

          Mark Waite added a comment -

          Steps never provided that would allow someone else to duplicate the problem. Closed

          Mark Waite added a comment - Steps never provided that would allow someone else to duplicate the problem. Closed

            Unassigned Unassigned
            13060851331 Johnny Shaw
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: