Details
Description
Currently, when using the semaphore logic, trying to acquire the semaphore is done without specifying a timeout. In case of a thread leak the Servlet Container supplied thread will block indefinitely. Introducing a timeout on the acquire call provides a failsafe mechanism. On timeout a warning message should be logged stating that a request has been pending for the specified timeout, including details on the request. Though this avoids a particular thread leak in this area, the underlying problem causing this to happen still needs to be addressed in the future.
Basically, in the ThreadBlockingAdaptingServlet the Semaphore.acquire() method is invoked which blocks the container thread. This semaphore should be released in a timely fashion. However, in case it does not get released, it should not get stuck in the acquire() invocation for the remainder of the JVM lifespan. We should introduce a timeout and an error message to inform of the situation.
Basically, in the ThreadBlockingAdaptingServlet the Semaphore.acquire() method is invoked which blocks the container thread. This semaphore should be released in a timely fashion. However, in case it does not get released, it should not get stuck in the acquire() invocation for the remainder of the JVM lifespan. We should introduce a timeout and an error message to inform of the situation.
Activity
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #19051 | Thu Jul 09 14:24:06 MDT 2009 | jack.van.ooststroom | Fixed JIRA |
Files Changed | ||||
![]() |
Field | Original Value | New Value |
---|---|---|
Assignee | Jack Van Ooststroom [ jack.van.ooststroom ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Salesforce Case | [] | |
Fix Version/s | 1.8.2 [ 10190 ] |
Status | In Progress [ 3 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #19082 | Fri Jul 17 09:09:14 MDT 2009 | mircea.toma | |
Files Changed | ||||
![]() |
Salesforce Case | [] | |
Description | Introduce a safety net in case of hanging threads when using thread blocking. Currently in ThreadBlockingAdaptingServlet the Semaphore.acquire() method is invoked which blocks the container thread. This semaphore should be released in a timely fashion. However, in case it does not get released, it should not get stuck in the acquire() invocation for the remainder of the JVM lifespan. We should introduce a timeout and an error message to inform of the situation. |
Currently, when using the semaphore logic, trying to acquire the semaphore is done without specifying a timeout. In case of a thread leak the Servlet Container supplied thread will block indefinitely. Introducing a timeout on the acquire call provides a failsafe mechanism. On timeout a warning message should be logged stating that a request has been pending for the specified timeout, including details on the request. Though this avoids a particular thread leak in this area, the underlying problem causing this to happen still needs to be addressed in the future. Basically, in the ThreadBlockingAdaptingServlet the Semaphore.acquire() method is invoked which blocks the container thread. This semaphore should be released in a timely fashion. However, in case it does not get released, it should not get stuck in the acquire() invocation for the remainder of the JVM lifespan. We should introduce a timeout and an error message to inform of the situation. |
Fix Version/s | 1.8.2-RC1 [ 10210 ] |
Environment | ICEfaces Core | ICEfaces Core, ICEfaces Push Server |
Salesforce Case | [] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #21620 | Wed Jun 02 10:26:28 MDT 2010 | ted.goddard | backport of semaphore timeout ( |
Files Changed | ||||
![]() |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #21621 | Wed Jun 02 10:29:54 MDT 2010 | ted.goddard | correcting test time interval ( |
Files Changed | ||||
![]() |
Changed Fix Version(s) to 1.8.2