[ 
https://issues.apache.org/jira/browse/NIFI-12837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17827002#comment-17827002
 ] 

Anders commented on NIFI-12837:
-------------------------------

Thank you for replying Peter!

Even if the DFS feature would be somewhat experimental, it would still be very 
useful for those able to utilize ut.
Without it, I (and possibly others) can't use the SMB processors at all.

I've just patched in support for it in the PutSmbFile processor I am running, 
but I'm no java coder, and it's not pretty.

I guess I might also be running into the first issue you are mentioning. After 
some time (not necessarily long), I end up getting 
{code}
ERROR [Timer-Driven Process Thread-X] o.apache.nifi.processors.smb.PutSmbFile 
PutSmbFile[id=...] Could not establish smb connection because of error 
com.hierynomus.smbj.common.SMBRuntimeException: 
com.hierynomus.protocol.transport.TransportException:  
java.net.SocketException: Broken pipe (Write failed)
{code}

I've also noticed that the "Temporary Suffix" option in PutSmbFile does not 
work for me when I've enbled DFS and talk to the DFS-address. It gives me 
STATUS_OBJECT_NOT_FOUND. I works if I talk directly to the nodes in the cluster 
though.

Either way, adding the DFS options as a toggle (default false) and adding the 
workaround you mention would be extremely useful.

> Add DFS setting to smb processors
> ---------------------------------
>
>                 Key: NIFI-12837
>                 URL: https://issues.apache.org/jira/browse/NIFI-12837
>             Project: Apache NiFi
>          Issue Type: Improvement
>    Affects Versions: 1.25.0
>            Reporter: Anders
>            Assignee: Peter Turcsanyi
>            Priority: Major
>
> The hierynomus/smbj library has a setting for enabling DFS which is disabled 
> by default:
> https://github.com/hierynomus/smbj/blob/f25d5c5478a5b73e9ba4202dcfb365974e15367e/src/main/java/com/hierynomus/smbj/SmbConfig.java#L106C17-L106C39
> This appears to cause problems in some SMB configurations.
> Patched 
> https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
>  to test in my environment with:
> {code}
> $ git diff 
> nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
> diff --git 
> a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
>  
> b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
> index 0895abfae0..aaaaeac765 100644
> --- 
> a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
> +++ 
> b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java
> @@ -46,6 +46,8 @@ public final class SmbUtils {
>              }
>          }
> +        configBuilder.withDfsEnabled(true);
> +
>          if (context.getProperty(USE_ENCRYPTION).isSet()) {
>              
> configBuilder.withEncryptData(context.getProperty(USE_ENCRYPTION).asBoolean());
>          }
> {code}
> This appeared to resolve the issue.
> It would be very useful if this setting was available to toggle in the UI for 
> all SMB processors.
> Without this setting, I get a *STATUS_PATH_NOT_COVERED* error. 
> Somewhat related hierynomus/smbj github issues:
> https://github.com/hierynomus/smbj/issues/152
> https://github.com/hierynomus/smbj/issues/419
> This setting should be made available in the following processors and 
> services:
> * GetSmbFile
> * PutSmbFile
> * SmbjClientProviderService
> Edit: It might require some more changes to handle the connections and 
> sessions correctly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to