Tasca #4666
tancatLes recol·leccions OAI de Recercat estan encallades
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.
FJ Actualitzat per Ferran Jorba fa més de 8 anys
- 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
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
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
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
- Paraula clau s'ha establert a JR
FJ Actualitzat per Ferran Jorba fa més de 8 anys
- 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
- 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
Doncs sí, que sembla que sigui error de l'OAI de Recercat. Llevat de les peticions més simples, com la primera, en totes les altres dóna error:
- http://oai.recercat.cat/request?verb=Identify
- http://oai.recercat.cat/request?set=hdl_2072_10315&verb=ListRecords&from=2017-07-14&metadataPrefix=oai_dc
- http://oai.recercat.cat/request?verb=ListRecords&from=2017-07-14&metadataPrefix=oai_dc
- http://oai.recercat.cat/request?verb=ListRecords&metadataPrefix=oai_dc
- http://oai.recercat.cat/request?set=hdl_2072_1743&verb=ListIdentifiers&from=2017-07-14&metadataPrefix=oai_dc
Ara miro de posar-me en contacte amb ells.
FJ Actualitzat per Ferran Jorba fa més de 8 anys
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
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
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
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
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
- 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
- Paraula clau s'ha suprimit (
JR)