-
Notifications
You must be signed in to change notification settings - Fork 303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Another MultiAction issue #25
Comments
Can you help me reproduce the bug? Is your code doing anything special? Are you able to reproduce the problem consistently? If so, can you share the DEBUG level log? |
This happened on our productive cluster and locally I'm not able anymore to reproduce the bug. Nothing special, the request is constructed as follows:
According to the stack trace the server tries to deserialize attributes which exist as of version 2 (DeleteRequest) only. Looking into your code you still serialize v1 delete requests: buf.writeByte(1); // Delete#DELETE_VERSION. Stick to v1 here for now. HBase does not try to deserialize any attributes if the version is 1: org.apache.hadoop.hbase.client.Delete:
I do not understand how this exception can happen at all. |
Generally these issues indicate that there is a problem with the way the RPC got serialized. If the RPC isn't serialized properly, then HBase can fail to deserialize it because the fields aren't where it expects them to be. The problem is that it's really hard to track down what the problem is without having more details about the failure: what was the RPC exactly, what did it contain, how did it get serialized? asynchbase's DEBUG log would tell us all of that. But so far we can only deplore the lack of details logged by HBase itself when this problem occurs. |
So I'm not sure what should we do with this issue... |
I have the exact same issue running async 1.3.2 and HBase 0.92.1-cdh4.0.1. I have been able to reliably reproduce the issue, however only from within our application. I have not been able to create a test case to reproduce the issue Our DEBUG log is as follows. For brevity, I have not included all the other failed RPC stacktraces that have failed. From what I can see, every PutRequest / DeleteRequest inside the MultiAction has failed.
Please let me know if you require any more information |
Just some more information on this from more testing, I have pointed my application to an earlier version of HBase (0.90.3) and I have not been able to reproduce the issue I was seeing above. Has something in the HBase binary API changed between 0.90.3 and 0.92.1 that we haven't catered for? |
Yes HBase regularly changes the on-wire details of RPCs, so it is very possible that this bug could only be triggered with 0.92.x |
I think I nailed down this bug. Can you please confirm that tsuna/asynchbase@d3a9f74 looks good and works for you too? Thank you for your patience and sorry it took me so long to set some time aside to fix this bug. Plus the fix is only a one-line change. |
For the records, this issue is a duplicate of #33. |
Hi Benoit, thanks for the patch. I have tested it using the same test case I was using before, and it looks like your patch has fixed the issue. Thank you for the quick turnaround. Scott |
I see the following issue with the tsuna/asynchbase fork. I did not test stumbleupon/asynchbase but it's probably the same. I'm on HBase 0.92.0.
The text was updated successfully, but these errors were encountered: