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

Opened 14 years ago

Closed 12 years ago

Quick succession of calls to omero.client.closeSession leads to server stack trace

Reported by: jamoore Owned by:
Priority: critical Milestone: OMERO-4.4
Component: Performance Version: n.a.
Keywords: n.a. Cc:
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: 2012-01-17 (6)

Description

Locking on the destroy logic seems to not be working leading to the following exception:

2010-06-29 12:53:03,956 WARN  [ome.services.sessions.state.SessionCache] (r_Worker-5) Session listener threw an exception for session ee846911-c7f8-4917-a6db-f72254ab80f1
java.util.NoSuchElementException
        at java.util.LinkedList.remove(LinkedList.java:788)
        at java.util.LinkedList.removeLast(LinkedList.java:144)
        at ome.security.basic.CurrentDetails.logout(CurrentDetails.java:178)
        at ome.security.basic.BasicSecuritySystem.logout(BasicSecuritySystem.java:148)
        at ome.services.licenses.LicenseSessionListener.logout(LicenseSessionListener.java:79)
        at ome.services.licenses.LicenseSessionListener.onApplicationEvent(LicenseSessionListener.java:69)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
        at ome.services.messages.GlobalMulticaster.multicastEvent(GlobalMulticaster.java:55)
        at ome.system.OmeroContext.publishEvent(OmeroContext.java:327)
        at ome.services.sessions.state.SessionCache.internalRemove(SessionCache.java:352)
        at ome.services.sessions.state.SessionCache.doUpdate(SessionCache.java:577)
        at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
        at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264)
        at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

One way to reproduce is to use the importer which does not close its secure client objects:

components/tools/OmeroImporter/src/ome/formats/OMEROMetadataStoreClient.java:462:           c = c.createClient(false);
components/tools/OmeroImporter/src/ome/formats/OMEROMetadataStoreClient.java:501:           c = c.createClient(false);
components/tools/OmeroImporter/src/ome/formats/OMEROMetadataStoreClient.java:547:           c = c.createClient(false);

Change History (15)

comment:1 Changed 14 years ago by jmoore

  • Owner set to jmoore

comment:2 Changed 14 years ago by jmoore

  • Status changed from new to assigned

comment:3 Changed 14 years ago by jmoore

Related to #1855

comment:4 Changed 14 years ago by jmoore

  • Component changed from General to Performance
  • Milestone changed from OMERO-Beta4.2 to Unscheduled
  • Priority changed from minor to critical
  • Sprint 2010-06-24 (12) deleted

Needs to reviewed for file leakage, post 4.2.0.

comment:5 Changed 14 years ago by jmoore

  • Milestone changed from Unscheduled to OMERO-Beta4.2.1
  • Priority changed from critical to major
  • Sprint set to 2010-09-30 (17)

comment:6 Changed 14 years ago by jmoore

  • Owner jmoore deleted
  • Status changed from assigned to new

comment:7 Changed 14 years ago by jmoore

  • Owner set to jmoore
  • Status changed from new to assigned

comment:8 Changed 14 years ago by jmoore

(In [8254]) Removing tools/licenses in an effort to correct NoSuchElementExceptions on logout (See #2546)

comment:9 Changed 14 years ago by jmoore

(In [8256]) Improved handling of the NoSuchElementExceptions etc. in AbstractAmdServant (See #2546)

comment:10 Changed 14 years ago by jmoore

(In [8258]) More better exception handling in AbstractAmdServant (See #2546, #2804)

comment:11 Changed 14 years ago by jmoore

  • Owner jmoore deleted
  • Status changed from assigned to new

comment:12 Changed 14 years ago by jburel

  • Sprint changed from 2010-09-30 (17) to 2010-10-28 (18)

Moved from sprint 2010-09-30 (17)

comment:13 Changed 14 years ago by jmoore

  • Milestone changed from OMERO-Beta4.2.1 to OMERO-Beta4.2.2
  • Sprint 2010-10-28 (18) deleted

comment:14 Changed 13 years ago by jmoore

  • Milestone changed from OMERO-Beta4.2.2 to Unscheduled
  • Priority changed from major to critical

comment:15 Changed 12 years ago by jmoore

  • Milestone changed from Unscheduled to OMERO-Beta4.4
  • Resolution set to invalid
  • Sprint set to 2012-01-17 (6)
  • Status changed from new to closed

Several reasons to close:

  • #6639 significantly improved the NoSuchElementException situation.
  • LicenseSessionListener has been removed.
  • This importer code is deprecated.
  • I've never been able to reproduce.
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.72929 sec.)

We're Hiring!