Bonjour,
Lorsque je lance un audit de pages avec plus de deux pages en paramètre je rencontre le problème suivant:
L’audit s’effectue correctement cependant il ne remonte pas au niveau de l’interface web. Je peux y accéder seulement en entrant dans l’URL, l’id de l’audit.
J’ai regardé côté BDD sur la table AUDIT j’ai bien le statut “COMPLETED” cependant, sur la table TGSI_ACT, l’act correspondant reste à l’état “RUNNING”. Le seul moyen de l’afficher sur l’interface web et de passer de “RUNNING” à “COMPLETED” manuellement.
Je n’arrive pas à comprendre pourquoi lorsqu’il y a plus de deux pages le changement d’état ne se fait pas automatiquement.
Si vous avez des pistes, je suis preneur.
Merci d’avance,
Bonjour @martinti,
Si tu peux jeter un oeil aux logs /var/logs/asqatasun
, tu auras certainement un peu plus d’information.
Peux-tu préciser la version d’Asqatasun et le type d’install (OS, Docker, …) ?
Bonjour @joe merci de ta réponse.
La vesion d’Asqatasun est la v4.0.3. C’est une install docker.
Au niveau des logs voici ce que j’obtiens à chaque fois peut être un problème de timeout, je ne sais pas:
Audit Duration has exceeded synchronous delay 25000_ DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - Audit Duration ExceedsDelay. The audit result is now managed in an asynchronous way._ DEBUG org.springframework.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'greedy-audit'; URL [/WEB-INF/view/greedy-audit.jsp]] in DispatcherServlet with name 'tgol-web-app'_
Bonjour,
Le changement d’etat qui ne se fait pas, est surement un bug, il faut jeter un oeil. Dans l’interface ne sont présentés que les audits dont l’état de l’ ‘act’ associé est passé à “COMPLETED”
Le fait que ca passe en mode “asynchrone” est normal, suivant la taille des pages auditées (tu peux constater ce phenomene en auditant une seule page) et le nombre de remarques créées.
Tu penses pouvoir jeter un oeil dans le code? T’es en mesure de le faire?
Je pense pouvoir encore faut’il que je trouve dans quel fichier cela se fait.
J’ai l’impression que toutes ces actions s’effectuent au niveau du fichier AsqatasunOrchestratorImpl.java
Pour moi c’est au niveau de la méthode onActTerminated que le changement d’état est censé se faire:
protected void onActTerminated(Act act, Audit audit) { this.audit = audit; Date endDate = new Date(); act.setEndDate(endDate); **if (audit.getStatus().equals(AuditStatus.COMPLETED)) {** act.setStatus(ActStatus.COMPLETED); } else { act.setStatus(ActStatus.ERROR); } act = actDataService.saveOrUpdate(act); if (exception != null) { sendKrashAuditEmail(act, locale, exception); actDataService.delete(act.getId()); auditDataService.delete(audit.getId()); this.audit = null; } }
Ca doit meme etre en amont, cette methode ne semble pas appelée. Il faut voir quelle methode l’appelle.
Pour moi c’est le run:
public void run() {
this.getAuditService().add(this);
Audit currentAudit = launchAudit();
this.getCurrentAct().setAudit(currentAudit);
actDataService.saveOrUpdate(this.getCurrentAct());
currentAudit = this.waitForAuditToComplete(currentAudit);
this.getAuditService().remove(this);
onActTerminated(this.getCurrentAct(), currentAudit);
}
Tu pourrais fournir le log complet?
Le fait que ca bascule en asynchrone est normal, le log le dit bien.
Voici le log complet de l’audit:
DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - Page audit on <MON_URL> DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param 1080 SCREEN_HEIGHT DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param false ALTERNATIVE_CONTRAST_MECHANISM DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param DECORATIVE_IMAGE_MARKER DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param 1920 SCREEN_WIDTH DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param INCLUSION_REGEXP DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param COMPLEX_TABLE_MARKER DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param 86400 MAX_DURATION DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param true CONSIDER_COOKIES DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param Rgaa30;LEVEL_2 LEVEL DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param DATA_TABLE_MARKER DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param INFORMATIVE_IMAGE_MARKER DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param 0 DEPTH DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param 1 MAX_DOCUMENTS DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param EXCLUSION_REGEXP DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - param PRESENTATION_TABLE_MARKER INFO org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - Launching audit Page on <MON_URL> DEBUG org.asqatasun.service.AuditServiceImpl - auditpage DEBUG org.asqatasun.service.AuditServiceThreadQueueImpl - auditCommand polled DEBUG org.asqatasun.service.AuditServiceThreadQueueImpl - AuditServiceThread created from auditCommand DEBUG org.asqatasun.service.AuditServiceThreadQueueImpl - AuditServiceThread started DEBUG org.asqatasun.util.http.HttpRequestHandler - isProxySet: true DEBUG org.asqatasun.util.http.HttpRequestHandler - Set proxy with <MON_PROXY> and 3128 DEBUG org.asqatasun.util.http.HttpRequestHandler - isProxyCredentialSetfalse DEBUG org.asqatasun.util.http.HttpRequestHandler - executing head request to retrieve page status on <MON_URL> DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - WAIT FOR AUDIT TO COMPLETE:org.asqatasun.entity.audit.AuditImpl@77826e28,1536241247 DEBUG org.asqatasun.util.http.HttpRequestHandler - received 200 from head request INFO org.asqatasun.service.command.AbstractScenarioAuditCommandImpl - Loading content for <MON_URL> DEBUG org.asqatasun.scenarioloader.ScenarioLoaderImpl - Launch Scenario {"seleniumVersion":"2","formatVersion":1,"steps":[{"type":"get","url":"<MON_URL>"}]} DEBUG org.asqatasun.scenarioloader.ScenarioLoaderImpl - Audit page script DEBUG com.sebuilder.interpreter.SeInterpreter - Starting test run. DEBUG com.sebuilder.interpreter.SeInterpreter - Launching initialisation of WebDriver DEBUG com.sebuilder.interpreter.SeInterpreter - Initialising driver. DEBUG com.sebuilder.interpreter.SeInterpreter - WebDriver initialised DEBUG com.sebuilder.interpreter.SeInterpreter - Running step 1:org.asqatasun.sebuilder.interpreter.steptype.Get@6fb4648f step. DEBUG com.sebuilder.interpreter.SeInterpreter - Fire New Page From a Get DEBUG com.sebuilder.interpreter.SeInterpreter - Executing js DEBUG com.sebuilder.interpreter.SeInterpreter - Js executed DEBUG org.asqatasun.scenarioloader.ScenarioLoaderImpl - fire New SSP <MON_URL> DEBUG org.asqatasun.crawler.util.CrawlUtils - No encoding detected. DEBUG com.sebuilder.interpreter.SeInterpreter - Closing Firefox driver. DEBUG org.asqatasun.scenarioloader.ScenarioLoaderImpl - <MON_URL> succeeded INFO org.asqatasun.service.command.AbstractScenarioAuditCommandImpl - <MON_URL> has been loaded INFO org.asqatasun.service.command.AuditCommandImpl - Adapting <MON_URL> DEBUG org.asqatasun.contentadapter.css.ExternalCSSRetrieverImpl - Retrieved 0 external css for the audit n 261 DEBUG org.asqatasun.service.command.AuditCommandImpl - Adapting ssp from 0 to 4 for <MON_URL> DEBUG org.asqatasun.contentadapter.util.AdaptationActionVoterImpl - doesExecute class org.asqatasun.contentadapter.util.AdaptationActionVoterImpl for audit n? 261 DEBUG org.asqatasun.contentadapter.util.AdaptationActionVoterImpl - doesExecute class org.asqatasun.contentadapter.util.AdaptationActionVoterImpl for audit n? 261 DEBUG org.asqatasun.contentadapter.ContentsAdapterImpl - Adapting <MON_URL> DEBUG org.asqatasun.contentadapter.ContentsAdapterImpl - no Html parse executed for the current audit DEBUG org.asqatasun.service.command.AuditCommandImpl - Adapting 1 SSP took 22 ms 1 DEBUG org.asqatasun.service.command.AuditCommandImpl - Persisting 1 SSP took 14 ms for <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Application spent 14 ms to write in Disk while adapting DEBUG org.asqatasun.contentadapter.css.ExternalCSSRetrieverImpl - Remove External CSS for the audit n? 261 INFO org.asqatasun.service.command.AuditCommandImpl - <MON_URL> has been adapted INFO org.asqatasun.service.command.AuditCommandImpl - Processing <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Processing from 0 to 4for <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Processing of 4 elements took 3956 ms for <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Persisting result for page <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Persist processing of 4 elements took 2094 ms for <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Application spent 2094 ms to write in Disk while processing INFO org.asqatasun.service.command.AuditCommandImpl - <MON_URL> has been processed INFO org.asqatasun.service.command.AuditCommandImpl - Consolidating <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Consolidate 151 elements for 274 tests DEBUG org.asqatasun.service.command.AuditCommandImpl - Consolidating took 1133 ms DEBUG org.asqatasun.service.command.AuditCommandImpl - Persisting Consolidation of the audit took18 ms INFO org.asqatasun.service.command.AuditCommandImpl - <MON_URL> has been consolidated INFO org.asqatasun.service.command.AuditCommandImpl - Analysing <MON_URL> DEBUG org.asqatasun.service.command.AuditCommandImpl - Application spent 0 ms to write in Disk while analysing INFO org.asqatasun.service.command.AuditCommandImpl - <MON_URL> has been analysed INFO org.asqatasun.service.command.AuditCommandImpl - Cleaning-up data for <MON_URL> INFO org.asqatasun.service.command.AuditCommandImpl - Data cleaned-up for <MON_URL> DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - AUDIT COMPLETED:org.asqatasun.entity.audit.AuditImpl@64d8a4ed,<MON_URL>,1536241248261 DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - AUDIT COMPLETED:org.asqatasun.entity.audit.AuditImpl@64d8a4ed,<MON_URL>,1536241248261 DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - AUDIT COMPLETED:org.asqatasun.entity.audit.AuditImpl@64d8a4ed,<MON_URL>,1536241248261 DEBUG org.asqatasun.webapp.orchestrator.AsqatasunOrchestratorImpl - AUDIT COMPLETED:org.asqatasun.entity.audit.AuditImpl@64d8a4ed,<MON_URL>,1536241248261
C’est curieux, tout semble OK.
De mémoire, il y a une table d’association entre act et audit. Les deux id associé pour un audit donné sont correct?
Oui, il s’agit de la table TGSI_ACT_AUDIT et l’association est bien faite.
Bon, il faut que je reflechisse
Quels sont les cas ou ca marche?
Difficile à dire, au redémarrage du container, s’il y a un ou deux pages à auditer cela fonctionne. Mais après le problème revient continuellement.
Bonjour @meriadec,
Pour l’install docker, c’est basé sur :
- les images sur le docker hub ?
- un build du dockerfile disponible sur github
- un build d’un dockerfile personnalisé ?
peux-tu préciser le type de page (URL sur internet, ou local) ?
Un audit de la page d’accueil de wikipedia (par exemple) rencontre aussi ce type de problème ?
Bonjour @fabrice,
L’instal docker est basé sur le dockerfile du github. Il est légère modifié car j’utilise ma propre base MySQL.
L’audit est fait sur des URL sur internet.
Je viens de tester sur Wikipedia même problème.
questions :
- quelles sont les différences entre les dockfiles ?
- quelle est la version de MySQL + idéalement l’OS ou l’image docker où la DB tourne ?
pistes de debug :
- en comparant les audits qui plantent avec les 1ers audits qui ne plantent pas, voir avec des audits dans un conteneur basé sur le dockerfile “officiel” :
- les logs Tomcat
- les logs MySQL
- les logs Asqatasun
- activer les logs des requêtes SQL dans MySQL (pour ma part j’arrive pas actuellement à activer les logs dans le conteneur) :
@martinti, le problème persiste ?