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

Charles Natali commented on MESOS-10216:
----------------------------------------

OK I think the code in question is 
https://github.com/apache/mesos/blob/b8bfef6db158646df9fea6968bc75e88c32c3e21/src/log/leveldb.cpp#L101

The code indeed looks like it could suffer from overflow, however I'm not 
familiar with this part of the code base so I'll spend some time to understand 
exactly if it can be a problem in practice.

> Replicated log key encoding overflows into negative values
> ----------------------------------------------------------
>
>                 Key: MESOS-10216
>                 URL: https://issues.apache.org/jira/browse/MESOS-10216
>             Project: Mesos
>          Issue Type: Bug
>          Components: replicated log
>    Affects Versions: 1.11.0
>            Reporter: Ilya
>            Priority: Major
>
> LevelDB keys used by {{LevelDBStorage}} are {{uint64_t}} log positions 
> encoded as strings and padded with zeroes up to a certain fixed size. The 
> {{encode()}} function is incorrect because it uses the {{%d}} formatter that 
> expects an {{int}}. It also limits the key size to 10 digits which is OK for 
> {{UINT32_MAX}} but isn't enough for {{UINT64_MAX}}.
> Because of this the available key range is reduced, and key overflow can 
> result in replica's {{METADATA}} record (position 0) being overwritten, which 
> in turn may cause data loss.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to