Spark 2.9.X File transfer error after reconnection

Hi
After upgrading from Spark 2.8.3 to Spark 2.9.3 (and also to Spark 2.9.4), users cannot transfer the file after reconnecting.
Everything works fine before reconnecting.
But if the user reconnects then the file transfer will show an infinite time.

I think this is a problem in the IBB protocol

A temporary solution to the problem:
Disable In-Band Bytesreams Only
image

This is before disable only IBB:

<iq xmlns="jabber:client" to="l.petrakova@srv-chat.local/Spark 2.9.4" from="i.hlevnoy@srv-chat.local/Spark 2.9.4" id="fuqqe-16218" type="set">
  <si xmlns="http://jabber.org/protocol/si" id="jsi_9092168990064619940" mime-type="image/png" profile="http://jabber.org/protocol/si/profile/file-transfer">
    <file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="image_yG.png" size="21476" date="2020-11-27T07:24:22.574+00:00">
      <desc>Sending file</desc>
    </file>
    <feature xmlns="http://jabber.org/protocol/feature-neg">
      <x xmlns="jabber:x:data" type="form">
        <field var="stream-method" type="list-single">
          <option>
            <value>http://jabber.org/protocol/bytestreams</value>
          </option>
          <option>
            <value>http://jabber.org/protocol/ibb</value>
          </option>
        </field>
      </x>
    </feature>
  </si>
</iq>


<iq xmlns="jabber:client" to="i.hlevnoy@srv-chat.local/Spark 2.9.4" id="fuqqe-16218" type="result">
  <si xmlns="http://jabber.org/protocol/si">
    <feature xmlns="http://jabber.org/protocol/feature-neg">
      <x xmlns="jabber:x:data" type="submit">
        <field var="stream-method">
          <value>http://jabber.org/protocol/ibb</value>
        </field>
      </x>
    </feature>
  </si>
</iq>

and this after disable only IBB:

<iq xmlns="jabber:client" to="l.petrakova@srv-chat.local/Spark 2.9.4" from="i.hlevnoy@srv-chat.local/Spark 2.9.4" id="fuqqe-16626" type="set">
  <si xmlns="http://jabber.org/protocol/si" id="jsi_927632421382683672" mime-type="image/png" profile="http://jabber.org/protocol/si/profile/file-transfer">
    <file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="image_uM.png" size="3910" date="2020-11-27T07:40:47.984+00:00">
      <desc>Sending file</desc>
    </file>
    <feature xmlns="http://jabber.org/protocol/feature-neg">
      <x xmlns="jabber:x:data" type="form">
        <field var="stream-method" type="list-single">
          <option>
            <value>http://jabber.org/protocol/bytestreams</value>
          </option>
          <option>
            <value>http://jabber.org/protocol/ibb</value>
          </option>
        </field>
      </x>
    </feature>
  </si>
</iq>


<iq xmlns="jabber:client" to="i.hlevnoy@srv-chat.local/Spark 2.9.4" id="fuqqe-16626" type="result">
  <si xmlns="http://jabber.org/protocol/si">
    <feature xmlns="http://jabber.org/protocol/feature-neg">
      <x xmlns="jabber:x:data" type="submit">
        <field var="stream-method">
          <value>http://jabber.org/protocol/bytestreams</value>
          <value>http://jabber.org/protocol/ibb</value>
        </field>
      </x>
    </feature>
  </si>
</iq>

IBB option was only added as a work around after file transfer got degraded in 2.8 versions. As currently we got reports that file transfer works ok in 2.9 version, you probably shouldn’t use IBB anymore.
https://igniterealtime.atlassian.net/browse/SPARK-2209

Thank you very much for the quick response.

I think that many people will face this problem, perhaps it is worth opening another ticket in Jira to disable IBB by default in the next version of Spark 2.9.5

1 Like

Oh, i didn’t know it is on by default. I guess we did this so most users will have file transfer working at least with IBB. I wonder now about the tickets we have closed. Maybe file transfer (without IBB) is still having problems. So, i think for now we should leave it enabled and fix this bug (made it major now). And later we need to test file transfer without IBB and maybe open a new ticket if it fails.

I will update to Spark 2.8.4 with disables IBB today on all my 250 PCs. It turns out that many of my users use file transfer, so if problems arise, I will write in this thread.

1 Like

@wroot
Do I understand correctly that in the latest builds of Spark 2.9.5 IBB is disabled?
image

After disabling down IBB a month ago, I don’t get messages from my employees about this problem, I think the problem is solved!

1 Like

IBB is on by default actually. We can try disabling it and see how it works for the rest of the users. It will only affect new users. https://igniterealtime.atlassian.net/browse/SPARK-2216

My mistake, I deleted the folder from appdata and started Spark again and now I see that IBB is enabled. I hope that it will be turned off by default. Thank you for your ticket.

Thanks for PR. This setting is controlled in default.properties. I have made this change https://github.com/igniterealtime/Spark/commit/1dbf6115fd75cebb1047e7e550c532876eb22e47 Now its default will be off.

Oh, my PR is terrible. thank you for disabled IBB.
If I’m going to create a new PR I’ll test in the IDE first.

Not a problem, it is easy to revert PR or submit a fix. Everyone does mistakes :wink: