Skip to content

State Model Analysis mode does not handle concurrent ODatabaseSession #432

@ferpasri

Description

@ferpasri

Description

The current OrientDB implementation in the AnalysisManager does not support or handle concurrent invocations to open the same database file more than once.

This may provoke the following type of exception:

java.lang.IllegalStateException: File is allowed to be opened only once.
File is already opened under:
----------------------------------------------------------------------------------------------------
        java.base/java.lang.Thread.getStackTrace(Thread.java:1606)
        com.orientechnologies.orient.core.storage.fs.OFileClassic.acquireExclusiveAccess(OFileClassic.java:564)
        com.orientechnologies.orient.core.storage.fs.OFileClassic.open(OFileClassic.java:501)
        com.orientechnologies.orient.core.storage.cache.local.OWOWCache.readNameIdMapV2(OWOWCache.java:1900)
        com.orientechnologies.orient.core.storage.cache.local.OWOWCache.initNameIdMapping(OWOWCache.java:1791)
        com.orientechnologies.orient.core.storage.cache.local.OWOWCache.loadRegisteredFiles(OWOWCache.java:481)
        com.orientechnologies.orient.core.storage.disk.OLocalPaginatedStorage.initWalAndDiskCache(OLocalPaginatedStorage.java:632)
        com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.open(OAbstractPaginatedStorage.java:375)
        com.orientechnologies.orient.core.db.OrientDBEmbedded.open(OrientDBEmbedded.java:296)
        com.orientechnologies.orient.core.db.OrientDB.open(OrientDB.java:205)
        com.orientechnologies.orient.core.db.OrientDB.open(OrientDB.java:190)
        org.testar.statemodel.analysis.AnalysisManager.fetchTestSequence(AnalysisManager.java:260)
        org.testar.statemodel.analysis.StateModelServlet.doPost(StateModelServlet.java:90)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

Example to reproduce:

  1. Infer a State Model with 2 or 3 sequences
  2. Perform quick click actions in the view report buttons to provoke this exception

Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions