openworm / org.geppetto

Geppetto is an open-source platform to build web-based applications to visualize and simulate neuroscience data and models.
http://geppetto.org
Other
209 stars 50 forks source link

Persist feature fails randomly #453

Closed adrianq closed 8 years ago

adrianq commented 9 years ago

It doesn't depend on the model or the user. It may has to do with GeppettoDataManager. As users in Geppetto are at the beginning logged in as anonymous user and afterwards they can be logged in with their own user, it can't create some kind of problems. No really sure about this...

This is the trace error:

[2015-10-02 16:32:31.055] ERROR http-bio-8080-exec-250       org.apache.coyote.http11.Http11Protocol                           Error reading 
request, ignored java.lang.NullPointerException: Null values not allowed in persistent maps.
        at org.datanucleus.store.rdbms.scostore.AbstractMapStore.validateValueType(AbstractMapStore.java:314)
        at org.datanucleus.store.rdbms.scostore.AbstractMapStore.validateValueForWriting(AbstractMapStore.java:392)
        at org.datanucleus.store.rdbms.scostore.JoinMapStore.putAll(JoinMapStore.java:188)
        at org.datanucleus.store.rdbms.mapping.java.MapMapping.postInsert(MapMapping.java:102)
        at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
        at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448)
        at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2092)
        at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:562)
        at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:323)
        at org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:188)
        at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1460)
        at org.datanucleus.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:117)
        at org.geppetto.persistence.db.model.AspectConfiguration.dnProvideField(AspectConfiguration.java)
        at org.geppetto.persistence.db.model.AspectConfiguration.dnProvideFields(AspectConfiguration.java)
        at org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1174)
        at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:291)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
        at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448)
        at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2097)
        at org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1295)
        at org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:368)
        at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:196)
        at org.datanucleus.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:137)
        at org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:140)
        at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
        at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448)
        at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2097)
        at org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1295)
        at org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:368)
        at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:196)
        at org.datanucleus.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:137)
        at org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:140)
        at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
        at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
        at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448)
        at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424)
        at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000)
        at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843)
        at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1706)
        at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720)
        at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745)
        at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy$PersistenceManagerInvocationHandler.invoke(TransactionAwarePersistenceManagerFactoryProxy.java:211)
        at com.sun.proxy.$Proxy101.makePersistent(Unknown Source)
        at org.geppetto.persistence.db.DBManager.storeEntity(DBManager.java:71)
        at org.geppetto.persistence.GeppettoDataManager.addGeppettoProject(GeppettoDataManager.java:257)
        at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at com.sun.proxy.$Proxy89.addGeppettoProject(Unknown Source)
        at org.geppetto.frontend.controllers.GeppettoManager.persistProject(GeppettoManager.java:265)
        at org.geppetto.frontend.controllers.ConnectionHandler.persistProject(ConnectionHandler.java:855)
        at org.geppetto.frontend.controllers.WebsocketConnection.onTextMessage(WebsocketConnection.java:225)
        at org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:78)
        at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:191)
        at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:139)
        at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:88)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

It will need some further investigation...

borismarin commented 9 years ago

Did that come from our previous tests, @adrianq?

On 2 October 2015 at 17:59, Adrian Quintana notifications@github.com wrote:

It doesn't depend on the model or the user. It may has to do with GeppettoDataManager. As users in Geppetto are at the beginning logged in as anonymous user and afterwards they can be logged in with their own user, it can't create some kind of problems. No really sure about this...

This is the trace error:

[2015-10-02 16:32:31.055] ERROR http-bio-8080-exec-250 org.apache.coyote.http11.Http11Protocol Error reading request, ignored java.lang.NullPointerException: Null values not allowed in persistent maps. at org.datanucleus.store.rdbms.scostore.AbstractMapStore.validateValueType(AbstractMapStore.java:314) at org.datanucleus.store.rdbms.scostore.AbstractMapStore.validateValueForWriting(AbstractMapStore.java:392) at org.datanucleus.store.rdbms.scostore.JoinMapStore.putAll(JoinMapStore.java:188) at org.datanucleus.store.rdbms.mapping.java.MapMapping.postInsert(MapMapping.java:102) at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138) at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448) at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2092) at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:562) at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:323) at org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:188) at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1460) at org.datanucleus.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:117) at org.geppetto.persistence.db.model.AspectConfiguration.dnProvideField(AspectConfiguration.java) at org.geppetto.persistence.db.model.AspectConfiguration.dnProvideFields(AspectConfiguration.java) at org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1174) at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:291) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138) at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448) at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2097) at org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1295) at org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:368) at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:196) at org.datanucleus.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:137) at org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:140) at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138) at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448) at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2097) at org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1295) at org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:368) at org.datanucleus.store.rdbms.scostore.JoinListStore.internalAdd(JoinListStore.java:196) at org.datanucleus.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:137) at org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:140) at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:521) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162) at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138) at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448) at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424) at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000) at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843) at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1706) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745) at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy$PersistenceManagerInvocationHandler.invoke(TransactionAwarePersistenceManagerFactoryProxy.java:211) at com.sun.proxy.$Proxy101.makePersistent(Unknown Source) at org.geppetto.persistence.db.DBManager.storeEntity(DBManager.java:71) at org.geppetto.persistence.GeppettoDataManager.addGeppettoProject(GeppettoDataManager.java:257) at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy89.addGeppettoProject(Unknown Source) at org.geppetto.frontend.controllers.GeppettoManager.persistProject(GeppettoManager.java:265) at org.geppetto.frontend.controllers.ConnectionHandler.persistProject(ConnectionHandler.java:855) at org.geppetto.frontend.controllers.WebsocketConnection.onTextMessage(WebsocketConnection.java:225) at org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:78) at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:191) at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:139) at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:88) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

It will need some further investigation...

— Reply to this email directly or view it on GitHub https://github.com/openworm/org.geppetto/issues/453.

adrianq commented 9 years ago

yes @borismarin. It started happening (failing) to me (my osb user) after our chat and then to the anonymous user. After a while, it started working again for the anonymous user. Trying to understand where it comes from....

adrianq commented 8 years ago

Another error related to this one: [2015-10-14 17:04:56.819] INFO http-bio-8080-exec-18 DataNucleus.JDO Exception thrown org.datanucleus.exceptions.NucleusUserException: Object with id "org.geppetto.persistence.db.model.User@5abb2427" is managed by a different persistence manager at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:1905) at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843) at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1706) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy$PersistenceManagerInvocationHandler.invoke(TransactionAwarePersistenceManagerFactoryProxy.java:211) at com.sun.proxy.$Proxy101.makePersistent(Unknown Source) at org.geppetto.persistence.db.DBManager.storeEntity(DBManager.java:71) at org.geppetto.persistence.GeppettoDataManager.addGeppettoProject(GeppettoDataManager.java:275) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy89.addGeppettoProject(Unknown Source) at org.geppetto.frontend.controllers.GeppettoManager.persistProject(GeppettoManager.java:266) at org.geppetto.frontend.controllers.ConnectionHandler.persistProject(ConnectionHandler.java:861) at org.geppetto.frontend.controllers.WebsocketConnection.onTextMessage(WebsocketConnection.java:225) at org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:78) at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:191) at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:139) at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:88) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

tarelli commented 8 years ago

@adrianq think I have sorted this, testing more