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 #9435 (closed)

Opened 12 years ago

Closed 12 years ago

Last modified 10 years ago

Bug: Web change group for screen

Reported by: saloynton Owned by: jamoore
Priority: major Milestone: OMERO-4.4.4
Component: Web Version: n.a.
Keywords: n.a. Cc: web-team@…, ux@…, jburel, jamoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2012-09-25 (5)

Description

When moving a screen on the web the following exception occurred.

I was logged in as user-3 and moving a screen from read-annotate to a read-only group.

STEP ERR step: 335, stacktrace: ome.services.graphs.GraphException(message=Reagent:2 improperly linked by 4 objects
at ome.services.chgrp.ChgrpStep.action(ChgrpStep.java:135)
at ome.services.graphs.GraphState.execute(GraphState.java:332)
at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:151)
at omero.cmd.basic.DoAllI$X.step(DoAllI.java:100)
at omero.cmd.basic.DoAllI.step(DoAllI.java:301)
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.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:508)
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:437)
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: , id: 1

Attachments (1)

Screen shot 2012-08-03 at 11.13.43.png (25.9 KB) - added by saloynton 12 years ago.

Download all attachments as: .zip

Change History (18)

comment:1 Changed 12 years ago by wmoore

  • Owner changed from wmoore to jmoore

Scott, can you remember which Screen this was?
I can't find it - so can't reproduce that BUG. I think this will be a ticket for Josh.

Josh - I actually have a different error for Chgrp on screen.
If I manually create a plate (using my Dataset_To_Plate script) using images that are not similar (different sizes, channels etc) then I get a plate that fails to chgrp.
This is kinda edge case, so not very high priority.

bad-step 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)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:98)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1762)
at sun.reflect.GeneratedMethodAccessor244.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.tools.hibernate.SessionFactory.invoke(SessionFactory.java:102)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy66.createQuery(Unknown Source)
at ome.tools.hibernate.QueryBuilder.__query(QueryBuilder.java:315)
at ome.tools.hibernate.QueryBuilder.query(QueryBuilder.java:307)
at ome.services.chgrp.ChgrpStep.action(ChgrpStep.java:85)
at ome.services.graphs.GraphState.execute(GraphState.java:332)
at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:151)
at omero.cmd.basic.DoAllI$X.step(DoAllI.java:100)
at omero.cmd.basic.DoAllI.step(DoAllI.java:301)
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.GeneratedMethodAccessor262.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:508)
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:437)
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: org.hibernate.hql.ast.tree.IdentNode cannot be cast to org.hibernate.hql.ast.tree.DotNode, step: 215

comment:2 Changed 12 years ago by saloynton

I have attached a screenshot Will to show where the screen was it was the top screen number 2 - I was trying to load 2010-02-23 12:50:30 - 2010-02-23 12:51:29.

Changed 12 years ago by saloynton

comment:3 Changed 12 years ago by jmoore

  • Cc jmoore added
  • Owner changed from jmoore to wmoore

This looks like two very different issues. I'll need some help teasing them apart. (Perhaps even 2 tickets).

  • The first issue is "Reagent:2 improperly linked by 4". Where did this screen come from? I'll need to look at the linkages of the reagents to see if the chgrp method needs to allow this, or if something funky has in fact been done to the data.
  • The second issue is "ava.lang.ClassCastException?: org.hibernate.hql.ast.tree.IdentNode? cannot be cast to org.hibernate.hql.ast.tree.DotNode?". This looks much worse. Is it reproducible? Can we make a test for this?

Passing off to Will to help me track some of this down.

comment:5 Changed 12 years ago by jmoore

so do we focus on the first stack trace in this ticket?

comment:7 Changed 12 years ago by jmoore

  • Owner changed from wmoore to jmoore
  • Remaining Time set to 1.0
  • Sprint set to 2012-09-11 (4)

I'll investigate Monday.

comment:8 Changed 12 years ago by jmoore

Investigation results:

  • This looks to be the same issue as #8283
  • Namely, that handling subclasses works poorly. Here the problem is specifically LightSource->Arc, etc.
  • There are a number of similar issues on the Hibernate Jira (HHH-2221, etc)
  • and there may be one transactional issue!: HHH-4745

comment:9 Changed 12 years ago by jmoore

I don't think it's going to help but there was one comment that the "from" in "update from" and "delete from" may not actually be optional, so I'm adding.

comment:10 Changed 12 years ago by jmoore

In addition to errors with temporary tables, I've now also seen:

omero.cmd.Chgrp /Project 51... failed: 'bad-step'
	message=could not execute update query
	stacktrace=org.hibernate.exception.GenericJDBCException: could not execute update query
...
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.postgresql.util.PSQLException: ERROR: out of shared memory
  Hint: You might need to increase max_locks_per_transaction.
  Where: SQL statement "SELECT pg_advisory_lock(1, Lid)"
PL/pgSQL function "ome_nextval" line 13 at PERFORM
PL/pgSQL function "ome_nextval" line 3 at RETURN
SQL statement "INSERT INTO eventlog (id, action, permissions, entityid, entitytype, event)
                 SELECT ome_nextval('seq_eventlog'), 'REINDEX', -52, entityid, entitytype, eid
                   FROM _updated_annotations"
PL/pgSQL function "annotation_update_event_trigger" line 96 at SQL statement
...
	at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:101)
	... 40 more

	step=6573

comment:11 Changed 12 years ago by jburel

  • Sprint changed from 2012-09-11 (4) to 2012-09-25 (5)

Moved from sprint 2012-09-11 (4)

comment:12 Changed 12 years ago by jmoore

  • Status changed from new to accepted

comment:13 Changed 12 years ago by jmoore

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

I haven't re-produced this issue with respect to screens specifically, but have solved another case of the ident/dotnode issue. That fix is available for QA testing under https://github.com/openmicroscopy/openmicroscopy/pull/354 Any other specific cases should be fixable with the solution there.

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

(In [5099dd88e4dca82377428b415f95eec7ef6451a8/ome.git] on branch develop) Use raw SQL from LightSourceGraphSpec? (See #9435)

The use of HQL for the light source inheritance hierarchy, which
spans multiple tables, is the cause of numerous issues. By using
SQL directly with the pre-loaded IDs it's possible to call chgrp.

Note: this does not yet work since ome.tools.hibernate.SessionFactory?
prevents use of raw SQL. By temporarily disabling that check, I was
able to test that this does work generally.

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

(In [a704d8cc409ad9fd943b5bcb12f2f82db1f424b7/ome.git] on branch develop) Fix and review all integration/chgrp tests (See #9435, #9496)

~22 tests were failing for various reasons. Here the changes
that were necessary:

  • Better handle a NPE in ChgrpI by raising "no-object"
  • Added calls to IAdmin.getEventContext to refresh group to fix tests that were failing with "non-member"
  • Set enabled=false to tests that were failling with "non-owner"
  • Changed one rw---- permissions to rwrw-- to match javadoc
  • Added "#9496" to all tests which seem to be failing on annotations or renderingdefs. These are still failing.

comment:17 Changed 10 years ago by mtbcarroll

HHH-2221 is fixed in 3.2.2.

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

We're Hiring!