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

Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

Bug: several tag changes cause server to hang

Reported by: jamoore Owned by: jamoore
Priority: minor Milestone: OMERO-Beta4.3
Component: Services Version: n.a.
Keywords: n.a. Cc:
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2011-02-10 (5)

Description

This may be due to local changes and needs to be verified against a clean state.

Attachments (2)

hangs_pg.py (976 bytes) - added by jmoore 13 years ago.
lots-of-selects.txt (387.4 KB) - added by jmoore 13 years ago.
Many selects caused by one saveAndReturnObject

Download all attachments as: .zip

Change History (11)

Changed 13 years ago by jmoore

comment:1 Changed 13 years ago by jmoore

  • Owner set to jmoore
  • Remaining Time set to 0.1
  • Sprint set to 2011-02-10 (5)

Moving to (5) for "bug" cleanup. (Some minimal testing done. May be a non-issue)

comment:2 Changed 13 years ago by jmoore

  • Status changed from new to accepted

comment:3 Changed 13 years ago by jmoore

On the first non-empty save of the tag during the query:

 1346902 | OMERO4.2__0 |   82383 |    16384 | moore   | select groupexper0_.id as id22_39_, groupexper0_.child as child22_39_, groupexper0_.external_id as external6_22_39_, groupexper0_.permissions as permissi2_22_39_, groupexper0_.owner as owner22_39_, groupexper0_.parent as parent22_39_, groupexper0_.version as version22_39_, experiment1_.id as id114_0_, experiment1_.external_id as external10_114_0_, experiment1_.permissions as permissi2_114_0_, experiment1_.email as email114_0_, experiment1_.firstName as firstName114_0_, experiment1_.institution as institut5_114_0_, experiment1_.lastName as lastName114_0_, experiment1_.middleName as middleName114_0_, experiment1_.omeName as omeName114_0_, experiment1_.version as version114_0_, annotation2_.parent as parent114_41_, annotation2_.id as id41_, annotation2_.id as id84_1_, annotation2_.child as child84_1_, annotation2_.creation_id as creation5_84_1_, annotation2_.external_id as external6_84_1_, annotation2_.group_id as group7_84_1_, annotation2_.owner_id as owner8_84_1_, annotation2_.permissions as permissi2_84_1_,

server hangs here:

"Blitz-0-Ice.ThreadPool.Server-1" prio=5 tid=103f73800 nid=0x13384c000 runnable [133843000]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:135)
	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:104)
	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
	at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:259)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1182)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
	- locked <111007a20> (a org.postgresql.core.v3.QueryExecutorImpl)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
	at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:63)
	at $Proxy55.executeQuery(Unknown Source)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1869)
	at org.hibernate.loader.Loader.doQuery(Loader.java:718)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1953)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3270)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1082)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:999)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:453)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:425)
	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:362)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:338)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:425)
	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:362)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:338)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:425)
	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:362)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:338)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:425)
	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:362)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:338)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:871)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:853)
	at org.hibernate.engine.CascadingAction$6.cascade(CascadingAction.java:279)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
	at org.hibernate.engine.Cascade.cascadeComponent(Cascade.java:313)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:215)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
	at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:630)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:490)
	at ome.security.basic.MergeEventListener.entityIsDetached(MergeEventListener.java:158)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:75)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:861)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:845)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:849)
	at ome.logic.UpdateImpl.internalMerge(UpdateImpl.java:273)
	at ome.logic.UpdateImpl$2.run(UpdateImpl.java:121)
	at ome.logic.UpdateImpl$2.run(UpdateImpl.java:118)
	at ome.logic.UpdateImpl.doAction(UpdateImpl.java:311)
	at ome.logic.UpdateImpl.doAction(UpdateImpl.java:302)
	at ome.logic.UpdateImpl.saveAndReturnObject(UpdateImpl.java:118)

comment:4 Changed 13 years ago by jmoore

Since groups, etc are being loaded, this may be related to #3929.

Changed 13 years ago by jmoore

Many selects caused by one saveAndReturnObject

comment:5 Changed 13 years ago by Josh <josh@…>

(In [282047255e083d3e7750d67accae44967175e330/ome.git]) Reduce unnecessary collection loading on save (See #3978)

comment:6 Changed 13 years ago by jmoore

  • Status changed from accepted to new

comment:7 Changed 13 years ago by jmoore

  • Status changed from new to assigned

This commit is somewhat dangerous, but certainly reduces the crazy annotation loading that was happening. We will have to keep an eye out for any weirdness.

comment:8 Changed 13 years ago by jmoore

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

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

(In [a5262e409884823a14a1ddf198150cbbe94244b1/ome.git] on branch dev_4_2) Reduce unnecessary collection loading on save (See #3978)

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

We're Hiring!