[MCOL-4825] query with limit continues to run on PrimProc after query is done. Created: 2021-07-29  Updated: 2023-07-01

Status: Open
Project: MariaDB ColumnStore
Component/s: ExeMgr
Affects Version/s: 6.1.1
Fix Version/s: Icebox

Type: Task Priority: Major
Reporter: David Hall (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

When a query with limit is executed, it aborts the query once the limit is satisfied. During this abort, it doesn't call BatchPrimitiveProcessorJL::destroyBPP(). This leaves unexecuted jobsteps in the prioritythreadpool's queue on PrimProc. The jobsteps have nothing to work on anymore, so they do nothing.

Since the thing they're trying to work on is missing, the code doesn't know if it's never going to be created, so it reschedules the jobsteps. Prioritythreadpool then spins trying to get these tasks completed, rescheduling over and over until a timer pops to make it give up.

If other queries arrive, there's likely no noticeable impact, but cpu cycles are being wasted.


Generated at Thu Feb 08 02:53:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.