Project

General

Profile

Actions

Bug #13295

open

Отмена переиспользования с применением Ctrl в Requality Explorer приводит к deadlock

Added by Denis Kildishev about 2 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
10/29/2024
Due date:
% Done:

100%

Estimated time:
Detected in build:
1.4.885v2
Platform:
Published in build:
1.4.888

Description

Если переиспользовать требование с потомками при помощи зажатого Ctrl и переноса нужного требования в новое место а затем отменить процедуру - происходит блокировка. Привожу лог по потокам
Thread dump at 0:05.680.640

  • Thread group "main":

    Thread "Worker-30: Reaction after creation on 6f12b5ed-b97c-46ee-97ac-4db3166eee4e":
    at jdk.internal.misc.Unsafe.park(boolean, long)
    at java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 211)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node, int, boolean, boolean, boolean, long) (line: 715)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(int) (line: 1027)
    at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock() (line: 738)
    at com.unitesk.requality.eclipse.core.ResourceStorage.readLock(java.util.UUID) (line: 730)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getNodeId(java.util.UUID) (line: 219)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getFile(java.util.UUID) (line: 1456)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getChildrenFolder(java.util.UUID, org.eclipse.core.runtime.IProgressMonitor) (line: 665)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getFile(java.util.UUID, java.util.UUID, java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor) (line: 651)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getFile(java.util.UUID) (line: 1459)
    at com.unitesk.requality.eclipse.core.ResourceStorage.getChildrenFolder(java.util.UUID, org.eclipse.core.runtime.IProgressMonitor) (line: 665)
    at com.unitesk.requality.eclipse.core.ResourceStorage$1.run(org.eclipse.core.runtime.IProgressMonitor) (line: 818)
    at org.eclipse.core.internal.resources.Workspace.run(org.eclipse.core.runtime.ICoreRunnable, org.eclipse.core.runtime.jobs.ISchedulingRule, int, org.eclipse.core.runtime.IProgressMonitor) (line: 2380)
    at org.eclipse.core.internal.resources.Workspace.run(org.eclipse.core.resources.IWorkspaceRunnable, org.eclipse.core.runtime.jobs.ISchedulingRule, int, org.eclipse.core.runtime.IProgressMonitor) (line: 2405)
    at com.unitesk.requality.eclipse.core.ResourceStorage.run(org.eclipse.core.resources.IWorkspaceRunnable, org.eclipse.core.runtime.jobs.ISchedulingRule) (line: 1835)
    at com.unitesk.requality.eclipse.core.ResourceStorage.runWithoutDeltaProc(org.eclipse.core.resources.IWorkspaceRunnable, org.eclipse.core.runtime.jobs.ISchedulingRule) (line: 1863)
    at com.unitesk.requality.eclipse.core.ResourceStorage.createStorageNode(com.unitesk.requality.core.model.NodeDescSet, java.lang.String, byte) (line: 908)
    at com.unitesk.requality.core.storage.AbstractTreeStorage.createNode(com.unitesk.requality.core.model.NodeDescSet, java.lang.String, byte) (line: 222)
    at com.unitesk.requality.core.instancer.TreeInstancer.createStorageNode(com.unitesk.requality.core.model.NodeDescSet, java.lang.String, byte) (line: 542)
    at com.unitesk.requality.core.storage.AbstractTreeStorage.createNode(com.unitesk.requality.core.model.NodeDescSet, java.lang.String, byte) (line: 222)
    at com.unitesk.requality.core.instancer.TreeInstancer.cloneUUID(com.unitesk.requality.core.model.TreeDB, java.util.UUID, com.unitesk.requality.core.model.TreeNode, java.util.UUID, java.lang.String, java.util.Collection, java.util.Map) (line: 352)
    at com.unitesk.requality.nodetype.VirtualNode.updateChildrenOfClone(com.unitesk.requality.core.model.TreeNode) (line: 832)
    at com.unitesk.requality.core.model.TreeDB.updateNodeChildren(com.unitesk.requality.core.model.TreeNode, java.util.Collection, boolean) (line: 3705)
    at com.unitesk.requality.core.model.TreeDB.createFromStorage(java.util.UUID, java.lang.String, java.util.Map) (line: 3756)
    at com.unitesk.requality.core.model.NodeCache.loadNode(java.util.UUID, java.lang.String, java.util.Map, boolean) (line: 178)
    at com.unitesk.requality.core.model.TreeDB.getNode(com.unitesk.requality.core.model.NodeDesc, int, boolean) (line: 1400)
    at com.unitesk.requality.core.model.TreeDB$4.created(com.unitesk.requality.core.model.NodeDescSet, java.lang.String, byte) (line: 2611)
    at com.unitesk.requality.eclipse.core.ResourceStorage$2.run(org.eclipse.core.runtime.IProgressMonitor) (line: 921)

    Thread "main":
    at com.unitesk.requality.eclipse.core.ResourceStorage.runWithoutDeltaProc(org.eclipse.core.resources.IWorkspaceRunnable, org.eclipse.core.runtime.jobs.ISchedulingRule) (line: 1863)
    at com.unitesk.requality.eclipse.core.ResourceStorage.saveStorageAttributes(java.util.UUID, com.unitesk.requality.core.operation.ChangesSet, byte) (line: 1444)
    at com.unitesk.requality.core.storage.AbstractTreeStorage.saveAttributes(java.util.UUID, com.unitesk.requality.core.operation.ChangesSet, byte) (line: 258)
    at com.unitesk.requality.core.model.TreeDB.saveAttributes(com.unitesk.requality.core.model.TreeNode, com.unitesk.requality.core.operation.ChangesSet, boolean, byte) (line: 1560)
    at com.unitesk.requality.core.model.TreeDB.commitAttributes(com.unitesk.requality.core.model.TreeNode, com.unitesk.requality.core.operation.ChangesSet, boolean, boolean, byte) (line: 1534)
    at com.unitesk.requality.core.attribute.AttributeStorage.commitChanges(com.unitesk.requality.core.operation.ChangesSet, boolean, byte) (line: 1969)
    at com.unitesk.requality.core.model.TreeDB$4.changeAttributes(java.util.UUID, com.unitesk.requality.core.operation.ChangesSet, byte) (line: 2881)
    at com.unitesk.requality.core.transaction.SaveAttributes.apply(com.unitesk.requality.core.storage.ITreeStorage, com.unitesk.requality.core.storage.IStorageDeltaListener) (line: 58)
    at com.unitesk.requality.core.transaction.TransactionStorage.applyOperation(com.unitesk.requality.core.transaction.TreeOperation, com.unitesk.requality.core.storage.ITreeStorage) (line: 842)
    at com.unitesk.requality.core.transaction.TransactionStorage.apply(com.unitesk.requality.core.storage.ITreeStorage, boolean) (line: 795)
    at com.unitesk.requality.core.transaction.TransactionStorage.apply(boolean) (line: 753)
    at com.unitesk.requality.core.model.TreeDB.commit(boolean) (line: 1755)
    at com.unitesk.requality.core.model.TreeDB$3.operationEnded(java.lang.String) (line: 2179)
    at com.unitesk.requality.core.storage.AbstractTreeStorage.endOperation(java.lang.String) (line: 368)
    at com.unitesk.requality.eclipse.operations.TreeDBOperation.undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) (line: 72)

Actions #1

Updated by Denis Kildishev about 2 months ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

fixed on git version r2012571dbf8b8e73a6681aef4bb572a6f3db8081

Actions #2

Updated by Denis Kildishev about 2 months ago

  • Published in build set to 1.4.888
Actions

Also available in: Atom PDF