[
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)