Terug naar de debugger

Nu ik ook de “reizen” blogs heb toegevoegd aan de “saveall” versie van de importer, ontstaan er vreemde problemen.
Reisblogs beslaan maar een klein percentage van het geheel, dus in eerste instantie viel de bug niet op, omdat hij ook nog eens slechts een klein deel van de reisblogs trof.

Wat is het probleem :
De importer is herstartbaar. Dat is maar goed ook, want het geheugen van wordpress loopt door allerlei bugs in wordpress zelf, langzaam vol. Na een aantal uren gaat de importer onderuit. Ik herstart hem dan, en hij gaat verder waar hij was.

De importer gebruikt de VKblog index pagina om een lijst te maken met de URL’s van alle blogs die hij moet importeren. Op de indexpagina staan timestamps, en de oorspronkelijke importer gebruikt die timestamps om te controleren of hij een blog al heeft.
Nu is het importeren een tweetraps kwestie. Om de comments te kunnen attachen, moet je een id hebben, al voordat je het hele blog hebt ingelezen. Dus maakt de importer aan de hand van de informatie uit de index een lege post aan, die in de loop van het importeren wordt ge-update met een titel, inhoud, tags, afbeeldingen, etc. Wordt de importer geherstart, dan zoekt hij aan de hand van de timestamp in de index of hij een bericht al heeft.

Al gauw bleek dat een bug op te leveren : het werkt heel goed tegen dubbelposts, maar er bleken mensen te zijn die een voorraadje berichten in één keer op hun blog kwakten, wat door de importer ten onrechte als dubbelpost werd gedetecteerd. Dus heb ik er een controle aan toegevoegd : de URL van het oorspronkelijke bericht wordt mee bewaard.

Toen kwamen de reisblogs. Compleet andere berichtlayout, maar met wat moeite kon ik er wel hetzelfde uit destilleren als uit een gewoon blog : tags, text, afbeeldingen, commentaar, avatars etc.

Toen kwamen de reisblogs zonder index bij vkblog. De reis-index is totaal anders opgebouwd dan die van vkblog. Je moet bladeren, in plaats van dat je de complete index in één keer ziet.
Er was ook nog het probleem Joszua. De index is bij hem zo groot, dat vkblog hem niet meer aan kan. Bij Joszua moet je met de hand jaar voor jaar importeren.

Toen ik een importer maakte voor users, kon in in een keer alle 8000 bloggersnamen importeren, en die met een extra lus een voor een helemaal importeren. Dat zou niet al te moeilijk moeten zijn, dacht ik.
Toch wel. Door de blogs van alle users in één wordpress installatie te stoppen, ontstonden nieuwe problemen. 8.000 users met een category per maand betekent zoveel categories en tags dat wordpress sommige dingen gewoon niet meer kan, omdat het teveel geheugen kost, of teveel tijd. Er ontstonden ook vreemde fouten die in de testsituatie niet waren opgetreden, en die ook niet te reproduceren waren.

Ik ontdek net weer een nieuwe bug, die ik wel kan oplossen ( hoop ik ) Gebruiker “jeetjemina” heeft een gemengd blog. Om een of andere reden struikelt de importer over een bijdrage. Bij de herstart haalt de importer het hele blog opnieuw binnen, en struikelt opnieuw op dezelfde plek. Hoe kan dat ? Wat blijkt : de “gemengde” index geeft de tijd tot op de minuut nauwkeurig, maar het blog zelf bevat alleen de datum. De importer vult als tijd : 12:00 in bij de update. Bij de herstart is het blog vervolgens niet terug te vinden, en wordt vrolijk opnieuw geïmporteerd. Nu nog even uitzoeken waarom hij struikelt over die ene bijdrage….

Read Offline:
This entry was posted in Wordpress. Bookmark the permalink.

12 Responses to Terug naar de debugger

  1. 8.000 users…wouw en wat een gepuzzel weer.
    en dat zegt dat hij niets doet 😉

  2. Beukmans says:

    Tsjeetje man wat een volharding en geduld heb jij, petje af hoor!

  3. admin says:

    Ja, dat is de aard van het beestje. Je ergens in vastbijten en al het andere vergeten. Levert soms problemen op als tussen “al het andere” dingen zitten die absoluut moeten gebeuren. De oorzaak van beide bugs is inmiddels helder. Alleen oplossen is even iets anders.

  4. admin says:

    Natuurlijk ligt het weer aan de VK software.
    Deze string bevat een speciaal teken, dat in HTML ge-escaped moet worden :

    Wat zal ik hier nou eens over zeggen#^*”}#@!%$**)+%$!???

  5. Op één of andere manier zie ik mijn eerder geplaatste reactie niet. Zit die soms in de spam?

  6. admin says:

    Yep, tussen de spam
    Ik kan tegen hem blijven zeggen : Ina never lies….

  7. Hallo Admin,

    Ik had mij opgegeven voor een overgang naar OBA. Is dit gelukt. Waar kan ik een bedrag storten?

    Groet

    PS per mail antwoord aub

  8. admin says:

    Voor dat soort vragen bestaat de OBA website. Wat ik hier schrijf gaat over mijn werk en hobbies. Dat dat toevallig veel met OBA te maken heeft, wil niet zeggen dat dit een dependance is.

  9. Kreeg deze reactie van jouw?

    Dit bericht wordt niet vertrouwd door onze SmartScreen-filters en wordt over tien dagen verwijderd.

    You have requested to be notified every time a new comment is added to: http://www.kblog.nl/2011/05/terug-naar-de-debugger/ Please confirm your request by clicking on this link: http://www.kblog.nl/comment-subscriptions?sre=kruzdlorob%40live.nl
    srk=e52c5d0077448d7535bd0204512338d7&srp=3012&sra=c

    Dank in iedergeval

  10. admin says:

    Je kreeg geen reactie van mij, maar je klikte op een linkje om je te abonneren op reacties. Daardoor krijg je automatisch mail van mijn blog om te bevestigen dat je dat wil. Ik heb je “pending” abonnement verwijderd, want kennelijk was het een vergissing.

  11. Antje says:

    ‘Natuurlijk ligt het weer aan de VK software.’ Nope, software doet precies wat de programmeur(s) gevraagd heeft 🙂

  12. knutselsmurf says:

    In dit geval hadden ze niks gevraagd, terwijl ze hadden moeten vragen om de unprintables uit de commenttekst te filteren. Er horen geen unprintable op een HTML pagina te staan. VKblog filtert niks. UTF-8 wordt gewoon als UTF-8 doorgegeven, gerbuikersnamen worden niet ontdaan van HTML-code, comments worden niet gefilterd, kortom hoofdstuk 1 uit het leerboek voor de programmeur niet goed gelezen.

Leave a Reply

Your email address will not be published.