Xqt has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1087418?usp=email )

Change subject: [fix] retry SparqlQuery.query on internal server error (500)
......................................................................

[fix] retry SparqlQuery.query on internal server error (500)

Bug: T378788
Change-Id: I498d8b306c73edebc2f4c17f200508dde26c428e
---
M pywikibot/data/sparql.py
1 file changed, 10 insertions(+), 3 deletions(-)

Approvals:
  Xqt: Verified; Looks good to me, approved
  jenkins-bot: Verified




diff --git a/pywikibot/data/sparql.py b/pywikibot/data/sparql.py
index addf521..d217e8b 100644
--- a/pywikibot/data/sparql.py
+++ b/pywikibot/data/sparql.py
@@ -15,7 +15,7 @@
 from pywikibot.backports import removeprefix
 from pywikibot.comms import http
 from pywikibot.data import WaitingMixin
-from pywikibot.exceptions import Error, NoUsernameError
+from pywikibot.exceptions import Error, NoUsernameError, ServerError


 try:
@@ -140,6 +140,8 @@
         .. versionchanged:: 8.5
            :exc:`exceptions.NoUsernameError` is raised if the response
            looks like the user is not logged in.
+        .. versionchanged:: 9.6
+           retry on internal server error (500).

         :param query: Query text
         :raises NoUsernameError: User not logged in
@@ -154,9 +156,14 @@
         while True:
             try:
                 self.last_response = http.fetch(url, headers=headers)
-                break
             except Timeout:
-                self.wait()
+                pass
+            except ServerError as e:
+                if not e.unicode.startswith('500'):
+                    raise
+            else:
+                break
+            self.wait()

         try:
             return self.last_response.json()

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1087418?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I498d8b306c73edebc2f4c17f200508dde26c428e
Gerrit-Change-Number: 1087418
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <i...@gno.de>
Gerrit-Reviewer: Xqt <i...@gno.de>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org
To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org

Reply via email to