You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Dag H. Wanvik (JIRA)" <ji...@apache.org> on 2011/03/25 14:05:05 UTC

[jira] [Created] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
-------------------------------------------------------------------------------------------------------------------

                 Key: DERBY-5152
                 URL: https://issues.apache.org/jira/browse/DERBY-5152
             Project: Derby
          Issue Type: Bug
    Affects Versions: 10.8.0.0
            Reporter: Dag H. Wanvik
            Priority: Minor


When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Issue & fix info: [Patch Available]

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Fix Version/s: 10.8.0.0

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>             Fix For: 10.8.0.0
>
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Closed] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik closed DERBY-5152.
--------------------------------

    Resolution: Fixed

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>             Fix For: 10.8.0.0
>
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012272#comment-13012272 ] 

Dag H. Wanvik commented on DERBY-5152:
--------------------------------------

Committed the patch at svn 1086443, closing.


> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Assigned] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik reassigned DERBY-5152:
------------------------------------

    Assignee: Dag H. Wanvik

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment: derby-5152-b.diff

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment:     (was: derby-5152-b.diff)

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Closed] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik closed DERBY-5152.
--------------------------------

          Resolution: Fixed
    Issue & fix info:   (was: [Patch Available])

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment:     (was: derby-5152-b.stat)

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment: derby-5152.stat
                derby-5152.diff

Preliminary patch for this issue. Copies the information from lcc over to the thread local variable when lcc is popped.

Added a new test case to InterruptResilienceTest.

Running regressions.

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment: derby-5152-b.stat

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Reopened] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik reopened DERBY-5152:
----------------------------------


> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>             Fix For: 10.8.0.0
>
>         Attachments: derby-5152-b.diff, derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (DERBY-5152) Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dag H. Wanvik updated DERBY-5152:
---------------------------------

    Attachment: derby-5152-b.stat
                derby-5152-b.diff

Uploading a revised patch, "-b" which, relative to the first patch,  contains a simplified test fixture  
Regressions passed.

> Shutting down db, information that the thread received an interrupt will not be restored to thread's interrupt flag
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5152
>                 URL: https://issues.apache.org/jira/browse/DERBY-5152
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.8.0.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-5152-b.stat, derby-5152.diff, derby-5152.stat
>
>
> When a thread receives an interrupt Derby detects this, it will reset the thread's flag and save the fact in its lcc (LanguageConnectionContext), if available. If not (e.g. during boot) it will save the information in a thread local variable. For performance reasons, we use the lcc when available. However, when shutting down the database, the lcc goers away, and when the JDBC call returns to the application, the thread's interrupt flag will not be reinstated as per our specification. This is because the lcc dies before we do the restoring (under shutdown). So, the information that the thread was interrupted is lost with the lcc going away. A possible solution is to move the flag over to the thread local variable when the lcc is popped, so that the restore code will find it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira