Commit ba01e84
committed
fix(uploads): add return on null-stream 404 + guard sharp transform errors
Address two CodeRabbit findings:
1. Add return before responses.error(res, 404) in both get() and getSharp()
so execution does not fall through to stream.on() when getStream returns
falsy — preventing a TypeError and ERR_HTTP_HEADERS_SENT crash on the
null-stream path.
2. Attach the headersSent-gated error handler to the sharp Transform (not
just the GridFS source stream). pipe() does not forward error events
between streams, so sharp-pipeline failures were unhandled and could
crash the worker process. Refactored to buildTransform() helper that
creates the transform, attaches the error handler, and returns it.
Update comment to accurately describe when headersSent flips to true
(first chunk written, not res.set()).
Add test: sharp transform error after headers sent → res.destroy + logger.
Full unit suite: 1623/1623 pass.1 parent a50c4f3 commit ba01e84
2 files changed
Lines changed: 61 additions & 28 deletions
File tree
- modules/uploads
- controllers
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
86 | 87 | | |
87 | 88 | | |
88 | 89 | | |
89 | | - | |
| 90 | + | |
90 | 91 | | |
91 | 92 | | |
92 | | - | |
| 93 | + | |
| 94 | + | |
93 | 95 | | |
94 | 96 | | |
95 | 97 | | |
96 | 98 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
110 | 118 | | |
111 | 119 | | |
112 | 120 | | |
| |||
Lines changed: 27 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
39 | 42 | | |
40 | 43 | | |
41 | 44 | | |
| |||
47 | 50 | | |
48 | 51 | | |
49 | 52 | | |
| 53 | + | |
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
| |||
60 | 64 | | |
61 | 65 | | |
62 | 66 | | |
| 67 | + | |
63 | 68 | | |
64 | 69 | | |
65 | 70 | | |
66 | 71 | | |
67 | 72 | | |
68 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
69 | 77 | | |
70 | 78 | | |
71 | 79 | | |
| |||
492 | 500 | | |
493 | 501 | | |
494 | 502 | | |
495 | | - | |
| 503 | + | |
496 | 504 | | |
497 | 505 | | |
498 | 506 | | |
499 | 507 | | |
500 | 508 | | |
501 | 509 | | |
502 | 510 | | |
503 | | - | |
| 511 | + | |
504 | 512 | | |
505 | 513 | | |
506 | 514 | | |
507 | 515 | | |
508 | 516 | | |
509 | 517 | | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
510 | 535 | | |
511 | 536 | | |
0 commit comments