Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
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 #8283 (closed)

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

Bug: HCS Move group

Reported by: saloynton Owned by: jamoore
Priority: major Milestone: OMERO-4.4
Component: Web Version: n.a.
Keywords: n.a. Cc: saloynton, jburel, atarkowska
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2012-06-05 (16)

Description

Using move group for HCS does not currently transfer the screen over to the selected group.

This was moving into the test owner group under your own account Will. The actual screens have been moved from the swedlow group but have not been visible in the test owner group on insight.

Attachments (1)

testImportPlateMultiplePlateAcquisitions7696746287356613836.ome (80.3 KB) - added by wmoore 12 years ago.
Chgrp on this Plate causes error above

Download all attachments as: .zip

Change History (26)

comment:1 Changed 12 years ago by wmoore

  • Sprint set to 2012-04-24 (13)

comment:2 Changed 12 years ago by wmoore

  • Status changed from new to accepted

comment:3 Changed 12 years ago by wmoore

  • Cc jburel added

Web chgrp now supports 'Screen' and 'Plate' in Ola's sprint13-web-backlog branch: https://github.com/aleksandra-tarkowska/openmicroscopy/commit/fae44b8a57b630adce33407bf4692289276008eb

However, chgrp seems not to work on Plates with Plate-Acquisitions.

comment:4 Changed 12 years ago by wmoore

  • Owner changed from wmoore to atarkowska

I have fixed the issue of not being able to remove Screens from Plates. This is in sprint13-web-backlog branch: https://github.com/aleksandra-tarkowska/openmicroscopy/commit/32ae85458ea62ac5af58aaf13d50ebae3032c90e

The main bug with moving and display of plate in the tree, is that when a Plate moved (from orphaned) and refreshed, it loads it's subtree with this url

http://localhost:8000/webclient/load_data/screen/101/plate/354/?view=tree

And this code is used in load_data ('tree' is ignored).

        elif kw.has_key('plate'):
            fields = manager.plate.getNumberOfFields(kw.get('acquisition', None))
            if fields is not None:
                form_well_index = WellIndexForm(initial={'index':index, 'range':fields})
                if index == 0:
                    index = fields[0]
            template = "webclient/data/plate.html"

comment:5 Changed 12 years ago by atarkowska

  • Owner atarkowska deleted
  • Status changed from accepted to new

comment:6 Changed 12 years ago by atarkowska

  • Owner set to atarkowska

comment:7 Changed 12 years ago by atarkowska

  • Cc atarkowska added
  • Owner changed from atarkowska to wmoore

comment:8 Changed 12 years ago by jburel

  • Sprint changed from 2012-04-24 (13) to 2012-05-08 (14)

Moved from sprint 2012-04-24 (13)

comment:9 Changed 12 years ago by jburel

  • Sprint changed from 2012-05-08 (14) to 2012-05-22 (15)

Moved from sprint 2012-05-08 (14)

comment:10 Changed 12 years ago by Will Moore <will@…>

(In [fae44b8a57b630adce33407bf4692289276008eb/ome.git] on branch develop) chgrp support of 'Screen' and 'Plate'. See #8283

comment:11 Changed 12 years ago by Will Moore <will@…>

(In [32ae85458ea62ac5af58aaf13d50ebae3032c90e/ome.git] on branch develop) 'Remove' Plates from Screens in jsTree. See #8283

comment:12 Changed 12 years ago by wmoore

Trying to move Plate to different group using:

    def chgrpObject(self, graph_spec, obj_id, group_id):
        """
        Change the Group for a specified object using queue.

        @param graph_spec:      String to indicate the object type or graph
                                specification. Examples include:
                                 * '/Image'
                                 * '/Project'   # will move contents too.
                                 * NB: Also supports 'Image' etc for convenience
        @param obj_id:          ID for the object to move.
        @param group_id:        The group to move the data to.
        """

        if not graph_spec.startswith('/'):
            graph_spec = '/%s' % graph_spec
            logger.debug('chgrp Received object type, using "%s"' % graph_spec)

        chgrp = omero.cmd.Chgrp(type=graph_spec, id=obj_id, options=None, grp=group_id)

        prx = self.c.sf.submit(chgrp)
        return prx

Got:

2012-05-22 11:25:22,744 ERROR [                omeroweb.webclient.views] (proc.84154) activities:1994 chgrp failed with: step: 456, stacktrace: ome.services.graphs.GraphException(message=Release at depth 0!
        at ome.services.graphs.GraphState.rollback(GraphState.java:486)
        at ome.services.graphs.GraphStep.rollback(GraphStep.java:318)
        at ome.services.graphs.GraphState.handleException(GraphState.java:352)
        at ome.services.graphs.GraphState.execute(GraphState.java:312)
        at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:145)
        at omero.cmd.HandleI.steps(HandleI.java:342)
        at omero.cmd.HandleI.doRun(HandleI.java:320)
        at omero.cmd.HandleI$1.doWork(HandleI.java:272)
        at omero.cmd.HandleI$1.doWork(HandleI.java:268)
        at sun.reflect.GeneratedMethodAccessor243.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:498)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at ome.security.basic.EventHandler.invoke(EventHandler.java:165)
        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:236)
        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 $Proxy65.doWork(Unknown Source)
        at ome.services.util.Executor$Impl.execute(Executor.java:402)
        at omero.cmd.HandleI.run(HandleI.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at ome.services.util.Executor$Impl$1.call(Executor.java:427)
        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:680)
, message: , id: 1

comment:13 Changed 12 years ago by wmoore

  • Owner changed from wmoore to jmoore

If I try to chgrp a Plate that has no PlateAcquisitions?, I get

2012-05-22 11:36:13,721 ERROR [                omeroweb.webclient.views] (proc.84154) activities:1994 chgrp failed with: step: 44, stacktrace: java.lang.ClassCastException: org.hibernate.hql.ast.tree.IdentNode cannot be cast to org.
hibernate.hql.ast.tree.DotNode
        at org.hibernate.hql.ast.tree.AssignmentSpecification.<init>(AssignmentSpecification.java:72)
        at org.hibernate.hql.ast.HqlSqlWalker.evaluateAssignment(HqlSqlWalker.java:1072)
        at org.hibernate.hql.ast.HqlSqlWalker.evaluateAssignment(HqlSqlWalker.java:1066)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.assignment(HqlSqlBaseWalker.java:1092)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.setClause(HqlSqlBaseWalker.java:772)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.updateStatement(HqlSqlBaseWalker.java:367)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:245)
        at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
        at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
        at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)

comment:14 Changed 12 years ago by jburel

  • Sprint changed from 2012-05-22 (15) to 2012-06-05 (16)

Moved from sprint 2012-05-22 (15)

comment:15 Changed 12 years ago by jmoore

  • Remaining Time set to 0.5
  • Status changed from new to accepted

comment:16 Changed 12 years ago by jmoore

  • Owner changed from jmoore to wmoore
  • Remaining Time changed from 0.5 to 0.25

I think Will has said that we don't have a test for this. After all of my work on chgrp in #8979, can someone try to reproduce this please? Passing to Will, but I don't know who would be optimal.

comment:17 Changed 12 years ago by jmoore

(btw, Jean-Marie does have a Plate-with-Plate-Acquisition test in OmeroJava/test/integration/chgrp/HierarchyMoveTest.java which is passing

comment:18 Changed 12 years ago by wmoore

I just tried again in Web (latest sprint16 build just now) and Insight. Moving a Plate (No PlateAcquisition? worked OK). Moving a Plate with Acquisitions gave me this (I'll attach the ome.xml file for this:

STEP ERR step: 454, stacktrace: ome.services.graphs.GraphException(message=Release at depth 0!
at ome.services.graphs.GraphState.rollback(GraphState.java:486)
at ome.services.graphs.GraphStep.rollback(GraphStep.java:318)
at ome.services.graphs.GraphState.handleException(GraphState.java:352)
at ome.services.graphs.GraphState.execute(GraphState.java:312)
at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:154)
at omero.cmd.HandleI.steps(HandleI.java:439)
at omero.cmd.HandleI.doRun(HandleI.java:414)
at omero.cmd.HandleI$1.doWork(HandleI.java:361)
at omero.cmd.HandleI$1.doWork(HandleI.java:357)
at sun.reflect.GeneratedMethodAccessor253.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:502)
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 $Proxy65.doWork(Unknown Source)
at ome.services.util.Executor$Impl.execute(Executor.java:406)
at omero.cmd.HandleI.run(HandleI.java:355)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at ome.services.util.Executor$Impl$1.call(Executor.java:431)
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:680)
, message: , id: 2

Changed 12 years ago by wmoore

Chgrp on this Plate causes error above

comment:19 Changed 12 years ago by jmoore

Looks like this is not as bad as it looks, but the exception coming back should probably be a different one:

2012-06-04 10:57:28,307 DEBUG [      ome.services.chgrp.ChgrpValidation] (2-thread-5) 1<==select count(*) from ome.model.acquisition.Filter target, ome.model.acquisition.LightPathEmissionFilterLink source where target.id = source.child.id and source.id = ? and not (target.details.group.id = ?   or target.details.group.id = ?), i
d=7, grp=2, userGroup=12012-06-04 10:57:28,307 INFO  [                 org.perf4j.TimingLogger] (2-thread-5) start[1338800248305] time[2] tag[omero.chgrp.validation.ome.model.acquisition.F
ilter.child]2012-06-04 10:57:28,308 DEBUG [      ome.services.chgrp.ChgrpValidation] (2-thread-5) 0<==select count(*) from ome.model.acquisition.LightPath target, ome.model.acquisition.LightPathEmissionFilterLink source where target.id = source.parent.id and source.id = ? and not (target.details.group.id = ?   or target.details.group.id = ?
), id=7, grp=2, userGroup=12012-06-04 10:57:28,308 INFO  [                 org.perf4j.TimingLogger] (2-thread-5) start[1338800248307] time[1] tag[omero.chgrp.validation.ome.model.acquisition.L
ightPath.parent]
2012-06-04 10:57:28,308 DEBUG [          ome.services.graphs.GraphState] (2-thread-5) Rolled back savepoint ad8813d9580e46d2b48fc30af1968db6 with 0 ids: new depth=1
2012-06-04 10:57:28,309 INFO  [       omero.cmd.graphs.ChgrpI.@26b0f62e] (2-thread-5) Cancelled
2012-06-04 10:57:28,309 INFO  [                 org.perf4j.TimingLogger] (2-thread-5) start[1338800248304] time[5] tag[omero.request.step.454]
2012-06-04 10:57:28,309 INFO  [                 org.perf4j.TimingLogger] (2-thread-5) start[1338800246773] time[1536] tag[omero.request]
2012-06-04 10:57:28,310 INFO  [                 org.perf4j.TimingLogger] (2-thread-5) start[1338800246749] time[1561] tag[omero.call.exception]
2012-06-04 10:57:28,310 INFO  [        ome.services.util.ServiceHandler] (2-thread-5)  Excp:    omero.cmd.HandleI$Cancel: STEP ERR

i.e. a Filter is still not being handled properly.

comment:20 Changed 12 years ago by wmoore

  • Owner changed from wmoore to jmoore

Josh - Let me know if you need a test for this... I would probably do it by adding the test file below to the code-base, so that it could be imported in the test.

comment:21 Changed 12 years ago by jmoore

  • Remaining Time changed from 0.25 to 0.1

Sorry, I thought I had marked this "accepted" this morning. I've fixed the issue and have been testing manually with your file. How was it created? Do we have others like it in the system already?

Note: this is related to #2857

comment:22 Changed 12 years ago by jmoore

Just pushed a number of commits, but I'll leave this open until we decide on the testing strategy.

2fae963 - Merge branch '8283-chgrp-fixes' into sprint16-bugfixes (2 minutes ago) <jmoore>
b4afd62 - (8283-chgrp-fixes) Handle linked LightPath Filters in graphs (See #2857, #8283) (17 hours ago) <jmoore>
844e5ee - Better handling of closed savepoints in GraphStep (Fix #8283) (17 hours ago) <jmoore>
33a396c - Handle LockTimeout on graphspeclist in chgrp.py (17 hours ago) <jmoore>
beb20d1 - Graph clean up and logging (17 hours ago) <jmoore>
980cc5c - Add log settings for graphs to log4j.xml (18 hours ago) <jmoore>
edaf8b5 - Fix and improve chgrp.py's use of Command API (22 hours ago) <jmoore>
f423439 - Remove redundant rsp fields in commands (23 hours ago) <jmoore>

comment:23 Changed 12 years ago by Will Moore <will@…>

(In [d8d2e141d596be4e5fc29811f4925b048028b148/ome.git] on branch develop) Improve display of chgrp errors in Activities panel. See #8283

comment:24 Changed 12 years ago by jmoore <josh@…>

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

(In [844e5eef974317ff037cd6bdc22773a30e1a068a/ome.git] on branch develop) Better handling of closed savepoints in GraphStep? (Fix #8283)

Previously we had no case apparently where an invalidated
savepoint was being invalidated again. This case is now
handled by GraphStep?.sanityCheck.

comment:25 Changed 12 years ago by jmoore <josh@…>

(In [b4afd6235823394a6f1806153d77c2993a6f1895/ome.git] on branch develop) Handle linked LightPath? Filters in graphs (See #2857, #8283)

Unsure why these were commented out, but they were the
underlying problem which made the odd exception caused
in #8283 appear.

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.71271 sec.)

We're Hiring!