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 "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2010/01/19 16:46:54 UTC
[jira] Commented: (DERBY-4519) Infinite loop in
StreamFileContainer.writeColumn
[ https://issues.apache.org/jira/browse/DERBY-4519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802307#action_12802307 ]
Knut Anders Hatlen commented on DERBY-4519:
-------------------------------------------
Another problem with this code is that it uses InputStream.available() to decide the size of the read buffer. If available() returns 0 (which it is allowed to) an empty read buffer is used, and this will also lead to an infinite loop, I think.
The patch looks like an improvement, though. Minor nit: Calling the read(byte[]) method that takes no offset/length arguments would be equivalent to read(bufData,0,bufferLen) and slightly simpler.
> Infinite loop in StreamFileContainer.writeColumn
> ------------------------------------------------
>
> Key: DERBY-4519
> URL: https://issues.apache.org/jira/browse/DERBY-4519
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.0.2.1, 10.1.3.1, 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.3.0, 10.6.0.0
> Reporter: Kristian Waagan
> Assignee: Kristian Waagan
> Fix For: 10.6.0.0
>
> Attachments: derby-4519-1a-argument_swap.diff
>
>
> The offset and length argument have been swapped in the calls to InputStream.read(byte,offset, length) and write(byte,offset, length). This code is inside a do-while (true) loop, and the only normal way out is when InputStream.read returns -1. This will never happen since the stream is asked to read zero bytes. Derby ends up eating up all available CPU, limited to a single core / CPU.
> The bug hasn't been observed because Derby is materializing all values when calling this code. Enabling streaming capabilities in the sorter revealed it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.