Skip to content

0.7.1 bug fixes - #25

Merged
cowlicks merged 4 commits into
datrs:masterfrom
cowlicks:master
Aug 3, 2026
Merged

0.7.1 bug fixes #25
cowlicks merged 4 commits into
datrs:masterfrom
cowlicks:master

Conversation

@cowlicks

@cowlicks cowlicks commented Aug 3, 2026

Copy link
Copy Markdown
Member

No description provided.

cowlicks added 4 commits June 4, 2026 16:00
Vec<ChannelMessage>'s multi-message encoding routes every message
through the generic Message::encode, which deliberately omits the
type-tag byte for Open/Close (they're framed via their own dedicated
2-byte prefix on the single-message path instead). But the multi-message
decode loop always goes through the generic Message::decode, which has
no case for Open/Close at all, so it misread the untagged bytes as a
bogus type and errored ("Invalid message type to decode").

This only ever showed up once something started opening 2+ channels
close enough together to get batched into one write - every existing
test only ever sent one Open at a time. Fixed by never batching an
Open/Close with anything else in MessageIo::poll_outbound, rather than
changing the wire encoding itself.
The numberes generated by benchmarks in CI are pointless bc the
runtime's performance is so variable. Also, it's really slow.
@cowlicks
cowlicks merged commit 9149290 into datrs:master Aug 3, 2026
4 checks passed
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.

1 participant