Projecte

General

Perfil

Accions

Tasca #4666

tancat
FJ FJ

Les recol·leccions OAI de Recercat estan encallades

Tasca #4666: Les recol·leccions OAI de Recercat estan encallades

Afegit per Ferran Jorba fa més de 8 anys. Actualitzat fa aproximadament 8 anys.

Estat:
Tancada
Prioritat:
Normal
Assignat a:
Categoria:
Tecnologia
Temàtica prevista:
Inici:
04-09-2017
Data de venciment:
14-11-2017
Paraula clau:

Descripció

Els 26, 27 i 28 de juliol d'enguany la tasca oaiharvest que s'executa a partir de les 5 del matí del DDD es va encallar. A l'agost ho vaig aturar, esperant que (màgicament) ara al setembre tornés a funcionar normalment. Ai las, no és així.

El que es veu al bibsched és el següent:

426695 oaiharvest              2017-07-26 05:05:02       KILLED    mompou Harvesting recercat (1/40)
426911 oaiharvest              2017-07-27 05:05:02       KILLED    mompou Harvesting recercat (1/40)
427189 oaiharvest              2017-07-28 05:05:02       KILLED    mompou Harvesting recercat (1/40)                                                                                                 
429386 oaiharvest              2017-09-04 06:41:15       RUNNING   mompou Harvesting recercat (1/40)

I els logs no diuen res gaire útil:

2017-09-04 06:41:19 --> argv=['/home/ddd/invenio/bin/oaiharvest', '--verbose=9']
2017-09-04 06:41:19 --> _OPTIONS={'fixed_time': True, 'dates': None, 'repository': None}
2017-09-04 06:41:19 --> _TASK_PARAMS={'profile': [], 'fixed_time': False, 'post-process': [], 'task_stop_helper_fnc': None, 'verbose': 9, 'task_specific_name': '', 'sequence-id': None, 'user': '', 'stop_queue_on_error': False, 'task_id': 429386, 'sleeptime': '', 'runtime_limit': None, 'priority': 0, 'version': '$Id$', 'task_name': 'oaiharvest', 'runtime': '2017-09-04 06:41:19'}
2017-09-04 06:41:20 --> Task #429386 started.
2017-09-04 06:41:20 --> Updating task status to RUNNING.
2017-09-04 06:41:20 --> harvesting from all repositories in the database
2017-09-04 06:41:20 --> Entering task_sleep_now_if_required with status=RUNNING
2017-09-04 06:41:20 --> running in postmode c-u
2017-09-04 06:41:20 --> source recercat is going to be updated
2017-09-04 06:41:20 --> Updating task progress to Harvesting recercat (1/40).

Cal desencallar-ho.


Tasques relacionades 1 (0 obertes1 tancada)

relacionat amb DDD - Tasca #4679: S'estan important erròniament registres ja existents via OAITancadaFerran Jorba13-09-201722-12-2017Accions

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #1

  • Estat ha canviat de Creada a En curs

Sembla que el problema està en Recercat, perquè si desactivo la serva recol·lecció (frequency: Never), els altres servidors (ReDI i Racó) es recol·lecten correctament.

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #2

No crec que el problema estigui en Recercat, perquè el programa https://ddd.uab.cat/idregistres.py que, de fet, actua també com un client oai, no en dóna cap, de problema. Continuo investigant perquè el del DDD s'encalla...

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #3

Segons el DDD, el servidor OAI de Recercat no respon bé al resumptionToken, que ve a ser l'equivalent dels cookies per les sessions OAI. M'estic trobant missatges d'aquest tipus:

<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-09-12T15:40:52Z</responseDate>
  <request verb="ListRecords" resumptionToken="http://oai.recercat.cat/request">http://oai.recercat.cat/request</request>
  <error code="badResumptionToken">The value of the resumptionToken argument is invalid or expired</error>
</OAI-PMH>

A més a més, això havia causat un munt de fitxers temporals que havia col·lapsat el directori de treball d'Invenio i ha fet francament difícil la neteja. És per això que no ha estat fàcil saber què estava passant.

Com que pel idregistres.py no faig servir resumptionToken (quan em trobo la petició, acoto per dates més fines, perquè OJS no sempre el gestiona bé, segons el Marc Bria del Servei de Publicacions), ara mateix no puc confirmar que sigui efectivament un error de Recercat o d'Invenio. Continuo.

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #4

Estic fent diferents proves amb el client OAI https://metacpan.org/release/HTTP-OAI (empaquetat a Debian com a http://packages.debian.org/libhttp-oai-perl) i sembla ser que Recercat sí que respon bé als resumptionToken. Però encara no ho he rastrejat prou com per confirmar-ho.

CA Actualitzat per Cristina Azorin fa més de 8 anys Accions #5

  • Paraula clau s'ha establert a JR

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #6

  • S'ha afegit relacionat amb Tasca #4679: S'estan important erròniament registres ja existents via OAI

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #7

  • Tema ha canviat de Les recol·leccions OAI estan encallades a Les recol·leccions OAI de Recercat estan encallades

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #9

Bé, sembla que el servidor OAI de Recercat ja no dóna error. Com que avui el DDD està col·lapsat, és mal moment per actualitzar les càrregues, però ho deixaré perquè s'actualitzi automàticament demà.

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #10

Doncs no, el procediment automàtic d'Invenio pel DDD continua encallat per l'OAI de Recercat, malgrat sembla que Recercat ara funciona correctament. Continuarem investigant...

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #11

Intento recuperar el tema, però és tan estrany... De moment dóna els mateixos missatges des que va començar aquesta història.

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #12

Pensava haver trobat la solució a en una millora de la versió 1.1.7, que corregeix específicament la gestió dels resumptionToken de la recol·lecció OAI. En OAI, el resumtionToken és com els cookies de la web, serveixen per recordar la sessió i permetre servir els registres bibliogràfics en conjunts petits si la petició és molt gran:

https://github.com/inveniosoftware/invenio/commit/36a1921207337a70749af189c9d7b60bc554b33d

però no, no ha causat cap efecte. Però, en tot cas, ha de venir d'aquí. Deu ser que a partir de certa versió DSpace genera un resumptionToken en un format que Invenio no reconeix.

FJ Actualitzat per Ferran Jorba fa més de 8 anys Accions #13

Acabo de desencallar el tema esquivant el problema. A veure, la conclusió que he arribat, sense entendre ben bé els detalls, és que algun canvi a Recercat, potser per alguna actualtizació del software DSpace, fa que el nostre Invenio no s'entengui bé amb el resumptionToken que li envia Recercat.

Torno a fer el recordatori de què és el resumptionToken: és una mena de cookie, una senyal que dóna un servidor OAI a una petició del client OAI quan el número de registres és molt gran. En veureu un exemple al final d'aquesta pàgina:

http://oai.recercat.cat/request?verb=ListRecords&metadataPrefix=oai_dc

El que ha de fer el client OAI, DDD en el nostre cas, és demanar-li al servidor OAI que li doni els registres que venen a continuació d'aquesta petició, la petició identificada amb el resumptionToken que el servidor se suposa que se n'enrecorda.

Doncs bé, abans s'entenien i ara no s'entenen. No m'atreveixo a dir qui és el que ho fa malament, sospito que el DDD, però no no sé encara. Sigui com sigui, he adoptat aquestes estratègies:

  • A través de https://ddd.uab.cat/idregistres.py, he marcat amb + i, per tant, importat els registres que teníem pendents de Recercat.
  • Actualitzar el registre de la base de dades del DDD per dir que la darrera consulta OAI a Recercat era el 1 d'octubre, en comptes del 27 de juliol. Amb això minimitzo la possibilitat que hagin d'haver-hi resumptionTokens amunt i avall.
  • Configurar, via https://ddd.uab.cat/admin/oaiharvest/oaiharvestadmin.py/editsource?ln=ca&oai_src_id=12, que la recol·lecció de Recercat sigui diària. Amb això continuo minimitzant la possibilitat que hagin d'haver-hi resumptionTokens amunt i avall.

Un cop fet això, he forçat una recol·lecció OAI de Recercat (des del dia 1 d'octubre, de gloriosa memòria), i sí, ha funcionat! Ha recol·lectat un parell de registres (que també tenia a la llista via idregistres), i, en qualsevol cas, de moment hem sortejat el problema.

CA Actualitzat per Cristina Azorin fa més de 8 anys Accions #14

  • Data de venciment ha canviat de 08-09-2017 a 14-11-2017
  • Estat ha canviat de En curs a Tancada
  • Prioritat ha canviat de Alta a Normal

CA Actualitzat per Cristina Azorin fa aproximadament 8 anys Accions #15

  • Paraula clau s'ha suprimit (JR)
Accions

També disponible a: PDF Atom