Commit f6cd82c
transport: return unexpected EOF for partial reads (grpc#9204)
Fixes grpc#9200
Track cumulative bytes read while filling a gRPC message header or body.
If EOF occurs after any partial progress, return `io.ErrUnexpectedEOF`
even when the final read call itself returned zero bytes. Preserve plain
`io.EOF` when EOF occurs before any data is read.
Regression tests split partial headers and bodies from EOF across
separate receive-buffer messages. They verify that partial reads return
`io.ErrUnexpectedEOF` while zero-progress reads retain `io.EOF`.
RELEASE NOTES:
* transport: Truncated gRPC message headers and bodies now return
`io.ErrUnexpectedEOF` after partial data is received.
(cherry picked from commit a9cbf17)1 parent d5a4111 commit f6cd82c
2 files changed
Lines changed: 107 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
466 | 466 | | |
467 | 467 | | |
468 | 468 | | |
| 469 | + | |
469 | 470 | | |
470 | 471 | | |
| 472 | + | |
471 | 473 | | |
472 | 474 | | |
473 | 475 | | |
474 | 476 | | |
475 | 477 | | |
476 | | - | |
| 478 | + | |
477 | 479 | | |
| 480 | + | |
478 | 481 | | |
479 | 482 | | |
480 | 483 | | |
| |||
505 | 508 | | |
506 | 509 | | |
507 | 510 | | |
| 511 | + | |
508 | 512 | | |
509 | 513 | | |
510 | 514 | | |
511 | 515 | | |
512 | 516 | | |
513 | 517 | | |
| 518 | + | |
514 | 519 | | |
515 | 520 | | |
516 | 521 | | |
517 | 522 | | |
518 | 523 | | |
519 | | - | |
| 524 | + | |
520 | 525 | | |
| 526 | + | |
521 | 527 | | |
522 | 528 | | |
523 | 529 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3462 | 3462 | | |
3463 | 3463 | | |
3464 | 3464 | | |
| 3465 | + | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
| 3487 | + | |
| 3488 | + | |
| 3489 | + | |
| 3490 | + | |
| 3491 | + | |
| 3492 | + | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
| 3507 | + | |
| 3508 | + | |
| 3509 | + | |
| 3510 | + | |
| 3511 | + | |
| 3512 | + | |
| 3513 | + | |
| 3514 | + | |
| 3515 | + | |
| 3516 | + | |
| 3517 | + | |
| 3518 | + | |
| 3519 | + | |
| 3520 | + | |
| 3521 | + | |
| 3522 | + | |
| 3523 | + | |
| 3524 | + | |
| 3525 | + | |
| 3526 | + | |
| 3527 | + | |
| 3528 | + | |
| 3529 | + | |
| 3530 | + | |
| 3531 | + | |
| 3532 | + | |
| 3533 | + | |
| 3534 | + | |
| 3535 | + | |
| 3536 | + | |
| 3537 | + | |
| 3538 | + | |
| 3539 | + | |
| 3540 | + | |
| 3541 | + | |
| 3542 | + | |
| 3543 | + | |
| 3544 | + | |
| 3545 | + | |
| 3546 | + | |
| 3547 | + | |
| 3548 | + | |
| 3549 | + | |
| 3550 | + | |
| 3551 | + | |
| 3552 | + | |
| 3553 | + | |
| 3554 | + | |
| 3555 | + | |
| 3556 | + | |
| 3557 | + | |
| 3558 | + | |
| 3559 | + | |
| 3560 | + | |
| 3561 | + | |
| 3562 | + | |
| 3563 | + | |
3465 | 3564 | | |
3466 | 3565 | | |
3467 | 3566 | | |
| |||
0 commit comments