[horde] ActiveSync Ping/Sync flooding in webserver log

Joao S Veiga jsveiga at rf.com.br
Tue Jul 25 17:55:02 UTC 2017


> Quoting Volker Then <horde40 at volkerthen.com>:
>
> I checked the accounts now on an older Outlook version, but again  
> the sync process floods the logfiles. Constant Login/Logouts on the  
> IMAP server, and loads of error messages in the horde.log,  
> "integrity constraint violation". Any way that I can fix this?
>

Hi Volker,

(disclaimer: dirty&ugly hack ahead)

I started getting this when one of my stubborn users insisted on  
setting up his Outlook (Outlook/16.0 (16.0.8229.2086; x86)) as a  
client by himself. I do have iOS and Android clients using Activesync,  
but the few other Outlook clients (and Thunderbird) I have set just  
with IMAP directly.

So this guy somehow found the Horde Activesync in the server and  
started using for his Outlook, and I immediately started getting the  
same problems you describe.

My web server logs don't get flooded, because I have long before  
disabled logging entries with Activesync, but I did get the duplicate  
key errors in the horde log, and after investigating why my  
dovecot/auth process was always running, I found that his Outlook was  
logging in/out some 2-3 times a second!! It would authenticate, ENABLE  
QRESYNC, LOGOUT, then start again.

My "solutions" (disclaimer: I don't know if this created any side  
effect problems to the user; he was not supposed to be using  
Activesync; and he says "it's all working now", so I let him be  
instead of blocking his device. Since he's the only Outlook using  
Activesync, and the only one causing trouble, I assumed it's not  
Horde's fault, but Outlook's, so I'm not trying to "fix" Horde but to  
workaround this Outlook annoyance. This might be a temporary solution  
for you or not):

For the duplicate key issue, I just deleted that row in the database  
table. If outlook wants to insert it again, let it be inserted. I did  
not happen again:

delete from horde_activesync_state where sync_key =  
'{59706a84-5788-4862-8c5b-651b94fb36a2}5';

For the 3 times a second login/logouts, I just inserted a delay for  
Outlook Activesync logins, at /usr/share/php/Horde/ActiveSync.php, in  
the

public function authenticate(Horde_ActiveSync_Credentials $credentials)

--- /usr/share/php/Horde/ActiveSync.php_orig    2017-07-17  
16:48:36.611217042 -0300
+++ /usr/share/php/Horde/ActiveSync.php 2017-07-17 16:51:20.904983830 -0300
@@ -554,6 +554,12 @@
          if (!$this->_driver->setup($user)) {
              return false;
          }
+        // slow down outlook
+        $pos = strrpos($this->_request->getHeader('User-Agent'), 'Outlook');
+        if ($pos !== false) {
+            sleep(8);
+        }
+        //end slow down outlook

          return true;
      }

You can tune this to specific users/devices/Outlook versions, and use  
a shorter delay. Again, it's just a workaround, but worked for me.

Regards,

Joao (aaand cue the pitchforks...)



More information about the horde mailing list