[jira] [Updated] (HBASE-20078) MultiByteBuff : bug in reading primitives when individual buffers are too small

2018-03-14 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-20078:
---
  Resolution: Fixed
Hadoop Flags: Reviewed
  Status: Resolved  (was: Patch Available)

> MultiByteBuff : bug in reading primitives when individual buffers are too 
> small
> ---
>
> Key: HBASE-20078
> URL: https://issues.apache.org/jira/browse/HBASE-20078
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0-alpha-1
>Reporter: stack
>Assignee: Anoop Sam John
>Priority: Major
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-20078.patch
>
>
> Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:
> [~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
> the right thing
> Doing something like the below, it does not seem to be returning the right 
> answers
> {code}
>   @Ignore // This test fails.
>   @Test
>   public void testGetInt() {
> ByteBuffer bb1 = ByteBuffer.allocate(1);
> bb1.put((byte)1);
> ByteBuffer bb2 = ByteBuffer.allocate(1);
> bb2.put((byte)0);
> ByteBuffer bb3 = ByteBuffer.allocate(1);
> bb3.put((byte)0);
> ByteBuffer bb4 = ByteBuffer.allocate(1);
> bb4.put((byte)1);
> MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
> // Value is wrong here ... needs adjusting but code is doing wrong thing.
> assertEquals(256, mbb.getIntAfterPosition(0));
>   }
> {code}
> Ignore the expected answer in the above... just a place holder as i messed 
> with the return... but if I make buffers of one byte, we do not seem to be 
> moving into the next buffer properly... If I make the buffers of two bytes, 
> similar. This stuff normally works because we are not spanning buffer 
> boundaries... but if we do, response seems like it could be off sir. I'll 
> have a go at this. You might have input meantime.
> The issue is the individual BBs are too small. Ideally that would never 
> happen. Still better to solve this corner cases.



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


[jira] [Updated] (HBASE-20078) MultiByteBuff : bug in reading primitives when individual buffers are too small

2018-03-12 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-20078:
---
Description: 
Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:

[~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
the right thing

Doing something like the below, it does not seem to be returning the right 
answers
{code}
  @Ignore // This test fails.
  @Test
  public void testGetInt() {
ByteBuffer bb1 = ByteBuffer.allocate(1);
bb1.put((byte)1);
ByteBuffer bb2 = ByteBuffer.allocate(1);
bb2.put((byte)0);
ByteBuffer bb3 = ByteBuffer.allocate(1);
bb3.put((byte)0);
ByteBuffer bb4 = ByteBuffer.allocate(1);
bb4.put((byte)1);
MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
// Value is wrong here ... needs adjusting but code is doing wrong thing.
assertEquals(256, mbb.getIntAfterPosition(0));
  }
{code}
Ignore the expected answer in the above... just a place holder as i messed with 
the return... but if I make buffers of one byte, we do not seem to be moving 
into the next buffer properly... If I make the buffers of two bytes, similar. 
This stuff normally works because we are not spanning buffer boundaries... but 
if we do, response seems like it could be off sir. I'll have a go at this. You 
might have input meantime.

The issue is the individual BBs are too small. Ideally that would never happen. 
Still better to solve this corner cases.

  was:
Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:

[~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
the right thing

Doing something like the below, it does not seem to be returning the right 
answers
{code}
  @Ignore // This test fails.
  @Test
  public void testGetInt() {
ByteBuffer bb1 = ByteBuffer.allocate(1);
bb1.put((byte)1);
ByteBuffer bb2 = ByteBuffer.allocate(1);
bb2.put((byte)0);
ByteBuffer bb3 = ByteBuffer.allocate(1);
bb3.put((byte)0);
ByteBuffer bb4 = ByteBuffer.allocate(1);
bb4.put((byte)1);
MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
// Value is wrong here ... needs adjusting but code is doing wrong thing.
assertEquals(256, mbb.getIntAfterPosition(0));
  }
{code}
Ignore the expected answer in the above... just a place holder as i messed with 
the return... but if I make buffers of one byte, we do not seem to be moving 
into the next buffer properly... If I make the buffers of two bytes, similar. 
This stuff normally works because we are not spanning buffer boundaries... but 
if we do, response seems like it could be off sir. I'll have a go at this. You 
might have input meantime.


> MultiByteBuff : bug in reading primitives when individual buffers are too 
> small
> ---
>
> Key: HBASE-20078
> URL: https://issues.apache.org/jira/browse/HBASE-20078
> Project: HBase
>  Issue Type: Task
>Affects Versions: 2.0.0-alpha-1
>Reporter: stack
>Assignee: stack
>Priority: Major
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-20078.patch
>
>
> Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:
> [~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
> the right thing
> Doing something like the below, it does not seem to be returning the right 
> answers
> {code}
>   @Ignore // This test fails.
>   @Test
>   public void testGetInt() {
> ByteBuffer bb1 = ByteBuffer.allocate(1);
> bb1.put((byte)1);
> ByteBuffer bb2 = ByteBuffer.allocate(1);
> bb2.put((byte)0);
> ByteBuffer bb3 = ByteBuffer.allocate(1);
> bb3.put((byte)0);
> ByteBuffer bb4 = ByteBuffer.allocate(1);
> bb4.put((byte)1);
> MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
> // Value is wrong here ... needs adjusting but code is doing wrong thing.
> assertEquals(256, mbb.getIntAfterPosition(0));
>   }
> {code}
> Ignore the expected answer in the above... just a place holder as i messed 
> with the return... but if I make buffers of one byte, we do not seem to be 
> moving into the next buffer properly... If I make the buffers of two bytes, 
> similar. This stuff normally works because we are not spanning buffer 
> boundaries... but if we do, response seems like it could be off sir. I'll 
> have a go at this. You might have input meantime.
> The issue is the individual BBs are too small. Ideally that would never 
> happen. Still better to solve this corner cases.



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


[jira] [Updated] (HBASE-20078) MultiByteBuff : bug in reading primitives when individual buffers are too small

2018-03-12 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-20078:
---
Component/s: (was: test)

> MultiByteBuff : bug in reading primitives when individual buffers are too 
> small
> ---
>
> Key: HBASE-20078
> URL: https://issues.apache.org/jira/browse/HBASE-20078
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0-alpha-1
>Reporter: stack
>Assignee: stack
>Priority: Major
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-20078.patch
>
>
> Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:
> [~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
> the right thing
> Doing something like the below, it does not seem to be returning the right 
> answers
> {code}
>   @Ignore // This test fails.
>   @Test
>   public void testGetInt() {
> ByteBuffer bb1 = ByteBuffer.allocate(1);
> bb1.put((byte)1);
> ByteBuffer bb2 = ByteBuffer.allocate(1);
> bb2.put((byte)0);
> ByteBuffer bb3 = ByteBuffer.allocate(1);
> bb3.put((byte)0);
> ByteBuffer bb4 = ByteBuffer.allocate(1);
> bb4.put((byte)1);
> MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
> // Value is wrong here ... needs adjusting but code is doing wrong thing.
> assertEquals(256, mbb.getIntAfterPosition(0));
>   }
> {code}
> Ignore the expected answer in the above... just a place holder as i messed 
> with the return... but if I make buffers of one byte, we do not seem to be 
> moving into the next buffer properly... If I make the buffers of two bytes, 
> similar. This stuff normally works because we are not spanning buffer 
> boundaries... but if we do, response seems like it could be off sir. I'll 
> have a go at this. You might have input meantime.
> The issue is the individual BBs are too small. Ideally that would never 
> happen. Still better to solve this corner cases.



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


[jira] [Updated] (HBASE-20078) MultiByteBuff : bug in reading primitives when individual buffers are too small

2018-03-12 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-20078:
---
Issue Type: Bug  (was: Task)

> MultiByteBuff : bug in reading primitives when individual buffers are too 
> small
> ---
>
> Key: HBASE-20078
> URL: https://issues.apache.org/jira/browse/HBASE-20078
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0-alpha-1
>Reporter: stack
>Assignee: stack
>Priority: Major
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-20078.patch
>
>
> Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:
> [~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
> the right thing
> Doing something like the below, it does not seem to be returning the right 
> answers
> {code}
>   @Ignore // This test fails.
>   @Test
>   public void testGetInt() {
> ByteBuffer bb1 = ByteBuffer.allocate(1);
> bb1.put((byte)1);
> ByteBuffer bb2 = ByteBuffer.allocate(1);
> bb2.put((byte)0);
> ByteBuffer bb3 = ByteBuffer.allocate(1);
> bb3.put((byte)0);
> ByteBuffer bb4 = ByteBuffer.allocate(1);
> bb4.put((byte)1);
> MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
> // Value is wrong here ... needs adjusting but code is doing wrong thing.
> assertEquals(256, mbb.getIntAfterPosition(0));
>   }
> {code}
> Ignore the expected answer in the above... just a place holder as i messed 
> with the return... but if I make buffers of one byte, we do not seem to be 
> moving into the next buffer properly... If I make the buffers of two bytes, 
> similar. This stuff normally works because we are not spanning buffer 
> boundaries... but if we do, response seems like it could be off sir. I'll 
> have a go at this. You might have input meantime.
> The issue is the individual BBs are too small. Ideally that would never 
> happen. Still better to solve this corner cases.



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


[jira] [Updated] (HBASE-20078) MultiByteBuff : bug in reading primitives when individual buffers are too small

2018-03-12 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-20078:
---
Summary: MultiByteBuff : bug in reading primitives when individual buffers 
are too small  (was: Add more unit tests of MultiByteBuff facility)

> MultiByteBuff : bug in reading primitives when individual buffers are too 
> small
> ---
>
> Key: HBASE-20078
> URL: https://issues.apache.org/jira/browse/HBASE-20078
> Project: HBase
>  Issue Type: Task
>  Components: test
>Affects Versions: 2.0.0-alpha-1
>Reporter: stack
>Assignee: stack
>Priority: Major
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-20078.patch
>
>
> Copied from the bottom of HBASE-13916, the JIRA that introduced MultiByteBuff:
> [~anoop.hbase] This bit of code needs more test. It does not seem to be doing 
> the right thing
> Doing something like the below, it does not seem to be returning the right 
> answers
> {code}
>   @Ignore // This test fails.
>   @Test
>   public void testGetInt() {
> ByteBuffer bb1 = ByteBuffer.allocate(1);
> bb1.put((byte)1);
> ByteBuffer bb2 = ByteBuffer.allocate(1);
> bb2.put((byte)0);
> ByteBuffer bb3 = ByteBuffer.allocate(1);
> bb3.put((byte)0);
> ByteBuffer bb4 = ByteBuffer.allocate(1);
> bb4.put((byte)1);
> MultiByteBuff mbb = new MultiByteBuff(bb1, bb2, bb3, bb4);
> // Value is wrong here ... needs adjusting but code is doing wrong thing.
> assertEquals(256, mbb.getIntAfterPosition(0));
>   }
> {code}
> Ignore the expected answer in the above... just a place holder as i messed 
> with the return... but if I make buffers of one byte, we do not seem to be 
> moving into the next buffer properly... If I make the buffers of two bytes, 
> similar. This stuff normally works because we are not spanning buffer 
> boundaries... but if we do, response seems like it could be off sir. I'll 
> have a go at this. You might have input meantime.



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