aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-11-28 20:31:37 +0100
committerSverker Eriksson <[email protected]>2018-11-28 20:32:23 +0100
commit06c46662022efb6892c036eeaf8c957e51fc17f7 (patch)
tree592110ed892da08874980e0ce369f1b30f5b7d31 /lib/kernel
parent0ad63bcc5523f0b560c843b3ed02c08e1369e522 (diff)
downloadotp-06c46662022efb6892c036eeaf8c957e51fc17f7.tar.gz
otp-06c46662022efb6892c036eeaf8c957e51fc17f7.tar.bz2
otp-06c46662022efb6892c036eeaf8c957e51fc17f7.zip
erts: Fix unexpected inet_reply message from failing file:sendfile
A failing file:sendfile call would often send a message {inet_reply, Port, {error, Reason}} that would pollute the mailbox of the calling process. TCP_REQ_SENDFILE has its own reply messages format {sendfile, _, _} and does not expect an inet_reply message. Solution: Suppress inet_reply error message if TCP_ADDF_SENDFILE is set.
Diffstat (limited to 'lib/kernel')
-rw-r--r--lib/kernel/test/sendfile_SUITE.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/kernel/test/sendfile_SUITE.erl b/lib/kernel/test/sendfile_SUITE.erl
index 062209fa29..ad060aa05c 100644
--- a/lib/kernel/test/sendfile_SUITE.erl
+++ b/lib/kernel/test/sendfile_SUITE.erl
@@ -342,8 +342,20 @@ t_sendfile_closeduring(Config) ->
end,
ok = sendfile_send({127,0,0,1}, Send, 0, [{active,false}]),
- ok = sendfile_send({127,0,0,1}, Send, 0, [{active,true}]).
+ [] = flush(),
+ ok = sendfile_send({127,0,0,1}, Send, 0, [{active,true}]),
+ [] = flush(),
+ ok.
+
+flush() ->
+ lists:reverse(flush([])).
+flush(Acc) ->
+ receive M ->
+ flush([M | Acc])
+ after 0 ->
+ Acc
+ end.
t_sendfile_crashduring(Config) ->
Filename = proplists:get_value(big_file, Config),