You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2019/03/07 04:43:00 UTC

[jira] [Commented] (ASTERIXDB-2491) Recovery fail for large tuples (short integer overflow)

    [ https://issues.apache.org/jira/browse/ASTERIXDB-2491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786370#comment-16786370 ] 

ASF subversion and git services commented on ASTERIXDB-2491:
------------------------------------------------------------

Commit 41adf7c449c4b89370c0c400397924d492f44daf in asterixdb's branch refs/heads/master from Michael Blow
[ https://gitbox.apache.org/repos/asf?p=asterixdb.git;h=41adf7c ]

[ASTERIXDB-2491][TXN] Recovery fixes

- user model changes: no
- storage format changes: yes[1]
- interface changes: no

Details:
- Change field offset type from integer16 to integer32
- Add recovery test
- Add version to log entries
[1] LogRecord format change with this patch; old LogRecord format can still
    be processed, however old instances cannot read new log format

Change-Id: Iaf14b9a73a0239763bfeb0ce2d81cf952e6d72d3
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3065
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mb...@apache.org>


> Recovery fail for large tuples (short integer overflow)
> -------------------------------------------------------
>
>                 Key: ASTERIXDB-2491
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2491
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: HYR - Hyracks, TX - Transactions
>            Reporter: Wail Alkowaileet
>            Assignee: Wail Alkowaileet
>            Priority: Critical
>         Attachments: cc.log, nc-1.log
>
>
> I've been running some tests with pretty large objects (~100KB). But it seems the field end offsets in the log buffer are of type short [1, 2]. For large fields (> 32KB), the field end offset is going to be a negative value due to overflow. When recovery kicks in, I get an exception that "The length must be a non-negative value".
> [1] [SimpleTupleWriter|https://github.com/apache/asterixdb/blob/6b31f73565a3b16e0dd1fce9ea010e640c53ca79/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/tuples/SimpleTupleWriter.java#L106]
> [2] [SimpleTupleReference|https://github.com/apache/asterixdb/blob/6b31f73565a3b16e0dd1fce9ea010e640c53ca79/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/tuples/SimpleTupleReference.java#L86]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)