Task #11109 (closed)
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
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.
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.