Uploaded image for project: 'Apache NiFi MiNiFi C++'
  1. Apache NiFi MiNiFi C++
  2. MINIFICPP-286

PutFile fails if filename property includes a path

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.3.0
    • None

    Description

      If a flowfile 'filename' property includes a path (i.e. nested subdirs), then PutFile fails due to improper creation of temporary write file.

      Example ExecuteScript lua to update filename:

      function onTrigger(context, session)
        flow_file = session:get()
        log:info('rename_file triggered')
      
        if flow_file ~= nil then
          file_name = flow_file:getAttribute('filename')
          new_file_name = 'a/b/' .. file_name
          log:info('renaming ' .. flow_file:getAttribute('filename') .. ' to ' .. new_file_name)
          flow_file:updateAttribute('filename', new_file_name)
          session:transfer(flow_file, REL_SUCCESS)
          log:info('rename_file success')
        else
          log:info('no work to do')
        end
      end
      

      Log output showing the error:

      [2017-11-03 12:44:38.916] [org::apache::nifi::minifi::processors::ExecuteScript] [info] Using available lua script engine instance
      [2017-11-03 12:44:38.916] [org::apache::nifi::minifi::processors::ExecuteScript] [info] rename_file triggered
      [2017-11-03 12:44:38.916] [org::apache::nifi::minifi::processors::ExecuteScript] [info] renaming 1509727478135549592 to a/b/1509727478135549592
      [2017-11-03 12:44:38.916] [org::apache::nifi::minifi::processors::ExecuteScript] [info] rename_file success
      [2017-11-03 12:44:38.916] [org::apache::nifi::minifi::processors::ExecuteScript] [info] Releasing lua script engine
      [2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] [info] PutFile using temporary file data/.a/b/1509727478135549592.486467fe-c0b6-11e7-821e-b06ebf2c6de8
      [2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] [info] PutFile writing file a/b/1509727478135549592 into directory data
      [2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile] [info] Committing data/a/b/1509727478135549592
      [2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile::ReadCallback] [info] PutFile committing put file operation to data/a/b/1509727478135549592
      [2017-11-03 12:44:38.921] [org::apache::nifi::minifi::processors::PutFile::ReadCallback] [info] PutFile commit put file operation to data/a/b/1509727478135549592 failed because rename() call failed
      

      Attachments

        Issue Links

          Activity

            People

              achristianson Andrew Christianson
              achristianson Andrew Christianson
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: