-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Bug] Fix bug that BE crash when doing Insert Operation #3872
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
Conversation
| PExecPlanFragmentResult result = new PExecPlanFragmentResult(); | ||
| PStatus pStatus = new PStatus(); | ||
| pStatus.error_msgs.add(e.getMessage()); | ||
| // use THRIFT_RPC_ERROR so that this BE will be added to the black list later. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
black list --> blacklist
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
ce38590 to
b0cb04e
Compare
@morningman Hi, where is the code? |
Oh, sorry, I think i miss some part of the code... |
Done |
|
hi @kangkaisen Could you help to review again? |
|
OK |
kangkaisen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
5a73cc2 to
a9201ab
Compare
EmmyMiao87
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Mainly change: 1. Fix the bug in `update_status(status)` of `PlanFragmentExecutor`. 2. When the FE Coordinator executes `execRemoteFragmentAsync()`, if it finds an RPC error, return a Future with an error code instead of exception. 3. Protect the `_status` in RuntimeState with lock 4. Move the `_runtime_profile` of RuntimeState before the `_obj_pool`, so that the profile will be deconstructed after the object pool. 5. Remove the unused `ObjectPool` param in RuntimeProfile constructor. If I don't remove it, RuntimeProfile will depends on the `_obj_pool` in RuntimeProfile.
Mainly change: 1. Fix the bug in `update_status(status)` of `PlanFragmentExecutor`. 2. When the FE Coordinator executes `execRemoteFragmentAsync()`, if it finds an RPC error, return a Future with an error code instead of exception. 3. Protect the `_status` in RuntimeState with lock 4. Move the `_runtime_profile` of RuntimeState before the `_obj_pool`, so that the profile will be deconstructed after the object pool. 5. Remove the unused `ObjectPool` param in RuntimeProfile constructor. If I don't remove it, RuntimeProfile will depends on the `_obj_pool` in RuntimeProfile.
This bug is introduced by #3872. It will cause some expected to be cancelled queries not being cancelled.
This bug is introduced by apache#3872. It will cause some expected to be cancelled queries not being cancelled.
Fix: #3871
Mainly change:
update_status(status)ofPlanFragmentExecutor.execRemoteFragmentAsync(), if it finds an RPC error, return a Future with an error code instead of exception._statusin RuntimeState with lock_runtime_profileof RuntimeState before the_obj_pool, so that the profile will bedeconstructed after the object pool.
ObjectPoolparam in RuntimeProfile constructor. If I don't remove it,RuntimeProfile will depends on the
_obj_poolin RuntimeProfile.