Skip to content

docs(clickpipes/mysql): FAQ for binlog event exceeding max_allowed_packet#6379

Open
dtunikov wants to merge 3 commits into
mainfrom
dmitrii/mysql-faq-max-allowed-packet
Open

docs(clickpipes/mysql): FAQ for binlog event exceeding max_allowed_packet#6379
dtunikov wants to merge 3 commits into
mainfrom
dmitrii/mysql-faq-max-allowed-packet

Conversation

@dtunikov

@dtunikov dtunikov commented Jun 12, 2026

Copy link
Copy Markdown

Context

The MySQL ClickPipe can fail with:

MySQL execute error: ERROR 1236 (HY000): log event entry exceeded max_allowed_packet;
Increase max_allowed_packet on source; ...

This happens when a single binlog event (one row change) is larger than the source server's max_allowed_packet, aborting the binlog stream read. It's distinct from binlog corruption/purge and has its own mitigation.

Change

Add a MySQL FAQ entry under #binlog-event-exceeded-max-allowed-packet explaining:

  • what's happening (oversized binlog event, commonly large BLOB/TEXT/JSON rows)
  • increase max_allowed_packet on the source (up to 1G)
  • resync the table if it's a one-off large row
  • exclude the large column(s) if values are expected to exceed 1G

This anchor is referenced by the new ClickPipes notification mitigation link for the NOTIFY_BINLOG_EVENT_EXCEEDED_MAX_ALLOWED_PACKET error class.

Related

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only change to the MySQL ClickPipes FAQ with no runtime or security impact.

Overview
Adds a MySQL ClickPipes FAQ section (#binlog-event-exceeded-max-allowed-packet) for CDC failures when a binlog event exceeds the source max_allowed_packet (ERROR 1236).

The entry documents the cause (oversized single-row events, often large BLOB/TEXT/JSON), how to raise max_allowed_packet on the source (including SET GLOBAL and my.cnf), when to resync the table after fixing a one-off large row, and when to exclude columns if values can exceed the 1G server limit—with a cross-link to the existing excluded-columns FAQ.

Reviewed by Cursor Bugbot for commit 8ecfb1b. Bugbot is set up for automated code reviews on this repo. Configure here.

…d_packet

Document the MySQL error 1236 "log event entry exceeded max_allowed_packet"
failure mode and its mitigations: increase max_allowed_packet on the source,
resync the affected table, or exclude large columns from replication.

The #binlog-event-exceeded-max-allowed-packet anchor is referenced by the
ClickPipes notification for the NOTIFY_BINLOG_EVENT_EXCEEDED_MAX_ALLOWED_PACKET
error class.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dtunikov dtunikov requested review from a team as code owners June 12, 2026 14:51
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clickhouse-docs Ready Ready Preview, Comment Jun 12, 2026 3:21pm
clickhouse-docs-jp Building Building Preview, Comment Jun 12, 2026 3:21pm
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
clickhouse-docs-ko Ignored Ignored Preview Jun 12, 2026 3:21pm
clickhouse-docs-ru Ignored Ignored Preview Jun 12, 2026 3:21pm
clickhouse-docs-zh Ignored Ignored Preview Jun 12, 2026 3:21pm

Request Review

dtunikov and others added 2 commits June 12, 2026 16:56
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@CLAassistant

CLAassistant commented Jun 12, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

```sql
SET GLOBAL max_allowed_packet = 1073741824; -- 1 GiB
```
Set it in your server configuration (e.g. `my.cnf`) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Set it in your server configuration (e.g. `my.cnf`) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect.
Set it in your server configuration (e.g. `my.cnf` or the DB Parameter Group) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect.

Comment on lines +46 to +47
- **If a single large row is the cause,** [resync the affected table](./table_resync.md) once `max_allowed_packet` has been increased so the pipe can move past it.
- **If you expect values larger than `1G`,** exclude the large columns from replication, as `max_allowed_packet` can't be raised beyond `1G`. See [Can I include columns I initially excluded from replication?](#include-excluded-columns).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I thought through the task description super well. MySQL sends us the entire binlog so the customer doesn't really have a choice but resync the whole pipe. There could be nuances with determining for sure that the big row is outside of our set of tables and skipping that GTID but that hasn't come up too much yet so we don't have tooling. So for applying the value it'd just be the reconnection that happens automatically, and for >1GB we just recommend resync.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants