Act bloqué sur running

asqatasun
audit
Tags: #<Tag:0x00007fe7b4b75888> #<Tag:0x00007fe7b4b752c0>

#1

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,


#2

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, …) ?


#3

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'_

#4

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?


#5

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


#6

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;
            }
        }

#7

Ca doit meme etre en amont, cette methode ne semble pas appelée. Il faut voir quelle methode l’appelle.


#8

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);
        }

#9

Tu pourrais fournir le log complet?
Le fait que ca bascule en asynchrone est normal, le log le dit bien.


#10

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

#11

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?


#12

Oui, il s’agit de la table TGSI_ACT_AUDIT et l’association est bien faite.


#13

Bon, il faut que je reflechisse :slight_smile:


#14

Quels sont les cas ou ca marche?


#15

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.


#16

Bonjour @meriadec,

Pour l’install docker, c’est basé sur :


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 ?


#17

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.


#18

@martinti,

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 :