FS#75: Seiten die keine Reddisc sind führen zu MySQL-Flush Fehlern #19

Closed
opened 2017-11-25 10:29:09 +01:00 by golderweb · 1 comment
Owner

Der reddiscparser.py versucht jede Seite zu parsen, die im übergebenen Generator enthalten ist. Ist die Seite keine Redundanzdiskussionsseite werden keine Redundanzfamilien gefunden.

Der else-Zweig der entsprechenden Iteration wird dennoch ausgeführt. Folge ist ein Flush-Versuch ohne Conncection.

./redundances $ $ python reddiscparser.py 2016-08-24 09:37:46 (UTC) reddiscparser invoked 2016-08-24 09:37:47 (UTC) Retrieving 50 pages from wikipedia:de.

Töpferei <<<
2016-08-24 09:37:48 (UTC)
0 pages read
0 pages written
2016-08-24 09:37:48 (UTC) Execution time: 1 seconds
2016-08-24 09:37:48 (UTC) Script terminated by exception:

ERROR: AttributeError: 'bool' object has no attribute 'cursor'
Traceback (most recent call last):
File "reddiscparser.py", line 207, in
main()
File "reddiscparser.py", line 202, in main
DiscussionParserBot( gen ).run()
File "reddiscparser.py", line 68, in run
super( DiscussionParserBot, self ).run()
File "./pywikibot-core/pywikibot/bot.py", line 1435, in run
self.treat(page)
File "./pywikibot-core/pywikibot/bot.py", line 1722, in treat
super(ExistingPageBot, self).treat(page)
File "./pywikibot-core/pywikibot/bot.py", line 1786, in treat
super(NoRedirectPageBot, self).treat(page)
File "./pywikibot-core/pywikibot/bot.py", line 1649, in treat
self.treat_page()
File "reddiscparser.py", line 104, in treat_page
redfam.RedFamParser.flush_db_cache()
File "./redundances/lib/redfam.py", line 116, in flush_db_cache
MysqlRedFam.flush()
File "./redundances/lib/mysqlred.py", line 95, in flush
cursor = cls.connection.cursor()
AttributeError: 'bool' object has no attribute 'cursor'
WARNING: 2016-08-24 09:37:48 (UTC) Cached Database write querys not flushed!!! Data loss is possible!
<class 'AttributeError'>
CRITICAL: Closing network session.

Lösung(en):

  • Während der Iteration des reddiscs Generators prüfen ob die Seite dem Muster "/Wikipedia:Redundanz/(%LOCAL_MONTHS%) \d{4}(/Archiv)?/" entspricht
  • Mittels Zähler im Iterator sicherstellen dass überhaupt eine RedFam gefunden wurde
  • MysqlRed.flush() muss vorhanden sein einer Verbindung sicherstellen --> Sonst Fehler

Imported from https://fs.golderweb.de/task/75 via GOLDERWEB FS->GITEA TICKETIMPORTER

Originially opened: Wed Aug 24 12:45:58 2016

Der reddiscparser.py versucht jede Seite zu parsen, die im übergebenen Generator enthalten ist. Ist die Seite keine Redundanzdiskussionsseite werden keine Redundanzfamilien gefunden. Der else-Zweig der entsprechenden Iteration wird dennoch ausgeführt. Folge ist ein Flush-Versuch ohne Conncection. <code> ./redundances $ $ python reddiscparser.py 2016-08-24 09:37:46 (UTC) reddiscparser invoked 2016-08-24 09:37:47 (UTC) Retrieving 50 pages from wikipedia:de. >>> Töpferei <<< 2016-08-24 09:37:48 (UTC) 0 pages read 0 pages written 2016-08-24 09:37:48 (UTC) Execution time: 1 seconds 2016-08-24 09:37:48 (UTC) Script terminated by exception: ERROR: AttributeError: 'bool' object has no attribute 'cursor' Traceback (most recent call last): File "reddiscparser.py", line 207, in <module> main() File "reddiscparser.py", line 202, in main DiscussionParserBot( gen ).run() File "reddiscparser.py", line 68, in run super( DiscussionParserBot, self ).run() File "./pywikibot-core/pywikibot/bot.py", line 1435, in run self.treat(page) File "./pywikibot-core/pywikibot/bot.py", line 1722, in treat super(ExistingPageBot, self).treat(page) File "./pywikibot-core/pywikibot/bot.py", line 1786, in treat super(NoRedirectPageBot, self).treat(page) File "./pywikibot-core/pywikibot/bot.py", line 1649, in treat self.treat_page() File "reddiscparser.py", line 104, in treat_page redfam.RedFamParser.flush_db_cache() File "./redundances/lib/redfam.py", line 116, in flush_db_cache MysqlRedFam.flush() File "./redundances/lib/mysqlred.py", line 95, in flush cursor = cls.connection.cursor() AttributeError: 'bool' object has no attribute 'cursor' WARNING: 2016-08-24 09:37:48 (UTC) Cached Database write querys not flushed!!! Data loss is possible! <class 'AttributeError'> CRITICAL: Closing network session. </code> Lösung(en): * Während der Iteration des reddiscs Generators prüfen ob die Seite dem Muster "/Wikipedia:Redundanz\/(%LOCAL_MONTHS%) \d{4}(/Archiv)?/" entspricht * Mittels Zähler im Iterator sicherstellen dass überhaupt eine RedFam gefunden wurde * MysqlRed.flush() muss vorhanden sein einer Verbindung sicherstellen --> Sonst Fehler * ---- Imported from https://fs.golderweb.de/task/75 via GOLDERWEB FS->GITEA TICKETIMPORTER Originially opened: Wed Aug 24 12:45:58 2016
Author
Owner

Prüfung des Seitentitels über RegExp
Sicherstellung des Vorhandenseins von RedFams über Zähler
MysqlRed.flush() wirft Ausnahme wenn keine Verbindung besteht


Closed as https://fs.golderweb.de/task/75#taskclosed via GOLDERWEB FS->GITEA TICKETIMPORTER

Originally closed: Wed Aug 24 15:04:12 2016

Prüfung des Seitentitels über RegExp Sicherstellung des Vorhandenseins von RedFams über Zähler MysqlRed.flush() wirft Ausnahme wenn keine Verbindung besteht ---- Closed as https://fs.golderweb.de/task/75#taskclosed via GOLDERWEB FS->GITEA TICKETIMPORTER Originally closed: Wed Aug 24 15:04:12 2016
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki/jogobot-red#19