Skip to content

fuzz: skip the text round trip of the smallest interval time - #175

Merged
tamnd merged 1 commit into
mainfrom
fuzz-interval-min
Oct 8, 2026
Merged

tamnd merged 1 commit into
mainfrom
fuzz-interval-min

Conversation

@tamnd

@tamnd tamnd commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Part of #3.

The M2 fuzz run on server2 found one crash in type_recv. The input is an interval in the binary format whose time is the smallest int64. The receive function accepts it and the output is -21 years -4 mons -61697 days -2562047788:00:54.775808. The input function then refuses that text with 22007, and the target panics on the text round trip.

PostgreSQL does the same thing. On the oracle, '-2562047788:00:54.775808'::interval gives invalid input syntax for type interval with 22007, and '-2562047788:00:54.775807'::interval is correct. Thus rupg is correct and the check in the target is too strict for this one value.

What changes

  • type_recv does not do the text round trip when an interval or an interval[] holds the time -2562047788:00:54.775808. The binary round trip still runs for that value.

Test

  • I replayed the crash input on server1 with a small example that builds the RecvCase the same way as libFuzzer. Without the change it panics at the text round trip. With the change it passes.
  • cargo clippy --lib -- -D warnings in fuzz is clean.
  • srvtest passed on server1.

@tamnd tamnd added this to the M2: Connect and introspect milestone Oct 8, 2026
@tamnd tamnd added kind/test The test apparatus, not the thing that it tests. area/types Types, type I/O, casts and collations. area/testing Fuzzing, crash tests, simulation and the summary deletion run. labels Oct 8, 2026
@tamnd tamnd self-assigned this Oct 8, 2026
@tamnd
tamnd merged commit 2c17ecd into main Oct 8, 2026
5 checks passed
@tamnd
tamnd deleted the fuzz-interval-min branch October 8, 2026 10:25
This was referenced Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/testing Fuzzing, crash tests, simulation and the summary deletion run. area/types Types, type I/O, casts and collations. kind/test The test apparatus, not the thing that it tests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant