db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lily Wei (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4166) improvements to the mailjdbc test
Date Sun, 26 Jul 2009 16:55:14 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Lily Wei updated DERBY-4166:
----------------------------

    Attachment: DERBY-4166-schemachange3.diff

Thanks Kathey for helping me with the patch.
I change insertMail() to use the getGeneratedKeys() to get the id as suggested. Also, insert
the attachements should be included in the loop to insert the mail in the INBOX. The test
should have 1/10 percentage to insert attach emails. I was expecting I don't see any deadlock
error after this change. However, I still get deadlock on Refresh thread while deleteMailbyRefresh()
query and Browse thread deleteMailbyUSer() are waiting for lock by Refresh thread insertMail().
I close and open connection at two places in the Refresh thread. First, when insertMail()
get interrupted  in Refresh thread. Second, when DeleteMailbyRefresh() get Exception from
test run. After running the tests for more than 10 hours, this patch is running without a
problem on embedded server. 


> improvements to the mailjdbc test
> ---------------------------------
>
>                 Key: DERBY-4166
>                 URL: https://issues.apache.org/jira/browse/DERBY-4166
>             Project: Derby
>          Issue Type: Improvement
>          Components: Test
>    Affects Versions: 10.6.0.0
>            Reporter: Kathey Marsden
>            Priority: Minor
>         Attachments: DERBY-4166-databasesize.diff, Derby-4166-samedb.diff, DERBY-4166-schemachange.diff,
DERBY-4166-schemachange2.diff, DERBY-4166-schemachange3.diff, Derby-4166.diff
>
>
> When recently working with the mailjdbc system test org.apache.derbyTesting.system.mailjdbc
on DERBY-4152 I noticed some potential improvements that might be good for the test.  We should
probably hold off on these improvements however until the root cause of DERBY-4152 is established,
however, so we don't muddy the waters with that issue by changing the test.
> 1) DbTasks.moveToFolders may throw an IllegalArgumentException.
>   There is a line:  message_id = Rn.nextInt(count - 1);
>   if count is 1 the argument to nextInt() might be 0 which is not allowed.  I hit this
once but lost the stack trace, but it is apparent that when there is only one row in the table
this can occur.
>  
> 2) Allow/implement multiple attachments per message and cleanup DbTasks.insertMail()
logic.
>    - Remove the attach_id column from INBOX to allow multiple attachments.
>    -Make the attachment insert part of the message for loop in insertMail.
>    Use getGeneratedKeys() to get the id of the inserted message.
>    When attachments are inserted, insert (1-4) attachments and give them a corresponding
attach_id from 1-4.
> This will allow for removal of the select statements used to determine id and attach_id.
 I'll file another issue for these improvements if folks agree that they are sensible.
> A detailed description of the current implementation of insertMail is described at https://issues.apache.org/jira/secure/attachment/12405685/insertMailSummary.txt
> 3) DbTasks.databaseSize calculation is wrong. It doesn't match du -sk. The method does
not recurse into subdirectories and includes the length() on directory files which is undefined
accourding to the file.length() javadoc.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message