[MCOL-3561] Processing uninit'd data in PrimProc Created: 2019-10-15 Updated: 2023-03-06 Resolved: 2023-03-06 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | N/A |
| Affects Version/s: | 1.2.5 |
| Fix Version/s: | Icebox |
| Type: | Bug | Priority: | Major |
| Reporter: | Patrick LeBlanc (Inactive) | Assignee: | Unassigned |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Running valgrind over PrimProc to validate my changes. VG is quite noisy but it's correct about all the things we are doing wrong. This ticket is for fixing the list of columns involved in processing FE1's (pre-join functions & expressions) and FE2's (post-join functions & expressions). PrimProc copies the list of columns required to evaluate those, but that list is apparently not correct, because VG complains that the FE instances are processing uninit'd data. If the list is correct, then this wouldn't be uninit'd data. IIRC, the list comes from joblistfactory. Found these errors running the queries in working_tpch/misc. An example of one of the complaints. In my version of the code, batchprimitiveprocessor.cpp:1565 is if (fe1->evaluate(&fe1In)). Other errors point to the call where the fe2 instances are evaluated. |
| Comments |
| Comment by Patrick LeBlanc (Inactive) [ 2019-10-17 ] |
|
I looked into this a little more yesterday, and it may be a lower-level bug than that. I suspect that if the bug had to do with the list of columns sent to PrimProc, the error would happen sooner. It seems that they often happen in a handful of string processing functions (func_lcase() in the example above). Anyway, the approach here should be to validate the string processing functions that pop up in valgrind, then work your way down the stack. |