Erreur Database MUST be rebuilded. (scenariserver 4.1)

Bonjour.

Depuis peu lorsque l’on essaye d’ajouter un atelier sur le serveur scenari j’ai un message d’erreur « Création de l’atelier impossible, Suppression de l’atelier ».

De plus lorsque l’on essaye d’ajouter des items dans un atelier existant le bouton créer est carrément grisé.

Au niveau des logs j’ai ceci

1— FatalError : Mon Sep 12 04:20:05 CDT 2016 - admin (http-8080-2) —
Database exception occured after index commit. Database MUST be rebuilded.

2— Exception : Mon Sep 12 04:20:05 CDT 2016 - admin (http-8080-2) —
eu.scenari.commons.util.lang.ScException
_ at eu.scenari.commons.log.LogMgr.newException(LogMgr.java:385)_
_ at eu.scenari.commons.log.LogMgr.publishException(LogMgr.java:423)_
_ at eu.scenari.orient.manager.index.impl.IndexMonoRidDbMgr.onAfterTxRollback(IndexMonoRidDbMgr.java:140)_
_ at eu.scenari.orient.engine.DatabaseStructTx.runRollback(DatabaseStructTx.java:422)_
_ at eu.scenari.orient.engine.DatabaseStructTx.runCommit(DatabaseStructTx.java:389)_
_ at eu.scenari.orient.engine.DatabaseStructTx.commit(DatabaseStructTx.java:294)_
_ at eu.scenari.orient.engine.DatabaseStructTx.commit(DatabaseStructTx.java:101)_
_ at eu.scenari.wspodb.wsp.OdbWspProvider.createWsp(OdbWspProvider.java:272)_
_ at eu.scenari.wsp.service.adminwsp.SvcAdminWspDialog.xExecuteDialog(SvcAdminWspDialog.java:407)_
_ at eu.scenari.core.dialog.DialogBase.executeDialog(DialogBase.java:90)_
_ at eu.scenari.core.dialog.DialogBase.executeDialog(DialogBase.java:93)_
_ at eu.scenari.core.execframe.httpservlet.servlets.ServletService.service(ServletService.java:154)_
_ at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)_
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)_
_ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)_
_ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)_
_ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)_
_ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)_
_ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)_
_ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)_
_ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)_
_ at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)_
_ at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)_
_ at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)_
_ at java.lang.Thread.run(Thread.java:745)_

Je suppose qu’il faut que je ré-indexe la base de donnée, mais je ne sait par comment faire.

Quelqu’un aurait-il une idée?

Cordialement.

Bonjour,

Vous pouvez lancer un rebuild des index via l’action :

            [urlDeLaWebApp]/s/chain/u/adminOdb?cdaction=Rebuild

Cdt

Antoine

Kelis

Ps : très surprenant de tomber sur ce problème, qu’on n’a jamais rencontré encore. Vous être sur une version uptodate de la 4.1 ? Un évènement antérieur a pu provoquer cela (en amont de ce log, il n’y a rien d’anormal de remonté) ?

Merci pour la commande, hélas ça n’a pas fonctionné, dans mon navigateur j’ai le message d’erreur suivant

com.orientechnologies.common.io.OIOException: You cannot access outside the file size (426 bytes). You have requested portion -412–408 bytes. File: File: index.0.oda os-size=1049600, stored=1048576, filled=426, max=524288000
_ at com.orientechnologies.orient.core.storage.fs.OAbstractFile.checkRegions(OAbstractFile.java:360)_
_ at com.orientechnologies.orient.core.storage.fs.OFileMMap.readInt(OFileMMap.java:205)_
_ at com.orientechnologies.orient.core.storage.impl.local.ODataLocal.moveRecord(ODataLocal.java:606)_
_ at com.orientechnologies.orient.core.storage.impl.local.ODataLocal.defragHole(ODataLocal.java:545)_
_ at com.orientechnologies.orient.core.storage.impl.local.ODataLocal.createHole(ODataLocal.java:456)_
_ at com.orientechnologies.orient.core.storage.impl.local.ODataLocal.deleteRecord(ODataLocal.java:370)_
_ at com.orientechnologies.orient.core.storage.impl.local.OClusterLocal.truncate(OClusterLocal.java:163)_
_ at eu.scenari.orient.tools.rebuild.Rebuild$1.call(Rebuild.java:194)_
_ at eu.scenari.orient.tools.rebuild.Rebuild$1.call(Rebuild.java:189)_
_ at com.orientechnologies.orient.core.storage.OStorageAbstract.callInLock(OStorageAbstract.java:167)_
_ at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract.callInLock(ODatabaseWrapperAbstract.java:310)_
_ at eu.scenari.orient.tools.rebuild.Rebuild.call(Rebuild.java:189)_
_ at eu.scenari.wspodb.service.adminodb.SvcAdminOdbDialog.xExecuteDialog(SvcAdminOdbDialog.java:266)_
_ at eu.scenari.core.dialog.DialogBase.executeDialog(DialogBase.java:90)_
_ at eu.scenari.core.execframe.httpservlet.servlets.ServletService.service(ServletService.java:154)_
_ at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)_
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)_
_ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)_
_ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)_
_ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)_
_ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)_
_ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)_
_ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)_
_ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)_
_ at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)_
_ at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)_
_ at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)_
_ at java.lang.Thread.run(Thread.java:745)_

J’ai la même chose dans les logs.

A priori le problème est survenu à la suite du remplissage de la partition contenant les données scenari sur le serveur.

Nous avons agrandi cette dernière et le problème est apparu peu après.

Bonjour,

Votre base est corrompue.

Effectivement, un « disque full » est de nature à compromettre la base de données (l’évènement peut arriver lors de n’importe quelle sérialisation de donnée sur le disque).

Il vous faut donc repartir d’un backup.

Cordialement,

Antoine

Kelis

Je vais faire ça, merci de m’avoir consacré du temps.

Cordialement.