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 #1614 (new)

Opened 11 years ago

Last modified 10 years ago

Raw File Store: concurrency problem

Reported by: jburel Owned by: jburel
Priority: blocker Milestone: Unscheduled
Component: Services Version: 4.1
Keywords: n.a. Cc: cxallan, dzmacdonald, jason, josh
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: n.a.

Description (last modified by jmoore)

As part of the publication workflow, we create figures (jpeg or png) that we link to an image (in that case) as a file annotation.
When the user click on the image, we load the file annotation, since it is a jpeg, we download the file to display the jpeg. Problem can be reproduced simply by attaching multiple jpg files to an image (see logs.zip attached.) It works if we have 1 or 2, after that, we keep on having the following error when doing

rawFileStore.setId(id)
Cannot set the file's id.
	at org.openmicroscopy.shoola.env.data.OMEROGateway.handleException(OMEROGateway.java:453)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:2748)
... see comments ...
	at IceInternal.Outgoing.throwUserException(Outgoing.java:442)
	at omero.api._RawFileStoreDelM.setFileId(_RawFileStoreDelM.java:138)
	at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:184)
	at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:156)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:2746)
	... 9 more

Attachments (2)

partiallyLoaded.tiff (23.0 KB) - added by jburel 11 years ago.
logs.zip (43.3 KB) - added by wmoore 11 years ago.

Download all attachments as: .zip

Change History (10)

comment:1 Changed 11 years ago by jburel

A way to prevent the crash is to create each time a new raw file store service and close it.

comment:2 Changed 11 years ago by jburel

  • Type changed from User Story to defect

Changed 11 years ago by jburel

Changed 11 years ago by wmoore

comment:3 Changed 11 years ago by wmoore

  • Description modified (diff)

comment:4 Changed 10 years ago by jmoore

  • Type changed from Bug to Task

comment:5 Changed 10 years ago by jmoore

  • Owner jmoore deleted

comment:6 Changed 10 years ago by jmoore

  • Description modified (diff)
Cannot set the file's id.
	at org.openmicroscopy.shoola.env.data.OMEROGateway.handleException(OMEROGateway.java:453)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:2748)
	at org.openmicroscopy.shoola.env.data.OmeroMetadataServiceImpl.downloadFile(OmeroMetadataServiceImpl.java:1279)
	at org.openmicroscopy.shoola.env.data.views.calls.FilesLoader$1.doCall(FilesLoader.java:78)
	at org.openmicroscopy.shoola.env.data.views.BatchCall.doStep(BatchCall.java:145)
	at org.openmicroscopy.shoola.util.concur.tasks.CompositeTask.doStep(CompositeTask.java:226)
	at org.openmicroscopy.shoola.env.data.views.CompositeBatchCall.doStep(CompositeBatchCall.java:126)
	at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.exec(ExecCommand.java:165)
	at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.run(ExecCommand.java:274)
	at org.openmicroscopy.shoola.util.concur.tasks.AsyncProcessor$Runner.run(AsyncProcessor.java:91)
	at java.lang.Thread.run(Thread.java:613)
Caused by: omero.InternalException
    serverStackTrace = "ome.conditions.InternalException:  Wrapped Exception: (org.postgresql.util.PSQLException):
                        Cannot change transaction read-only property in the middle of a transaction.
                        	at org.postgresql.jdbc2.AbstractJdbc2Connection.setReadOnly(AbstractJdbc2Connection.java:586)
                        	at bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle.setReadOnly(LrcConnectionHandle.java:149)
                        	at bitronix.tm.resource.jdbc.JdbcConnectionHandle.setReadOnly(JdbcConnectionHandle.java:346)
                        	at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.getTargetConnection(LazyConnectionDataSourceProxy.java:398)
                        	at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:364)
                        	at $Proxy46.createStatement(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:225)
                        	at $Proxy46.createStatement(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:50)
                        	at $Proxy56.createStatement(Unknown Source)
                        	at ome.security.basic.EventHandler.invoke(EventHandler.java:110)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at ome.tools.hibernate.SessionHandler.doStateful(SessionHandler.java:182)
                        	at ome.tools.hibernate.SessionHandler.invoke(SessionHandler.java:166)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:100)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
                        	at $Proxy65.setFileId(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor841.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
                        	at ome.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:78)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:35)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
                        	at $Proxy65.setFileId(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor993.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	at ome.services.blitz.util.IceMethodInvoker.callOrClose(IceMethodInvoker.java:257)
                        	at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:179)
                        	at ome.services.throttling.Callback.run(Callback.java:55)
                        	at ome.services.throttling.InThreadThrottlingStrategy.callInvokerOnRawArgs(InThreadThrottlingStrategy.java:37)
                        	at ome.services.blitz.impl.AbstractAmdServant.callInvokerOnRawArgs(AbstractAmdServant.java:115)
                        	at ome.services.blitz.impl.RawFileStoreI.setFileId_async(RawFileStoreI.java:55)
                        	at omero.api._RawFileStoreTie.setFileId_async(_RawFileStoreTie.java:78)
                        	at omero.api._RawFileStoreDisp.___setFileId(_RawFileStoreDisp.java:141)
                        	at omero.api._RawFileStoreDisp.__dispatch(_RawFileStoreDisp.java:284)
                        	at IceInternal.Incoming.invoke(Incoming.java:159)
                        	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
                        	at Ice.ConnectionI.message(ConnectionI.java:972)
                        	at IceInternal.ThreadPool.run(ThreadPool.java:577)
                        	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
                        	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
                        "
    serverExceptionClass = "ome.conditions.InternalException"
    message = " Wrapped Exception: (org.postgresql.util.PSQLException):
               Cannot change transaction read-only property in the middle of a transaction."
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
	at java.lang.Class.newInstance0(Class.java:350)
	at java.lang.Class.newInstance(Class.java:303)
	at IceInternal.BasicStream$DynamicUserExceptionFactory.createAndThrow(BasicStream.java:2243)
	at IceInternal.BasicStream.throwException(BasicStream.java:1632)
	at IceInternal.Outgoing.throwUserException(Outgoing.java:442)
	at omero.api._RawFileStoreDelM.setFileId(_RawFileStoreDelM.java:138)
	at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:184)
	at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:156)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:2746)
	... 9 more

comment:7 Changed 10 years ago by jburel

  • Owner set to jburel

Put jburel as owner. I will write a test to try to reproduce the logic that generated the bug

comment:8 Changed 10 years ago by jburel

  • Milestone changed from OMERO-Beta4.2 to Unscheduled
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.210920 sec.)

We're Hiring!