vitalidze / traccar-web

Traccar Web UI mod
http://traccar.litvak.su/
151 stars 145 forks source link

ERROR: Already closed. #446

Open StanislavKo opened 8 years ago

StanislavKo commented 8 years ago

Hello, Could you please share any experience with such an error. I've customized some functionality and get this errors from time to time. Full log is here: http://pastebin.com/GPgr7rdU Shortened log (repeated routine log is removed) is here: http://pastebin.com/3ucN75tt All my new methods are @Transactional Look for: 1) "WARN: SQL Error: 0, SQLState: null" 2) "ERROR: Already closed." Thanks in advance

vitalidze commented 8 years ago

Most probably you have some detached object from one session and trying to load some lazy initialised field in another session. I think you have some entity in a state stored somewhere in memory. It's better to not have entities in state, store their identifiers instead and just load entity every time you need it.

For further investigation it's better to have full stack trace of these errors.

StanislavKo commented 8 years ago

1) i've deployed 0.10.2 (build locally using github sources) on openshift.redhat.com: http://traccar3-gwt1gxt.rhcloud.com/ After 2 days i get the following error regularly and sometimes "ERROR: Already closed":

org.hibernate.SessionException: Session is closed!
    org.hibernate.internal.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:133)
    org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1433)
    org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:61)
    com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:62)
    com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
    com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
    com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)

Is it hoster environment problem? I have 2 GXT applications deployed on Redhat 3 years which don't face such problems. 2) would you like a pull request with such a feature called "Event Rules"? traccar_pull_request

vitalidze commented 8 years ago

Is it hoster environment problem? I have 2 GXT applications deployed on Redhat 3 years which don't face such problems.

I don't know. All I can say that I don't have this issue on my servers. It looks like a bug. How does it look in the UI? The error comes from the filter during processing of some HTTP request.

2) would you like a pull request with such a feature called "Event Rules"?

Yes. This may become a base for the schedule in #95 and #153.