You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "David Jencks (JIRA)" <de...@geronimo.apache.org> on 2005/01/28 00:07:18 UTC

[jira] Created: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Write a thread-safe timer/interrupt based transaction timout implementation
---------------------------------------------------------------------------

         Key: GERONIMO-555
         URL: http://issues.apache.org/jira/browse/GERONIMO-555
     Project: Apache Geronimo
        Type: New Feature
  Components: transaction manager  
    Reporter: David Jencks


We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.

Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.

We should also investigate to what extent this provides a solution for deadlock resolution.

If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "Sajida Abdul Salam (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]

Sajida Abdul Salam updated GERONIMO-555:
----------------------------------------

    Attachment: TransactionManagerImpl.java
                TransactionImpl.java

Attaching the two changed files

> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks
>      Fix For: Wish List
>  Attachments: ThreadSafetyTest.java, TransactionImpl.java, TransactionManagerImpl.java, geronimo_interrupts_POST, patch.txt
>
> This is a long term research project that will probably take a month of concentrated effort.
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


JIRA Issues & Fix Version

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
	I'm of the opinion that every JIRA should have a Fix Version.  If 
we don't want to atack it any time soon, let's set the fix version to the 
maximum possible (currently "1.1" or "some time after 1.0".  There are two 
main reasons for this:

 1) Bugs without a "Fix Version" tend to be ignored

 2) Only bugs with a Fix Version appear on the JIRA Road Map, and I think
    it's really valuable to have everything on the road map, even the
    long-term stuff, so we can look at it when estimating the size of a
    future release and so on.

	Accordingly, I'll plan to mark the bug below as Fix Version of
"1.1".  Likewise, I'm trying to (slowly) work through JIRA and assign fix
versions to things, and if you don't like what I put on there for some
issue you know about, by all means please change the Fix Version, but
please don't remove it entirely.

Thanks,
	Aaron

On Thu, 4 Aug 2005, David Jencks (JIRA) wrote:
>      [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]
> 
> David Jencks updated GERONIMO-555:
> ----------------------------------
> 
>     Fix Version:     (was: 1.0)
>     Description: 
> This is a long term research project that will probably take a month of concentrated effort.
> 
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> 
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> 
> We should also investigate to what extent this provides a solution for deadlock resolution.
> 
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550
> 
>   was:
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> 
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> 
> We should also investigate to what extent this provides a solution for deadlock resolution.
> 
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550
> 
> 
> > Write a thread-safe timer/interrupt based transaction timout implementation
> > ---------------------------------------------------------------------------
> >
> >          Key: GERONIMO-555
> >          URL: http://issues.apache.org/jira/browse/GERONIMO-555
> >      Project: Geronimo
> >         Type: New Feature
> >   Components: transaction manager
> >     Reporter: David Jencks
> 
> >
> > This is a long term research project that will probably take a month of concentrated effort.
> > We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> > Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> > We should also investigate to what extent this provides a solution for deadlock resolution.
> > If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550
> 
> -- 
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
> 
> 

[jira] Updated: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]

David Jencks updated GERONIMO-555:
----------------------------------

    Fix Version:     (was: 1.0)
    Description: 
This is a long term research project that will probably take a month of concentrated effort.

We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.

Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.

We should also investigate to what extent this provides a solution for deadlock resolution.

If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

  was:
We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.

Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.

We should also investigate to what extent this provides a solution for deadlock resolution.

If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550


> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks

>
> This is a long term research project that will probably take a month of concentrated effort.
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "Aaron Mulder (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]

Aaron Mulder updated GERONIMO-555:
----------------------------------

    Fix Version: 1.0
    Description: 
We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.

Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.

We should also investigate to what extent this provides a solution for deadlock resolution.

If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

  was:
We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.

Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.

We should also investigate to what extent this provides a solution for deadlock resolution.

If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

    Environment: 

> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks
>      Fix For: 1.0

>
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "Sajida Abdul Salam (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]

Sajida Abdul Salam updated GERONIMO-555:
----------------------------------------

    Attachment: patch.txt
                ThreadSafetyTest.java
                geronimo_interrupts_POST

Attaching the patch, testcases and Documentation

> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks
>      Fix For: Wish List
>  Attachments: ThreadSafetyTest.java, geronimo_interrupts_POST, patch.txt
>
> This is a long term research project that will probably take a month of concentrated effort.
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "Sajida Abdul Salam (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-555?page=comments#action_12358904 ] 

Sajida Abdul Salam commented on GERONIMO-555:
---------------------------------------------


1> Fixed the thread safety issue in the code present prior to revision 128441.

2> Investigated different drivers to find out what they do when an interrupt happens during an IO operation. Only those drivers which use the java.nio.channels package supports interruptible IO. 

3> Implemented a hybrid transaction code which supports both timer based transaction timeout and the present time based transaction timeout depending on the driver being used. The set of drivers that support NIO is currently hard coded in the file TransactionManagerImpl.java.
    Reason: Using a timer based timeout makes sense only if the driver used is interruptible. In case of non-interruptible drivers the passive (present time based) timeout implementation is reused.

4> Added test cases for testing the thread safety fix. 

Attachment 1:  Patch.txt  (Contains the fixes in TransactionManagerImpl.java and TransactionImpl.java)
Attachment 2:  ThreadSafety Test.java  (testcases for testing the thread safety fix)
Attachemnt 3:  geronimo_interrupts_POST  (Documentation regarding the fix)
Attachment 4:  TransactionManagerImpl.java (Changed file)
Attachment 5:  TransactionImpl.java   (Changed file)


> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks
>      Fix For: Wish List

>
> This is a long term research project that will probably take a month of concentrated effort.
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GERONIMO-555) Write a thread-safe timer/interrupt based transaction timout implementation

Posted by "Aaron Mulder (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-555?page=all ]

Aaron Mulder updated GERONIMO-555:
----------------------------------

    Fix Version: Wish List

> Write a thread-safe timer/interrupt based transaction timout implementation
> ---------------------------------------------------------------------------
>
>          Key: GERONIMO-555
>          URL: http://issues.apache.org/jira/browse/GERONIMO-555
>      Project: Geronimo
>         Type: New Feature
>   Components: transaction manager
>     Reporter: David Jencks
>      Fix For: Wish List

>
> This is a long term research project that will probably take a month of concentrated effort.
> We should investigate whether it is practical to have a thread safe timer/interrupt based transaction timeout implementation.  A non-thread safe implementation was present prior to revision 128441.
> Among the issues that need to be investigated are the extent to which IO is actually interruptable and what existing drivers do when they are interrupted.  For this to work, managed connections that get interrupted during io must be reliably destroyed.
> We should also investigate to what extent this provides a solution for deadlock resolution.
> If we decide that this is impractical, we should change the internal time unit for timeouts from milliseconds to seconds as proposed in GERONIMO-550

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira