Skip to content
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

bug(source): unexpected warning on undefined-field-padding-null error #16191

Closed
xiangjinwu opened this issue Apr 8, 2024 · 5 comments · Fixed by #19002
Closed

bug(source): unexpected warning on undefined-field-padding-null error #16191

xiangjinwu opened this issue Apr 8, 2024 · 5 comments · Fixed by #19002
Assignees
Labels
component/connector type/bug Something isn't working type/enhancement Improvements to existing implementation.
Milestone

Comments

@xiangjinwu
Copy link
Contributor

xiangjinwu commented Apr 8, 2024

Describe the bug

In kafka source with upsert format, it is a normal case where a message only has key but no value. This represents a delete event.

However, when ingesting such a message, a warning is printed:

WARN rw-streaming actor{otel.name="Actor 24" actor_id=24 prev_epoch=6246912290127872 curr_epoch=6246912308543488}:executor{otel.name="Source 1800002716"}:source_parse_chunk{actor_id=24 source_id=2}:
risingwave_connector::parser: failed to parse non-pk column, padding with `NULL` error=Undefined field `value` at `` split_id="0" offset="6" column="first_value_column_name"

Error message/log

No response

To Reproduce

Just create a kafka upsert source, with a delete event (kafka message with key only and no value) in the topic.

Expected behavior

No warning printed. Because it is expected to have no value. It is misleading and may shadow/suppress other real problems.

When we already know it is a delete event, there should be no attempts to extract columns from its value.

How did you deploy RisingWave?

No response

The version of RisingWave

No response

Additional context

delete calls into do_action

pub fn delete(
&mut self,
f: impl FnMut(&SourceColumnDesc) -> AccessResult<Datum>,
) -> AccessResult<()> {
self.do_action::<OpActionDelete>(f)
}

do_action calls wrapped_f (field access) to on every column self.descs.iter()

let result = (self.descs.iter())
.zip_eq_fast(self.builders.iter_mut())
.try_for_each(|(desc, builder)| {
wrapped_f(desc).map(|output| {
A::apply(builder, output);
applied_columns.push(builder);
})
});

@xiangjinwu xiangjinwu added type/bug Something isn't working type/enhancement Improvements to existing implementation. component/connector labels Apr 8, 2024
@github-actions github-actions bot added this to the release-1.8 milestone Apr 8, 2024
@tabVersion
Copy link
Contributor

it may involve compatibility issue for users using upsert format before we introducing include clause. May need further investigation.

@BugenZhao
Copy link
Member

May related to #15525.

@xiangjinwu
Copy link
Contributor Author

May related to #15525.

Related (same symptom) but need different solutions (different cause):

  • That issue is to specify a subset of columns not to trigger warnings. This needs user input.
  • This one is to avoid a subset of rows (delete ops) not to trigger warnings. This is purely internal and do less unnecessary work.

Copy link
Contributor

github-actions bot commented Jun 9, 2024

This issue has been open for 60 days with no activity. Could you please update the status? Feel free to continue discussion or close as not planned.

@CAJan93
Copy link
Contributor

CAJan93 commented Oct 8, 2024

FYI: A customer was confused by these log messages. IMHO if we have time and capacity we should fix the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/connector type/bug Something isn't working type/enhancement Improvements to existing implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants