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

Publish Over CIFS doesn't use default buffer size (fallback)

      Jenkins version: 2.101

      publish-over-cifs version: 0.6

       

      After update to version 0.6 publish step doesn't fallback to default buffer size if no buffer size is configured. Job gets stuck during copy operation (see console log below).

       

      sample pipeline script:

      pipeline {
      agent {
      label "master"
      }
      
      options {
      buildDiscarder(logRotator(
      daysToKeepStr: '30',
      numToKeepStr: '-1',
      artifactDaysToKeepStr: '7',
      artifactNumToKeepStr: '7'))
      timestamps()
      }
      
      stages {
      stage('Create file') { 
      steps {
      fileOperations([fileCreateOperation(fileContent: 'file content', fileName: 'test_file.txt')])
      }
      }
      stage('Copy file') {
      steps {
      script {
      def file = findFiles(glob: '**/test_file.txt')[0]
      def targetFilename = file.name.split("\\.txt")[0]
      def timestamp = new Date().format('yyyyMMddHHmm')
      targetFilename = targetFilename + "_" + timestamp + "_" + env.BUILD_NUMBER + ".txt"
      
      fileOperations([fileRenameOperation(destination: targetFilename, source: installerFile.name)])
      
      def targetDir = 'test'
      
      cifsPublisher(
      alwaysPublishFromMaster: false,
      masterNodeName: "master",
      continueOnError: false,
      failOnError: true,
      publishers: [[configName : 'test_share',
      label : [label: 'label'],
      transfers : [[cleanRemote : false,
      remoteDirectory : targetDir,
      remoteDirectorySDF: false,
      removePrefix : '',
      sourceFiles : targetFilename]],
      usePromotionTimestamp : true,
      useWorkspaceInPromotion: false,
      verbose : true]])
      }
      }
      }
      }
      }
      
      

      Console log:

      ...
      [Pipeline] {
      [Pipeline] timestamps
      [Pipeline] {
      [Pipeline] stage
      [Pipeline] { (Create file)
      [Pipeline] fileOperations
      07:07:41.791 File Create Operation:
      07:07:41.792 Creating file: {workspace}\test_file.txt
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] stage
      [Pipeline] { (Copy file)
      [Pipeline] script
      [Pipeline] {
      [Pipeline] findFiles
      [Pipeline] fileOperations
      07:07:42.187 File Rename Operation:
      [Pipeline] cifsPublisher
      07:07:42.285 CIFS: Connecting from host [{host}]
      07:07:42.286 CIFS: Connecting with configuration [test_share] ...
      07:07:42.286 CIFS: Removing WINS from name resolution
      07:07:42.286 CIFS: Setting response timeout [30,000]
      07:07:42.286 CIFS: Setting socket timeout [35,000]
      07:07:42.286 CIFS: Setting buffer size to: [0] Bytes
      07:07:42.295 CIFS: copy [smb://{test_share}/test_file_201801180707_10.txt]
      

          [JENKINS-49010] Publish Over CIFS doesn't use default buffer size (fallback)

          Johannes Zinn created issue -
          Johannes Zinn made changes -
          Component/s New: publish-over-cifs-plugin [ 15850 ]
          Component/s Original: cifs-plugin [ 15770 ]
          Johannes Zinn made changes -
          Description Original: Jenkins version: 2.101

          publish-over-cifs version: 0.6

           

          After update to version 0.6 publish step doesn't use buffer size configured in global configuration "CIFS Share" section. Job gets stuck during copy operation (see console log below).

           

          sample pipeline script:
          {code:java}
          pipeline {
          agent {
          label "master"
          }

          options {
          buildDiscarder(logRotator(
          daysToKeepStr: '30',
          numToKeepStr: '-1',
          artifactDaysToKeepStr: '7',
          artifactNumToKeepStr: '7'))
          timestamps()
          }

          stages {
          stage('Create file') {
          steps {
          fileOperations([fileCreateOperation(fileContent: 'file content', fileName: 'test_file.txt')])
          }
          }
          stage('Copy file') {
          steps {
          script {
          def file = findFiles(glob: '**/test_file.txt')[0]
          def targetFilename = file.name.split("\\.txt")[0]
          def timestamp = new Date().format('yyyyMMddHHmm')
          targetFilename = targetFilename + "_" + timestamp + "_" + env.BUILD_NUMBER + ".txt"

          fileOperations([fileRenameOperation(destination: targetFilename, source: installerFile.name)])

          def targetDir = 'test'

          cifsPublisher(
          alwaysPublishFromMaster: false,
          masterNodeName: "master",
          continueOnError: false,
          failOnError: true,
          publishers: [[configName : 'test_share',
          label : [label: 'label'],
          transfers : [[cleanRemote : false,
          remoteDirectory : targetDir,
          remoteDirectorySDF: false,
          removePrefix : '',
          sourceFiles : targetFilename]],
          usePromotionTimestamp : true,
          useWorkspaceInPromotion: false,
          verbose : true]])
          }
          }
          }
          }
          }

          {code}
          Console log:
          {code:java}
          ...
          [Pipeline] {
          [Pipeline] timestamps
          [Pipeline] {
          [Pipeline] stage
          [Pipeline] { (Create file)
          [Pipeline] fileOperations
          07:07:41.791 File Create Operation:
          07:07:41.792 Creating file: {workspace}\test_file.txt
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Copy file)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] findFiles
          [Pipeline] fileOperations
          07:07:42.187 File Rename Operation:
          [Pipeline] cifsPublisher
          07:07:42.285 CIFS: Connecting from host [{host}]
          07:07:42.286 CIFS: Connecting with configuration [test_share] ...
          07:07:42.286 CIFS: Removing WINS from name resolution
          07:07:42.286 CIFS: Setting response timeout [30,000]
          07:07:42.286 CIFS: Setting socket timeout [35,000]
          07:07:42.286 CIFS: Setting buffer size to: [0] Bytes
          07:07:42.295 CIFS: copy [smb://{test_share}/test_file_201801180707_10.txt]
          {code}
          New: Jenkins version: 2.101

          publish-over-cifs version: 0.6

           

          After update to version 0.6 publish step doesn't fallback to default buffer size if no buffer size is configured. Job gets stuck during copy operation (see console log below).

           

          sample pipeline script:
          {code:java}
          pipeline {
          agent {
          label "master"
          }

          options {
          buildDiscarder(logRotator(
          daysToKeepStr: '30',
          numToKeepStr: '-1',
          artifactDaysToKeepStr: '7',
          artifactNumToKeepStr: '7'))
          timestamps()
          }

          stages {
          stage('Create file') {
          steps {
          fileOperations([fileCreateOperation(fileContent: 'file content', fileName: 'test_file.txt')])
          }
          }
          stage('Copy file') {
          steps {
          script {
          def file = findFiles(glob: '**/test_file.txt')[0]
          def targetFilename = file.name.split("\\.txt")[0]
          def timestamp = new Date().format('yyyyMMddHHmm')
          targetFilename = targetFilename + "_" + timestamp + "_" + env.BUILD_NUMBER + ".txt"

          fileOperations([fileRenameOperation(destination: targetFilename, source: installerFile.name)])

          def targetDir = 'test'

          cifsPublisher(
          alwaysPublishFromMaster: false,
          masterNodeName: "master",
          continueOnError: false,
          failOnError: true,
          publishers: [[configName : 'test_share',
          label : [label: 'label'],
          transfers : [[cleanRemote : false,
          remoteDirectory : targetDir,
          remoteDirectorySDF: false,
          removePrefix : '',
          sourceFiles : targetFilename]],
          usePromotionTimestamp : true,
          useWorkspaceInPromotion: false,
          verbose : true]])
          }
          }
          }
          }
          }

          {code}
          Console log:
          {code:java}
          ...
          [Pipeline] {
          [Pipeline] timestamps
          [Pipeline] {
          [Pipeline] stage
          [Pipeline] { (Create file)
          [Pipeline] fileOperations
          07:07:41.791 File Create Operation:
          07:07:41.792 Creating file: {workspace}\test_file.txt
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Copy file)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] findFiles
          [Pipeline] fileOperations
          07:07:42.187 File Rename Operation:
          [Pipeline] cifsPublisher
          07:07:42.285 CIFS: Connecting from host [{host}]
          07:07:42.286 CIFS: Connecting with configuration [test_share] ...
          07:07:42.286 CIFS: Removing WINS from name resolution
          07:07:42.286 CIFS: Setting response timeout [30,000]
          07:07:42.286 CIFS: Setting socket timeout [35,000]
          07:07:42.286 CIFS: Setting buffer size to: [0] Bytes
          07:07:42.295 CIFS: copy [smb://{test_share}/test_file_201801180707_10.txt]
          {code}
          Summary Original: Publish Over CIFS doesn't use buffer size of configured cifs connection New: Publish Over CIFS doesn't use default buffer size (fallback)
          Johannes Zinn made changes -
          Priority Original: Blocker [ 1 ] New: Major [ 3 ]

          Colin Jensen added a comment -

          Copy stalls forever for me too. Requires Service Restart to fix – can't cancel the job.

          For me, in Configure / Publish over CIFS / Advanced, it shows Buffer Size as 4096. If I change this number, hit save, and then check, it reverts back to 4096.

          Colin Jensen added a comment - Copy stalls forever for me too. Requires Service Restart to fix – can't cancel the job. For me, in Configure / Publish over CIFS / Advanced, it shows Buffer Size as 4096. If I change this number, hit save, and then check, it reverts back to 4096.

          Alex Earl added a comment -

          There are a couple issues with this that I am fixing, I hope to have a new release very soon.

          Alex Earl added a comment - There are a couple issues with this that I am fixing, I hope to have a new release very soon.
          Alex Earl made changes -
          Link New: This issue is duplicated by JENKINS-49104 [ JENKINS-49104 ]

          Alex Earl added a comment -

          Fixed in 0.7 (to be released soon)

          Alex Earl added a comment - Fixed in 0.7 (to be released soon)
          Alex Earl made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

          Colin Jensen added a comment -

          Thank you!

          Colin Jensen added a comment - Thank you!

            slide_o_mix Alex Earl
            johanneszinn Johannes Zinn
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: