Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #11109 (closed)

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

BUG: Move of plate causes stacktrace

Reported by: pwalczysko Owned by: jamoore
Priority: blocker Milestone: 5.0.0-beta1
Component: Services Version: n.a.
Keywords: n.a. Cc: ux@…, fs@…, mtbcarroll
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: FS demo 4.4

Description

During stress testing on gretzky, 12-06-13.
user-4, read-write-1.

Attempted to move a plate, /Volumes/ome/data_repo/from_skyking/flex/achim/003003000.flex. The plate was inside a screen. (The plate was originally moved from read-only-1 group into read-write group in Insight and during the move the screen was created.) Now trying to move it back into read-only-1, in Web. Did not target the move to read-only-1 in Web into any screen in the destination group (read-only-1).

STEP ERR step: 0, stacktrace: ome.services.graphs.GraphConstraintException(message=ScreenPlateLink:1 improperly links to 1 objects
at ome.services.chgrp.ChgrpStep.validate(ChgrpStep.java:163)
at omero.cmd.graphs.ChgrpI.finish(ChgrpI.java:188)
at omero.cmd.basic.DoAllI.finish(DoAllI.java:330)
at omero.cmd.HandleI.steps(HandleI.java:466)
at omero.cmd.HandleI$1.doWork(HandleI.java:365)
at omero.cmd.HandleI$1.doWork(HandleI.java:361)
at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:576)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at ome.security.basic.EventHandler.invoke(EventHandler.java:154)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:241)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:116)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy66.doWork(Unknown Source)
at ome.services.util.Executor$Impl.execute(Executor.java:457)
at omero.cmd.HandleI.run(HandleI.java:359)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at ome.services.util.Executor$Impl$1.call(Executor.java:498)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
, message: , GraphConstraintException: true, id: 11

Change History (10)

comment:1 Changed 6 years ago by pwalczysko

Further investigation: Tried to perform the move described above in Insight (after it failed in Web as described). The result was a red cross in Activities, Unable to transfer data message. Nothing at all in Insight log.

Importantly, Move in Web of plates in general DOES work. Just tried a non-targeted move between read-only-1 and read-write-1 back and forth - went fine - all moves untargeted.

Last edited 6 years ago by pwalczysko (previous) (diff)

comment:2 Changed 6 years ago by jamoore

  • Component changed from Web to Services
  • Owner changed from web-team@… to jamoore
  • Priority changed from critical to blocker
  • Remaining Time set to 0.25
  • Status changed from new to accepted
  • Summary changed from BUG: Move of plate causes stacktrace in Web to BUG: Move of plate causes stacktrace

comment:3 Changed 6 years ago by pwalczysko

After further investigation.
The bug appears under following conditions only:

  • have a plate within a screen
  • try to move it into another group & do not target the move (do not put the plate into any screen in the target group)

Cases which do not produce a bug:

have a plate in a screen

  • move it to another group, targeting it into a screen

have a plate outwith any screen (orphaned)

  • move it to another group and do not target the move - works fine
  • move it to another group and do target the move - works fine

comment:4 Changed 6 years ago by jmoore <josh@…>

(In [8ea4cec7279adbffb14b8d775afa68e8741e1a32/ome.git] on branch develop) Passing spw chgrp test (See #11109)

comment:5 Changed 6 years ago by jamoore

  • Remaining Time changed from 0.25 to 0
  • Resolution set to fixed
  • Status changed from accepted to closed

comment:6 Changed 6 years ago by jamoore

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:7 Changed 6 years ago by jamoore

  • Resolution set to fixed
  • Status changed from reopened to closed

Re-fixed. Continuing conversation on PR.

comment:8 Changed 6 years ago by jmoore <josh@…>

(In [724f866198bb6f7b099a716b6c07263829a4e3cc/ome.git] on branch develop) Refactor ChgrpStep?.validate() to GraphStep? (Fix #11109, #11118)

The opts available to ChgrpStep?.validate were invalid since
GraphState? was not maintaining a stack of opts as it descended
the tree, therefore FORCE was not being properly passed to the
likes of DatasetImageLink? et al.

Now all GraphSteps? have the opportunity to take part in graph
validation, though it may take some work to make Deletion (not
itself a Step) behave properly.

comment:9 Changed 6 years ago by jmoore <josh@…>

(In [0a3b88c994809aabd5dd4cb4deeed119fb84d262/ome.git] on branch develop) Make test fail (See #11109)

comment:10 Changed 6 years ago by jmoore <josh@…>

(In [5852b2ac3ee070a13489230987fd75d55e4a768f/ome.git] on branch develop) Reset savapoints on validation (See #11109)

The FORCE tag on links was still being skipped
due to previously invalidated savepoints.

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.80978 sec.)

We're Hiring!