]> git.mxchange.org Git - friendica.git/commitdiff
fix for probe loop in case that network of contact has changed
authorS. Brusch <ne20002@gmx.ch>
Sun, 14 May 2023 13:38:47 +0000 (15:38 +0200)
committerS. Brusch <ne20002@gmx.ch>
Sun, 14 May 2023 13:38:47 +0000 (15:38 +0200)
This fixes a loop of probes / contact updates where the network has been apup and for whatever
reason is now feed. In this case the contact hasn't been updated and rescheduled with next_update as null resulting
in a huge number of queries.

The call to hasLocalData has been moved a bit up as it checks for values that otherwise would be emptied befare the call.

Fixes #13037

src/Model/Contact.php

index b06cbff875764ead6615b6b8194092bc5e881746..648193b09cc2749e3c6b762ab63c2732f334ffad 100644 (file)
@@ -2682,6 +2682,8 @@ class Contact
                        return true;
                }
 
+                $has_local_data = self::hasLocalData($id, $contact);
+
                $uid = $contact['uid'];
                unset($contact['uid']);
 
@@ -2702,9 +2704,7 @@ class Contact
 
                $updated = DateTimeFormat::utcNow();
 
-               $has_local_data = self::hasLocalData($id, $contact);
-
-               if (!Probe::isProbable($ret['network'])) {
+               if (!Probe::isProbable($ret['network']) && !Probe::isProbable($contact['network'])) {
                        // Periodical checks are only done on federated contacts
                        $failed_next_update  = null;
                        $success_next_update = null;